2010-02-20 22:57:43 +01:00
< ? php
/**
* WordPress Administration Custom Navigation
* General Functions
*
* @ author Jeffikus < pearce . jp @ gmail . com >
* @ version 1.1 . 0
*
* @ package WordPress
* @ subpackage Administration
*/
function wp_custom_navigation_get_menu_items ( $menu_objects , $key = 'ID' ) {
$menu_items = array ();
if ( ! empty ( $menu_objects ) && ! empty ( $key ) ) {
2010-02-21 19:24:41 +01:00
$args = array ( 'orderby' => 'menu_order' , 'post_type' => 'nav_menu_item' , 'post_status' => 'publish' );
2010-02-20 22:57:43 +01:00
if ( count ( $menu_objects ) > 1 )
$args [ 'include' ] = implode ( ',' , $menu_objects );
else
$args [ 'include' ] = $menu_objects [ 0 ];
2010-02-21 00:58:00 +01:00
$posts = get_posts ( $args );
if ( ! empty ( $posts ) ) {
foreach ( $posts as $post ) {
2010-02-20 22:57:43 +01:00
$menu_items [ $post -> $key ] = $post ;
}
}
unset ( $posts );
ksort ( $menu_items );
}
return $menu_items ;
}
2010-02-21 00:58:00 +01:00
2010-02-20 22:57:43 +01:00
function wp_custom_navigation_setup ( $override = false ) {
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
$nav_version = '1.1.0' ;
//Custom Navigation Menu Setup
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
//Check for Upgrades
if ( get_option ( 'wp_settings_custom_nav_version' ) <> '' ) {
$nav_version_in_db = get_option ( 'wp_settings_custom_nav_version' );
}
else {
$nav_version_in_db = '0' ;
}
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
//Override for menu descriptions
update_option ( 'wp_settings_custom_nav_advanced_options' , 'yes' );
2010-02-21 01:03:42 +01:00
if (( $nav_version_in_db <> $nav_version ) || ( $override ))
2010-02-20 22:57:43 +01:00
update_option ( 'wp_settings_custom_nav_version' , $nav_version );
2010-02-21 19:24:41 +01:00
$custom_menus = get_terms ( 'nav_menu' , array ( 'hide_empty' => false ) );
2010-02-20 22:57:43 +01:00
if ( ! empty ( $custom_menus ) ) {
foreach ( $custom_menus as $menu ) {
2010-02-21 19:24:41 +01:00
$menu_objects = get_objects_in_term ( $menu -> term_id , 'nav_menu' );
2010-02-20 22:57:43 +01:00
if ( ! empty ( $menu_objects ) ) {
foreach ( $menu_objects as $item )
wp_delete_post ( $item );
}
2010-02-21 19:24:41 +01:00
wp_delete_term ( $menu -> term_id , 'nav_menu' );
2010-02-20 22:57:43 +01:00
}
}
}
/*-----------------------------------------------------------------------------------*/
/* Custom Navigation Functions */
/* wp_custom_navigation_output () displays the menu in the back / frontend
/* wp_custom_navigation_sub_items () is a recursive sub menu item function
/* wp_custom_nav_get_pages ()
/* wp_custom_nav_get_categories ()
/* wp_custom_navigation_default_sub_items () is a recursive sub menu item function
/*-----------------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------------*/
/* Main Output Function
/* args list
/* type - frontend or backend
/* name - name of your menu
/* id - id of menu in db
/* desc - 1 = show descriptions , 2 = dont show descriptions
/* before_title - html before title is outputted in < a > tag
/* after_title - html after title is outputted in < a > tag
/*-----------------------------------------------------------------------------------*/
function wp_custom_navigation_output ( $args = array ()) {
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
//DEFAULT ARGS
$type = 'frontend' ;
2010-02-21 01:03:42 +01:00
$name = 'Menu 1' ;
2010-02-20 22:57:43 +01:00
$id = 0 ;
$desc = 2 ;
$before_title = '' ;
$after_title = '' ;
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
if ( isset ( $args )) {
2010-02-21 01:03:42 +01:00
if ( ! is_array ( $args ) )
2010-02-20 22:57:43 +01:00
parse_str ( $args , $args );
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
extract ( $args );
}
2010-02-21 19:24:41 +01:00
$menu_objects = get_objects_in_term ( $id , 'nav_menu' );
2010-02-20 22:57:43 +01:00
$menu_items = wp_custom_navigation_get_menu_items ( $menu_objects , 'menu_order' );
//Override for menu descriptions
$advanced_option_descriptions = get_option ( 'wp_settings_custom_nav_advanced_options' );
2010-02-21 19:24:41 +01:00
if ( $advanced_option_descriptions == 'no' )
2010-02-20 22:57:43 +01:00
$desc = 2 ;
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
$queried_id = 0 ;
global $wp_query ;
if ( is_page () )
2010-02-21 19:24:41 +01:00
$queried_id = $wp_query -> get_queried_object_id ();
2010-02-20 22:57:43 +01:00
elseif ( is_category () )
2010-02-21 19:24:41 +01:00
$queried_id = $wp_query -> get_queried_object_id ();
2010-02-22 01:26:21 +01:00
$parent_stack = array ();
2010-02-21 19:24:41 +01:00
// Display Loop
foreach ( $menu_items as $menu_item ) {
$menu_type = get_post_meta ( $menu_item -> ID , 'menu_type' , true );
$object_id = get_post_meta ( $menu_item -> ID , 'object_id' , true );
switch ( $menu_type ) {
// Page Menu Item
case 'page' :
if ( $menu_item -> guid == '' )
$link = get_permalink ( $object_id );
2010-02-20 22:57:43 +01:00
else
$link = $menu_item -> guid ;
if ( $menu_item -> post_title == '' )
2010-02-21 19:24:41 +01:00
$title = htmlentities ( get_the_title ( $object_id ) );
2010-02-20 22:57:43 +01:00
else
$title = htmlentities ( $menu_item -> post_title );
if ( $menu_item -> post_content == '' )
$description = htmlentities ( get_post_meta ( $menu_item -> ID , 'page-description' , true ) );
else
$description = htmlentities ( $menu_item -> post_content );
$target = '' ;
break ;
2010-02-21 19:24:41 +01:00
// Category Menu Item
case 'category' :
if ( $menu_item -> guid == '' )
$link = get_category_link ( $object_id );
2010-02-20 22:57:43 +01:00
else
$link = $menu_item -> guid ;
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
if ( $menu_item -> post_title == '' ) {
2010-02-21 19:24:41 +01:00
$title_raw = get_categories ( array ( 'include' => $object_id ) );
2010-02-21 01:03:42 +01:00
$title = htmlentities ( $title_raw [ 0 ] -> cat_name );
2010-02-20 22:57:43 +01:00
} else {
$title = htmlentities ( $menu_item -> post_title );
}
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
if ( $menu_item -> post_content == '' )
2010-02-21 19:24:41 +01:00
$description = htmlentities ( strip_tags ( category_description ( $object_id ) ) );
2010-02-20 22:57:43 +01:00
else
$description = htmlentities ( $menu_item -> post_content );
$target = '' ;
break ;
default :
2010-02-21 19:24:41 +01:00
// Custom Menu Item
2010-02-20 22:57:43 +01:00
$link = $menu_item -> guid ;
$title = htmlentities ( $menu_item -> post_title );
$description = htmlentities ( $menu_item -> post_content );
$target = 'target="_blank"' ;
break ;
}
2010-02-21 11:55:47 +01:00
$li_class = '' ;
2010-02-20 22:57:43 +01:00
/* @ todo : update to use tax / post data
//SET anchor title
if ( isset ( $wp_custom_nav_menu_items -> custom_anchor_title )) {
$anchor_title = htmlentities ( $wp_custom_nav_menu_items -> custom_anchor_title );
}
else {
$anchor_title = $title ;
}
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
if ( $queried_id == $wp_custom_nav_menu_items -> post_id ) {
$li_class = 'class="current_page_item"' ;
}
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
if ( isset ( $wp_custom_nav_menu_items -> new_window )) {
if ( $wp_custom_nav_menu_items -> new_window > 0 ) {
$target = 'target="_blank"' ;
}
else {
$target = '' ;
}
}
2010-02-21 01:03:42 +01:00
*/
2010-02-22 01:26:21 +01:00
// Indent children
if ( empty ( $parent_stack ) ) {
array_unshift ( $parent_stack , $menu_item -> ID );
} elseif ( $menu_item -> post_parent > 0 ) {
if ( $menu_item -> post_parent == $parent_stack [ 0 ] ) { ?>
< ul >
< ? php array_unshift ( $parent_stack , $menu_item -> ID );
} elseif ( count ( $parent_stack ) > 1 && $menu_item -> post_parent == $parent_stack [ 1 ] ) { ?>
</ li >
< ? php $parent_stack [ 0 ] = $menu_item -> ID ;
} elseif ( in_array ( $menu_item -> post_parent , $parent_stack ) ) {
while ( ! empty ( $parent_stack ) && $menu_item -> post_parent != $parent_stack [ 0 ] ) { ?>
</ li ></ ul >
< ? array_shift ( $parent_stack );
}
}
} else { ?>
</ li >
< ? php $parent_stack [ 0 ] = $menu_item -> ID ;
}
2010-02-21 19:24:41 +01:00
// List Items
2010-02-20 22:57:43 +01:00
?> <li id="menu-<?php echo $menu_item->ID; ?>" value="<?php echo $menu_item->ID; ?>" <?php echo $li_class; ?>><?php
//@todo: update front end to use post data
//FRONTEND Link
2010-02-21 19:24:41 +01:00
if ( $type == 'frontend' ) {
2010-02-21 01:03:42 +01:00
?> <a title="<?php echo $anchor_title; ?>" href="<?php echo $link; ?>" <?php echo $target; ?>><?php echo $before_title.$title.$after_title; ?><?php
2010-02-21 19:24:41 +01:00
if ( $advanced_option_descriptions == 'no' ) {
2010-02-20 22:57:43 +01:00
// 2 widget override do NOT display descriptions
// 1 widget override display descriptions
// 0 widget override not set
if (( $desc == 1 ) || ( $desc == 0 ) )
{
?> <span class="nav-description"><?php echo $description; ?></span><?php
2010-02-21 01:03:42 +01:00
}
2010-02-20 22:57:43 +01:00
elseif ( $desc == 2 )
{ }
else
{ }
2010-02-21 19:24:41 +01:00
} else {
2010-02-20 22:57:43 +01:00
// 2 widget override do NOT display descriptions
// 1 widget override display descriptions
// 0 widget override not set
2010-02-21 19:24:41 +01:00
if ( $desc == 1 ) {
2010-02-20 22:57:43 +01:00
?> <span class="nav-description"><?php echo $description; ?></span><?php
2010-02-21 01:03:42 +01:00
}
2010-02-20 22:57:43 +01:00
elseif (( $desc == 2 ) || ( $desc == 0 ))
{ }
2010-02-21 01:03:42 +01:00
else
2010-02-20 22:57:43 +01:00
{ }
}
2010-02-21 01:03:42 +01:00
?> </a><?php
2010-02-21 19:24:41 +01:00
} elseif ( $type == 'backend' ) {
//BACKEND draggable and droppable elements
$link_type = $menu_type ;
2010-02-20 22:57:43 +01:00
?>
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
< dl >
< dt >
< span class = " title " >< ? php echo $title ; ?> </span>
< span class = " controls " >
< span class = " type " >< ? php echo $link_type ; ?> </span>
< a id = " edit<?php echo $menu_item->menu_order ; ?> " onclick = " edititem(<?php echo $menu_item->menu_order ; ?>) " value = " <?php echo $menu_item->menu_order ; ?> " >< img class = " edit " alt = " Edit Menu Item " title = " Edit Menu Item " src = " <?php echo get_bloginfo('url'); ?>/wp-admin/images/ico-edit.png " /></ a >
< a id = " remove<?php echo $menu_item->menu_order ; ?> " onclick = " removeitem(<?php echo $menu_item->menu_order ; ?>) " value = " <?php echo $menu_item->menu_order ; ?> " >< img class = " remove " alt = " Remove from Custom Menu " title = " Remove from Custom Menu " src = " <?php echo get_bloginfo('url'); ?>/wp-admin/images/ico-close.png " /></ a >
< a id = " view<?php echo $menu_item->menu_order ; ?> " target = " _blank " href = " <?php echo $link ; ?> " >< img alt = " View Page " title = " View Page " src = " <?php echo get_bloginfo('url'); ?>/wp-admin/images/ico-viewpage.png " /></ a >
</ span >
</ dt >
</ dl >
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
< a >< span class = " " ></ span ></ a >
< input type = " hidden " name = " dbid<?php echo $menu_item->menu_order ; ?> " id = " dbid<?php echo $menu_item->menu_order ; ?> " value = " <?php echo $menu_item->ID ; ?> " />
< input type = " hidden " name = " postmenu<?php echo $menu_item->menu_order ; ?> " id = " postmenu<?php echo $menu_item->menu_order ; ?> " value = " <?php echo $id ; ?> " />
< input type = " hidden " name = " parent<?php echo $menu_item->menu_order ; ?> " id = " parent<?php echo $menu_item->menu_order ; ?> " value = " <?php echo $menu_item->post_parent ; ?> " />
< input type = " hidden " name = " title<?php echo $menu_item->menu_order ; ?> " id = " title<?php echo $menu_item->menu_order ; ?> " value = " <?php echo $title ; ?> " />
< input type = " hidden " name = " linkurl<?php echo $menu_item->menu_order ; ?> " id = " linkurl<?php echo $menu_item->menu_order ; ?> " value = " <?php echo $link ; ?> " />
< input type = " hidden " name = " description<?php echo $menu_item->menu_order ; ?> " id = " description<?php echo $menu_item->menu_order ; ?> " value = " <?php echo $description ; ?> " />
< input type = " hidden " name = " icon<?php echo $menu_item->menu_order ; ?> " id = " icon<?php echo $menu_item->menu_order ; ?> " value = " 0 " />
< input type = " hidden " name = " position<?php echo $menu_item->menu_order ; ?> " id = " position<?php echo $menu_item->menu_order ; ?> " value = " <?php echo $menu_item->menu_order ; ?> " />
< input type = " hidden " name = " linktype<?php echo $menu_item->menu_order ; ?> " id = " linktype<?php echo $menu_item->menu_order ; ?> " value = " <?php echo $link_type ; ?> " />
< input type = " hidden " name = " anchortitle<?php echo $menu_item->menu_order ; ?> " id = " anchortitle<?php echo $menu_item->menu_order ; ?> " value = " <?php echo esc_html( $menu_item->post_excerpt ); ?> " />
< input type = " hidden " name = " newwindow<?php echo $menu_item->menu_order ; ?> " id = " newwindow<?php echo $menu_item->menu_order ; ?> " value = " <?php echo ( '' == $menu_item->post_content_filtered ? '0' : '1' ); ?> " />
2010-02-21 01:03:42 +01:00
< ? php
2010-02-20 22:57:43 +01:00
}
}
2010-02-22 01:26:21 +01:00
while ( ! empty ( $parent_stack ) ) { ?>
</ li ></ ul >
< ? array_shift ( $parent_stack );
}
if ( ! empty ( $menu_items ) ) { ?>
</ li >
< ? php }
2010-02-20 22:57:43 +01:00
}
//@todo: implement menu heirarchy
//RECURSIVE Sub Menu Items
function wp_custom_navigation_sub_items ( $post_id , $type , $table_name , $output_type , $menu_id = 0 ) {
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
$parent_id = 0 ;
global $wpdb ;
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
//GET sub menu items
$wp_custom_nav_menu = $wpdb -> get_results ( " SELECT id,post_id,parent_id,position,custom_title,custom_link,custom_description,menu_icon,link_type,custom_anchor_title,new_window FROM " . $table_name . " WHERE parent_id = ' " . $post_id . " ' AND menu_id=' " . $menu_id . " ' ORDER BY position ASC " );
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
if ( empty ( $wp_custom_nav_menu ))
{
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
}
else
{
?> <ul id="sub-custom-nav">
< ? php
$queried_id = 0 ;
global $wp_query ;
if ( is_page ()) {
$queried_id = $wp_query -> post -> ID ;
}
elseif ( is_category ()) {
$queried_id = $wp_query -> query_vars [ 'cat' ];
}
else {
}
//DISPLAY Loop
2010-02-21 01:03:42 +01:00
foreach ( $wp_custom_nav_menu as $sub_item )
2010-02-20 22:57:43 +01:00
{
//Figure out where the menu item sits
$counter = $sub_item -> position ;
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
//Prepare Menu Data
//Category Menu Item
2010-02-21 01:03:42 +01:00
if ( $sub_item -> link_type == 'category' )
2010-02-20 22:57:43 +01:00
{
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
$parent_id = $sub_item -> parent_id ;
$post_id = $sub_item -> post_id ;
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
if ( $sub_item -> custom_link == '' ) {
$link = get_category_link ( $sub_item -> post_id );
}
else {
$link = $sub_item -> custom_link ;
}
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
if ( $sub_item -> custom_title == '' ) {
$title_raw = get_categories ( 'include=' . $sub_item -> post_id );
$title = htmlentities ( $title_raw [ 0 ] -> cat_name );
}
else {
$title = htmlentities ( $sub_item -> custom_title );
}
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
if ( $sub_item -> custom_description == '' ) {
$description = strip_tags ( category_description ( $sub_item -> post_id ));
}
else {
$description = $sub_item -> custom_description ;
}
$target = '' ;
}
//Page Menu Item
elseif ( $sub_item -> link_type == 'page' )
{
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
$parent_id = $sub_item -> parent_id ;
$post_id = $sub_item -> post_id ;
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
if ( $sub_item -> custom_link == '' ) {
$link = get_permalink ( $sub_item -> post_id );
}
else {
$link = $sub_item -> custom_link ;
}
if ( $sub_item -> custom_title == '' ) {
$title = htmlentities ( get_the_title ( $sub_item -> post_id ));
}
else {
$title = htmlentities ( $sub_item -> custom_title );
}
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
if ( $sub_item -> custom_description == '' ) {
$description = get_post_meta ( $sub_item -> post_id , 'page-description' , true );
}
else {
$description = $sub_item -> custom_description ;
}
$target = '' ;
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
}
//Custom Menu Item
else
{
$link = $sub_item -> custom_link ;
$title = htmlentities ( $sub_item -> custom_title );
$parent_id = $sub_item -> parent_id ;
$post_id = $sub_item -> post_id ;
$description = $sub_item -> custom_description ;
$target = 'target="_blank"' ;
}
if ( $queried_id == $sub_item -> post_id ) {
$li_class = 'class="current_page_item"' ;
}
else {
$li_class = '' ;
}
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
//SET anchor title
if ( isset ( $sub_item -> custom_anchor_title )) {
$anchor_title = htmlentities ( $sub_item -> custom_anchor_title );
}
else {
$anchor_title = $title ;
}
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
if ( isset ( $sub_item -> new_window )) {
if ( $sub_item -> new_window > 0 ) {
$target = 'target="_blank"' ;
}
}
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
//List Items
2010-02-21 01:03:42 +01:00
?> <li id="menu-<?php echo $counter; ?>" value="<?php echo $counter; ?>" <?php echo $li_class; ?>><?php
2010-02-20 22:57:43 +01:00
//FRONTEND
if ( $output_type == " frontend " )
{
2010-02-21 01:03:42 +01:00
?> <a title="<?php echo $anchor_title; ?>" href="<?php echo $link; ?>" <?php echo $target; ?>><?php echo $title; ?></a><?php
2010-02-20 22:57:43 +01:00
}
//BACKEND
elseif ( $output_type == " backend " )
{
?>
< dl >
< dt >
< span class = " title " >< ? php echo $title ; ?> </span>
< span class = " controls " >
< span class = " type " >< ? php echo $sub_item -> link_type ; ?> </span>
2010-02-21 01:03:42 +01:00
< a id = " edit<?php echo $counter ; ?> " onclick = " edititem(<?php echo $counter ; ?>) " value = " <?php echo $counter ; ?> " >< img class = " edit " alt = " Edit Menu Item " title = " Edit Menu Item " src = " <?php echo get_bloginfo('url'); ?>/wp-admin/images/ico-edit.png " /></ a >
2010-02-20 22:57:43 +01:00
< a id = " remove<?php echo $counter ; ?> " onclick = " removeitem(<?php echo $counter ; ?>) " value = " <?php echo $counter ; ?> " >< img class = " remove " alt = " Remove from Custom Menu " title = " Remove from Custom Menu " src = " <?php echo get_bloginfo('url'); ?>/wp-admin/images/ico-close.png " /></ a >
< a id = " view<?php echo $counter ; ?> " target = " _blank " href = " <?php echo $link ; ?> " >< img alt = " View Page " title = " View Page " src = " <?php echo get_bloginfo('url'); ?>/wp-admin/images/ico-viewpage.png " /></ a >
</ span >
</ dt >
</ dl >
< a class = " hide " href = " <?php echo $link ; ?> " >< ? php echo $title ; ?> </a>
< input type = " hidden " name = " dbid<?php echo $counter ; ?> " id = " dbid<?php echo $counter ; ?> " value = " <?php echo $sub_item->id ; ?> " />
< input type = " hidden " name = " postmenu<?php echo $counter ; ?> " id = " postmenu<?php echo $counter ; ?> " value = " <?php echo $post_id ; ?> " />
< input type = " hidden " name = " parent<?php echo $counter ; ?> " id = " parent<?php echo $counter ; ?> " value = " <?php echo $parent_id ; ?> " />
< input type = " hidden " name = " title<?php echo $counter ; ?> " id = " title<?php echo $counter ; ?> " value = " <?php echo $title ; ?> " />
< input type = " hidden " name = " linkurl<?php echo $counter ; ?> " id = " linkurl<?php echo $counter ; ?> " value = " <?php echo $link ; ?> " />
< input type = " hidden " name = " description<?php echo $counter ; ?> " id = " description<?php echo $counter ; ?> " value = " <?php echo $description ; ?> " />
< input type = " hidden " name = " icon<?php echo $counter ; ?> " id = " icon<?php echo $counter ; ?> " value = " 0 " />
< input type = " hidden " name = " position<?php echo $counter ; ?> " id = " position<?php echo $counter ; ?> " value = " <?php echo $counter ; ?> " />
< input type = " hidden " name = " linktype<?php echo $counter ; ?> " id = " linktype<?php echo $counter ; ?> " value = " <?php echo $sub_item->link_type ; ?> " />
< input type = " hidden " name = " anchortitle<?php echo $counter ; ?> " id = " anchortitle<?php echo $counter ; ?> " value = " <?php echo $anchor_title ; ?> " />
< input type = " hidden " name = " newwindow<?php echo $counter ; ?> " id = " newwindow<?php echo $counter ; ?> " value = " <?php echo $sub_item->new_window ; ?> " />
2010-02-21 01:03:42 +01:00
< ? php
2010-02-20 22:57:43 +01:00
}
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
//Do recursion
2010-02-21 01:03:42 +01:00
wp_custom_navigation_sub_items ( $sub_item -> id , $sub_item -> link_type , $table_name , $output_type , $menu_id );
2010-02-20 22:57:43 +01:00
?> </li>
2010-02-21 01:03:42 +01:00
< ? php
}
2010-02-20 22:57:43 +01:00
?> </ul>
2010-02-21 01:03:42 +01:00
< ? php
}
2010-02-20 22:57:43 +01:00
return $parent_id ;
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
}
//Outputs All Pages and Sub Items
function wp_custom_nav_get_pages ( $counter , $type ) {
$pages_args = array (
'child_of' => 0 ,
'sort_order' => 'ASC' ,
'sort_column' => 'post_title' ,
'hierarchical' => 1 ,
'exclude' => '' ,
'include' => '' ,
'meta_key' => '' ,
'meta_value' => '' ,
'authors' => '' ,
'parent' => - 1 ,
'exclude_tree' => '' ,
'number' => '' ,
'offset' => 0 );
2010-02-21 01:03:42 +01:00
//GET all pages
2010-02-20 22:57:43 +01:00
$pages_array = get_pages ( $pages_args );
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
$intCounter = $counter ;
$parentli = $intCounter ;
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
if ( $pages_array )
{
//DISPLAY Loop
foreach ( $pages_array as $post )
{
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
if ( $post -> post_parent == 0 )
{
//Custom Menu
if ( $type == 'menu' )
{
$description = get_post_meta ( $post -> ID , 'page-description' , true );
?>
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
< li id = " menu-<?php echo $intCounter ; ?> " value = " <?php echo $intCounter ; ?> " >
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
< dl >
< dt >
< span class = " title " >< ? php echo $post -> post_title ; ?> </span>
< span class = " controls " >
< span class = " type " > page </ span >
2010-02-21 01:03:42 +01:00
< a id = " edit<?php echo $intCounter ; ?> " onclick = " edititem(<?php echo $intCounter ; ?>) " value = " <?php echo $intCounter ; ?> " >< img class = " edit " alt = " Edit Menu Item " title = " Edit Menu Item " src = " <?php echo get_bloginfo('url'); ?>/wp-admin/images/ico-edit.png " /></ a >
2010-02-20 22:57:43 +01:00
< a id = " remove<?php echo $intCounter ; ?> " onclick = " removeitem(<?php echo $intCounter ; ?>) " value = " <?php echo $intCounter ; ?> " >
< img class = " remove " alt = " Remove from Custom Menu " title = " Remove from Custom Menu " src = " <?php echo get_bloginfo('url'); ?>/wp-admin/images/ico-close.png " />
</ a >
< a target = " _blank " href = " <?php echo get_permalink( $post->ID ); ?> " >
< img alt = " View Page " title = " View Page " src = " <?php echo get_bloginfo('url'); ?>/wp-admin/images/ico-viewpage.png " />
</ a >
</ span >
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
</ dt >
</ dl >
< a class = " hide " href = " <?php echo get_permalink( $post->ID ); ?> " >< span class = " title " >< ? php echo $post -> post_title ; ?> </span>
</ a >
< input type = " hidden " name = " postmenu<?php echo $intCounter ; ?> " id = " postmenu<?php echo $intCounter ; ?> " value = " <?php echo $post->ID ; ?> " />
< input type = " hidden " name = " parent<?php echo $intCounter ; ?> " id = " parent<?php echo $intCounter ; ?> " value = " 0 " />
< input type = " hidden " name = " title<?php echo $intCounter ; ?> " id = " title<?php echo $intCounter ; ?> " value = " <?php echo htmlentities( $post->post_title ); ?> " />
< input type = " hidden " name = " linkurl<?php echo $intCounter ; ?> " id = " linkurl<?php echo $intCounter ; ?> " value = " <?php echo get_permalink( $post->ID ); ?> " />
< input type = " hidden " name = " description<?php echo $intCounter ; ?> " id = " description<?php echo $intCounter ; ?> " value = " <?php echo $description ; ?> " />
< input type = " hidden " name = " icon<?php echo $intCounter ; ?> " id = " icon<?php echo $intCounter ; ?> " value = " 0 " />
< input type = " hidden " name = " position<?php echo $intCounter ; ?> " id = " position<?php echo $intCounter ; ?> " value = " <?php echo $intCounter ; ?> " />
< input type = " hidden " name = " linktype<?php echo $intCounter ; ?> " id = " linktype<?php echo $intCounter ; ?> " value = " page " />
< input type = " hidden " name = " anchortitle<?php echo $intCounter ; ?> " id = " anchortitle<?php echo $intCounter ; ?> " value = " <?php echo htmlentities( $post->post_title ); ?> " />
< input type = " hidden " name = " newwindow<?php echo $intCounter ; ?> " id = " newwindow<?php echo $intCounter ; ?> " value = " 0 " />
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
< ? php $parentli = $post -> ID ; ?>
2010-02-21 01:03:42 +01:00
< ? php $intCounter ++ ; ?>
2010-02-20 22:57:43 +01:00
< ? php
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
//Recursive function
$intCounter = wp_custom_navigation_default_sub_items ( $post -> ID , $intCounter , $parentli , 'pages' , 'menu' );
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
?>
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
</ li >
2010-02-21 01:03:42 +01:00
< ? php
2010-02-20 22:57:43 +01:00
}
//Sidebar Menu
elseif ( $type == 'default' )
{
?>
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
< li >
< dl >
< dt >
< ? php
$post_text = htmlentities ( $post -> post_title );
$post_url = get_permalink ( $post -> ID );
$post_id = $post -> ID ;
$post_parent_id = $post -> post_parent ;
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
$description = htmlentities ( get_post_meta ( $post_id , 'page-description' , true ));
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
?>
< ? php $templatedir = get_bloginfo ( 'url' ); ?>
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
< span class = " title " >< ? php echo $post -> post_title ; ?> </span> <a onclick="appendToList('<?php echo $templatedir; ?>','Page','<?php echo $post_text; ?>','<?php echo $post_url; ?>','<?php echo $post_id; ?>','<?php echo $post_parent_id ?>','<?php echo $description; ?>')" name="<?php echo $post_text; ?>" value="<?php echo get_permalink($post->ID); ?>"><img alt="Add to Custom Menu" title="Add to Custom Menu" src="<?php echo get_bloginfo('url'); ?>/wp-admin/images/ico-add.png" /></a></dt>
</ dl >
< ? php $parentli = $post -> ID ; ?>
2010-02-21 01:03:42 +01:00
< ? php $intCounter ++ ; ?>
2010-02-20 22:57:43 +01:00
< ? php
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
//Recursive function
$intCounter = wp_custom_navigation_default_sub_items ( $post_id , $intCounter , $parentli , 'pages' , 'default' );
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
?>
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
</ li >
2010-02-21 01:03:42 +01:00
< ? php
2010-02-20 22:57:43 +01:00
}
else
{
2010-02-21 01:03:42 +01:00
}
}
}
2010-02-20 22:57:43 +01:00
}
2010-02-21 01:03:42 +01:00
else
2010-02-20 22:57:43 +01:00
{
echo 'Not Found' ;
}
return $intCounter ;
}
//Outputs All Categories and Sub Items
function wp_custom_nav_get_categories ( $counter , $type ) {
$category_args = array (
'type' => 'post' ,
'child_of' => 0 ,
'orderby' => 'name' ,
'order' => 'ASC' ,
'hide_empty' => false ,
'include_last_update_time' => false ,
'hierarchical' => 1 ,
'exclude' => '' ,
'include' => '' ,
'number' => '' ,
'pad_counts' => false );
2010-02-21 01:03:42 +01:00
$intCounter = $counter ;
//GET all categories
2010-02-20 22:57:43 +01:00
$categories_array = get_categories ( $category_args );
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
if ( $categories_array )
{
//DISPLAY Loop
foreach ( $categories_array as $cat_item )
{
if ( $cat_item -> parent == 0 )
{
//Custom Menu
if ( $type == 'menu' )
{
?>
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
< li id = " menu-<?php echo $intCounter ; ?> " value = " <?php echo $intCounter ; ?> " >
< dl >
< dt >
< span class = " title " >< ? php echo $cat_item -> cat_name ; ?> </span>
< span class = " controls " >
< span class = " type " > category </ span >
2010-02-21 01:03:42 +01:00
< a id = " edit<?php echo $intCounter ; ?> " onclick = " edititem(<?php echo $intCounter ; ?>) " value = " <?php echo $intCounter ; ?> " >< img class = " edit " alt = " Edit Menu Item " title = " Edit Menu Item " src = " <?php echo get_bloginfo('url'); ?>/wp-admin/images/ico-edit.png " /></ a >
2010-02-20 22:57:43 +01:00
< a id = " remove<?php echo $intCounter ; ?> " onclick = " removeitem(<?php echo $intCounter ; ?>) " value = " <?php echo $intCounter ; ?> " >
< img class = " remove " alt = " Remove from Custom Menu " title = " Remove from Custom Menu " src = " <?php echo get_bloginfo('url'); ?>/wp-admin/images/ico-close.png " />
</ a >
< a target = " _blank " href = " <?php echo get_category_link( $cat_item->cat_ID ); ?> " >
< img alt = " View Page " title = " View Page " src = " <?php echo get_bloginfo('url'); ?>/wp-admin/images/ico-viewpage.png " />
</ a >
</ span >
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
</ dt >
</ dl >
< a class = " hide " href = " <?php echo get_category_link( $cat_item->cat_ID ); ?> " >< span class = " title " >< ? php echo $cat_item -> cat_name ; ?> </span>
2010-02-21 01:03:42 +01:00
< ? php
2010-02-20 22:57:43 +01:00
$use_cats_raw = get_option ( 'wp_settings_custom_nav_descriptions' );
$use_cats = strtolower ( $use_cats_raw );
if ( $use_cats == 'yes' ) { ?>
< br /> < span >< ? php echo $cat_item -> category_description ; ?> </span>
< ? php } ?>
</ a >
< input type = " hidden " name = " postmenu<?php echo $intCounter ; ?> " id = " postmenu<?php echo $intCounter ; ?> " value = " <?php echo $cat_item->cat_ID ; ?> " />
< input type = " hidden " name = " parent<?php echo $intCounter ; ?> " id = " parent<?php echo $intCounter ; ?> " value = " 0 " />
< input type = " hidden " name = " title<?php echo $intCounter ; ?> " id = " title<?php echo $intCounter ; ?> " value = " <?php echo htmlentities( $cat_item->cat_name ); ?> " />
< input type = " hidden " name = " linkurl<?php echo $intCounter ; ?> " id = " linkurl<?php echo $intCounter ; ?> " value = " <?php echo get_category_link( $cat_item->cat_ID ); ?> " />
< input type = " hidden " name = " description<?php echo $intCounter ; ?> " id = " description<?php echo $intCounter ; ?> " value = " <?php echo htmlentities( $cat_item->category_description ); ?> " />
< input type = " hidden " name = " icon<?php echo $intCounter ; ?> " id = " icon<?php echo $intCounter ; ?> " value = " 0 " />
< input type = " hidden " name = " position<?php echo $intCounter ; ?> " id = " position<?php echo $intCounter ; ?> " value = " <?php echo $intCounter ; ?> " />
< input type = " hidden " name = " linktype<?php echo $intCounter ; ?> " id = " linktype<?php echo $intCounter ; ?> " value = " category " />
< input type = " hidden " name = " anchortitle<?php echo $intCounter ; ?> " id = " anchortitle<?php echo $intCounter ; ?> " value = " <?php echo htmlentities( $cat_item->cat_name ); ?> " />
< input type = " hidden " name = " newwindow<?php echo $intCounter ; ?> " id = " newwindow<?php echo $intCounter ; ?> " value = " 0 " />
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
< ? php $parentli = $cat_item -> cat_ID ; ?>
2010-02-21 01:03:42 +01:00
< ? php $intCounter ++ ; ?>
2010-02-20 22:57:43 +01:00
< ? php
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
//Recursive function
$intCounter = wp_custom_navigation_default_sub_items ( $cat_item -> cat_ID , $intCounter , $parentli , 'categories' , 'menu' );
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
?>
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
</ li >
2010-02-21 01:03:42 +01:00
< ? php
2010-02-20 22:57:43 +01:00
}
//Sidebar Menu
elseif ( $type == 'default' )
{
?>
< li >
< dl >
< dt >
< ? php
$post_text = htmlentities ( $cat_item -> cat_name );
$post_url = get_category_link ( $cat_item -> cat_ID );
$post_id = $cat_item -> cat_ID ;
$post_parent_id = $cat_item -> parent ;
$description = htmlentities ( strip_tags ( $cat_item -> description ));
?>
< ? php $templatedir = get_bloginfo ( 'url' ); ?>
< span class = " title " >< ? php echo $cat_item -> cat_name ; ?> </span> <a onclick="appendToList('<?php echo $templatedir; ?>','Category','<?php echo $post_text; ?>','<?php echo $post_url; ?>','<?php echo $post_id; ?>','<?php echo $post_parent_id ?>','<?php echo $description; ?>')" name="<?php echo $post_text; ?>" value="<?php echo $post_url; ?>"><img alt="Add to Custom Menu" title="Add to Custom Menu" src="<?php echo get_bloginfo('url'); ?>/wp-admin/images/ico-add.png" /></a> </dt>
</ dl >
< ? php $parentli = $cat_item -> cat_ID ; ?>
2010-02-21 01:03:42 +01:00
< ? php $intCounter ++ ; ?>
< ? php
2010-02-20 22:57:43 +01:00
//Recursive function
$intCounter = wp_custom_navigation_default_sub_items ( $cat_item -> cat_ID , $intCounter , $parentli , 'categories' , 'default' );
?>
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
</ li >
2010-02-21 01:03:42 +01:00
< ? php
}
}
2010-02-20 22:57:43 +01:00
}
}
2010-02-21 01:03:42 +01:00
else
2010-02-20 22:57:43 +01:00
{
echo 'Not Found' ;
}
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
return $intCounter ;
}
//RECURSIVE Sub Menu Items of default categories and pages
function wp_custom_navigation_default_sub_items ( $childof , $intCounter , $parentli , $type , $output_type ) {
$counter = $intCounter ;
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
//Custom Menu
2010-02-21 01:03:42 +01:00
if ( $output_type == 'menu' )
2010-02-20 22:57:43 +01:00
{
$sub_args = array (
'child_of' => $childof ,
'hide_empty' => false ,
'parent' => $childof );
}
//Sidebar Menu
2010-02-21 01:03:42 +01:00
elseif ( $output_type == 'default' )
2010-02-20 22:57:43 +01:00
{
$sub_args = array (
'child_of' => $childof ,
'hide_empty' => false ,
'parent' => $childof );
}
2010-02-21 01:03:42 +01:00
else
2010-02-20 22:57:43 +01:00
{
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
}
2010-02-21 01:03:42 +01:00
//Get Sub Category Items
2010-02-20 22:57:43 +01:00
if ( $type == 'categories' )
{
2010-02-21 01:03:42 +01:00
$sub_array = get_categories ( $sub_args );
2010-02-20 22:57:43 +01:00
}
//Get Sub Page Items
elseif ( $type == 'pages' )
{
$sub_array = get_pages ( $sub_args );
}
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
if ( $sub_array )
{
?>
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
< ul id = " sub-custom-nav-<?php echo $type ?> " >
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
< ? php
//DISPLAY Loop
foreach ( $sub_array as $sub_item )
{
//Prepare Menu Data
//Category Menu Item
2010-02-21 01:03:42 +01:00
if ( $type == 'categories' )
2010-02-20 22:57:43 +01:00
{
$link = get_category_link ( $sub_item -> cat_ID );
$title = htmlentities ( $sub_item -> cat_name );
$parent_id = $sub_item -> cat_ID ;
$itemid = $sub_item -> cat_ID ;
$linktype = 'category' ;
$appendtype = 'Category' ;
2010-02-21 01:03:42 +01:00
$description = htmlentities ( strip_tags ( $sub_item -> description ));
2010-02-20 22:57:43 +01:00
}
//Page Menu Item
elseif ( $type == 'pages' )
{
$link = get_permalink ( $sub_item -> ID );
$title = htmlentities ( $sub_item -> post_title );
$parent_id = $sub_item -> ID ;
$linktype = 'page' ;
$itemid = $sub_item -> ID ;
$appendtype = 'Page' ;
$description = htmlentities ( get_post_meta ( $itemid , 'page-description' , true ));
}
//Custom Menu Item
2010-02-21 01:03:42 +01:00
else
2010-02-20 22:57:43 +01:00
{
$title = '' ;
$linktype = 'custom' ;
$appendtype = 'Custom' ;
}
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
//Custom Menu
if ( $output_type == 'menu' )
{
?>
< li id = " menu-<?php echo $counter ; ?> " value = " <?php echo $counter ; ?> " >
< dl >
< dt >
< span class = " title " >< ? php echo $title ; ?> </span>
< span class = " controls " >
< span class = " type " >< ? php echo $linktype ; ?> </span>
2010-02-21 01:03:42 +01:00
< a id = " edit<?php echo $counter ; ?> " onclick = " edititem(<?php echo $counter ; ?>) " value = " <?php echo $counter ; ?> " >< img class = " edit " alt = " Edit Menu Item " title = " Edit Menu Item " src = " <?php echo get_bloginfo('url'); ?>/wp-admin/images/ico-edit.png " /></ a >
2010-02-20 22:57:43 +01:00
< a id = " remove<?php echo $counter ; ?> " onclick = " removeitem(<?php echo $counter ; ?>) " value = " <?php echo $counter ; ?> " >
< img class = " remove " alt = " Remove from Custom Menu " title = " Remove from Custom Menu " src = " <?php echo get_bloginfo('url'); ?>/wp-admin/images/ico-close.png " />
</ a >
< a target = " _blank " href = " <?php echo $link ; ?> " >
< img alt = " View Page " title = " View Page " src = " <?php echo get_bloginfo('url'); ?>/wp-admin/images/ico-viewpage.png " />
</ a >
</ span >
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
</ dt >
</ dl >
< a class = " hide " href = " <?php echo $link ; ?> " >< ? php echo $title ; ?> </a>
< input type = " hidden " name = " dbid<?php echo $counter ; ?> " id = " dbid<?php echo $counter ; ?> " value = " <?php echo $sub_item->id ; ?> " />
< input type = " hidden " name = " postmenu<?php echo $counter ; ?> " id = " postmenu<?php echo $counter ; ?> " value = " <?php echo $parent_id ; ?> " />
< input type = " hidden " name = " parent<?php echo $counter ; ?> " id = " parent<?php echo $counter ; ?> " value = " <?php echo $parentli ; ?> " />
< input type = " hidden " name = " title<?php echo $counter ; ?> " id = " title<?php echo $counter ; ?> " value = " <?php echo $title ; ?> " />
< input type = " hidden " name = " linkurl<?php echo $counter ; ?> " id = " linkurl<?php echo $counter ; ?> " value = " <?php echo $link ; ?> " />
< input type = " hidden " name = " description<?php echo $counter ; ?> " id = " description<?php echo $counter ; ?> " value = " <?php echo $description ; ?> " />
< input type = " hidden " name = " icon<?php echo $counter ; ?> " id = " icon<?php echo $counter ; ?> " value = " 0 " />
< input type = " hidden " name = " position<?php echo $counter ; ?> " id = " position<?php echo $counter ; ?> " value = " <?php echo $counter ; ?> " />
< input type = " hidden " name = " linktype<?php echo $counter ; ?> " id = " linktype<?php echo $counter ; ?> " value = " <?php echo $linktype ; ?> " />
< input type = " hidden " name = " anchortitle<?php echo $counter ; ?> " id = " anchortitle<?php echo $counter ; ?> " value = " <?php echo $title ; ?> " />
< input type = " hidden " name = " newwindow<?php echo $counter ; ?> " id = " newwindow<?php echo $counter ; ?> " value = " 0 " />
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
< ? php $counter ++ ; ?>
2010-02-21 01:03:42 +01:00
< ? php
2010-02-20 22:57:43 +01:00
//Do recursion
2010-02-21 01:03:42 +01:00
$counter = wp_custom_navigation_default_sub_items ( $parent_id , $counter , $parent_id , $type , 'menu' );
2010-02-20 22:57:43 +01:00
?>
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
</ li >
2010-02-21 01:03:42 +01:00
< ? php
2010-02-20 22:57:43 +01:00
}
//Sidebar Menu
elseif ( $output_type == 'default' )
{
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
?>
< li >
< dl >
< dt >
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
< ? php $templatedir = get_bloginfo ( 'url' ); ?>
< span class = " title " >< ? php echo $title ; ?> </span> <a onclick="appendToList('<?php echo $templatedir; ?>','<?php echo $appendtype; ?>','<?php echo $title; ?>','<?php echo $link; ?>','<?php echo $itemid; ?>','<?php echo $parent_id ?>','<?php echo $description; ?>')" name="<?php echo $title; ?>" value="<?php echo $link; ?>"><img alt="Add to Custom Menu" title="Add to Custom Menu" src="<?php echo get_bloginfo('url'); ?>/wp-admin/images/ico-add.png" /></a> </dt>
</ dl >
2010-02-21 01:03:42 +01:00
< ? php
2010-02-20 22:57:43 +01:00
//Do recursion
$counter = wp_custom_navigation_default_sub_items ( $itemid , $counter , $parent_id , $type , 'default' );
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
?>
</ li >
2010-02-21 01:03:42 +01:00
< ? php
2010-02-20 22:57:43 +01:00
}
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
}
?>
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
</ ul >
2010-02-21 01:03:42 +01:00
< ? php
2010-02-20 22:57:43 +01:00
}
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
return $counter ;
}
/*-----------------------------------------------------------------------------------*/
/* Recursive get children */
/*-----------------------------------------------------------------------------------*/
function get_children_menu_elements ( $childof , $intCounter , $parentli , $type , $menu_id , $table_name ) {
$counter = $intCounter ;
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
global $wpdb ;
2010-02-21 01:03:42 +01:00
//Get Sub Category Items
2010-02-20 22:57:43 +01:00
if ( $type == 'categories' )
{
$sub_args = array (
'child_of' => $childof ,
'hide_empty' => false ,
'parent' => $childof );
2010-02-21 01:03:42 +01:00
$sub_array = get_categories ( $sub_args );
2010-02-20 22:57:43 +01:00
}
//Get Sub Page Items
elseif ( $type == 'pages' )
{
$sub_args = array (
'child_of' => $childof ,
'parent' => $childof );
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
$sub_array = get_pages ( $sub_args );
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
}
else {
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
}
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
if ( $sub_array )
{
//DISPLAY Loop
foreach ( $sub_array as $sub_item )
{
if ( isset ( $sub_item -> parent )) {
$sub_item_parent = $sub_item -> parent ;
}
elseif ( isset ( $sub_item -> post_parent )) {
2010-02-21 01:03:42 +01:00
$sub_item_parent = $sub_item -> post_parent ;
2010-02-20 22:57:43 +01:00
}
else {
}
//Is child
if ( $sub_item_parent == $childof )
{
//Prepare Menu Data
//Category Menu Item
2010-02-21 01:03:42 +01:00
if ( $type == 'categories' )
2010-02-20 22:57:43 +01:00
{
$link = get_category_link ( $sub_item -> cat_ID );
$title = htmlentities ( $sub_item -> cat_name );
$parent_id = $sub_item -> category_parent ;
$itemid = $sub_item -> cat_ID ;
$linktype = 'category' ;
$appendtype = 'Category' ;
}
//Page Menu Item
elseif ( $type == 'pages' )
{
$link = get_permalink ( $sub_item -> ID );
$title = htmlentities ( $sub_item -> post_title );
$parent_id = $sub_item -> post_parent ;
$linktype = 'page' ;
$itemid = $sub_item -> ID ;
$appendtype = 'Page' ;
}
//Custom Menu Item
2010-02-21 01:03:42 +01:00
else
2010-02-20 22:57:43 +01:00
{
$title = '' ;
$linktype = 'custom' ;
$appendtype = 'Custom' ;
}
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
//CHECK for existing parent records
//echo $parent_id;
$wp_result = $wpdb -> get_results ( " SELECT id FROM " . $table_name . " WHERE post_id=' " . $parent_id . " ' AND link_type=' " . $linktype . " ' AND menu_id=' " . $menu_id . " ' " );
if ( $wp_result > 0 && isset ( $wp_result [ 0 ] -> id )) {
$parent_id = $wp_result [ 0 ] -> id ;
}
else {
//$parent_id = 0;
}
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
//INSERT item
$insert = " INSERT INTO " . $table_name . " (position,post_id,parent_id,custom_title,custom_link,custom_description,menu_icon,link_type,menu_id,custom_anchor_title) " . " VALUES (' " . $counter . " ',' " . $itemid . " ',' " . $parent_id . " ',' " . $title . " ',' " . $link . " ','','',' " . $linktype . " ',' " . $menu_id . " ',' " . $title . " ') " ;
$results = $wpdb -> query ( $insert );
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
$counter ++ ;
$counter = get_children_menu_elements ( $itemid , $counter , $parent_id , $type , $menu_id , $table_name );
2010-02-21 01:03:42 +01:00
}
2010-02-20 22:57:43 +01:00
//Do nothing
else {
2010-02-21 01:03:42 +01:00
2010-02-20 22:57:43 +01:00
}
}
}
return $counter ;
}
?>