WordPress.org

Make WordPress Core

Changeset 13332


Ignore:
Timestamp:
02/23/2010 06:17:51 PM (12 years ago)
Author:
ryan
Message:

Start consolidatinh menu item outupt into output_menu_item(). DRY. see #11817

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/custom-navigation.php

    r13331 r13332  
    5858}
    5959
    60 function setup_menu_item($menu_item) {
     60function setup_menu_item($menu_item, $type = 'item', $position = 0) {
    6161    global $parent_menu_order;
    6262
    63     $menu_item->type = get_post_meta($menu_item->ID, 'menu_type', true);
    64     $menu_item->object_id = get_post_meta($menu_item->ID, 'object_id', true);
    65     //$parent_menu_order[ $menu_item->ID ] = $menu_item->menu_order;
    66     if ( isset( $parent_menu_order[ $menu_item->post_parent ] ) )
    67         $menu_item->parent_item = $parent_menu_order[ $menu_item->post_parent ];
    68     else
    69         $menu_item->parent_item = 0;
     63    if ( 'item' == $type ) {
     64        $menu_item->type = get_post_meta($menu_item->ID, 'menu_type', true);
     65        $menu_item->object_id = get_post_meta($menu_item->ID, 'object_id', true);
     66        if ( isset( $parent_menu_order[ $menu_item->post_parent ] ) )
     67            $menu_item->parent_item = $parent_menu_order[ $menu_item->post_parent ];
     68        else
     69            $menu_item->parent_item = 0;
     70    } elseif ( 'category' == $type ) {
     71        $menu_item->type = $type;
     72        $menu_item->object_id = $menu_item->term_id;
     73        $menu_item->parent_item = $menu_item->parent;
     74        $menu_item->menu_order = $position;
     75    } elseif ( 'page' == $type ) {
     76        $menu_item->type = $type;
     77        $menu_item->object_id = $menu_item->ID;
     78        $menu_item->parent_item = $menu_item->post_parent;
     79        $menu_item->menu_order = $position;
     80    }
    7081
    7182    switch ( $menu_item->type ) {
     
    8798                $menu_item->description = htmlentities( $menu_item->post_content );
    8899            $menu_item->target = '';
     100            $menu_item->append = 'Page';
    89101        break;
    90102        // Category Menu Item
     
    107119                $menu_item->description = htmlentities( $menu_item->post_content );
    108120            $menu_item->target = '';
     121            $menu_item->append = 'Category';
    109122        break;
    110123        default:
     
    114127            $menu_item->description = htmlentities( $menu_item->post_content );
    115128            $menu_item->target = 'target="_blank"';
     129            $menu_item->append = 'Custom';
    116130        break;
    117131    }
     
    147161
    148162    return $menu_item;
     163}
     164
     165function output_menu_item($menu_item, $context) {
     166    switch( $context ) {
     167        case 'backend':
     168        case 'menu':
     169?>
     170                        <dl>
     171                            <dt>
     172                                <span class="title"><?php echo esc_html($menu_item->title); ?></span>
     173                                <span class="controls">
     174                                <span class="type"><?php echo esc_html($menu_item->type); ?></span>
     175                                <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="<?php esc_attr_e('Edit Menu Item'); ?>" title="<?php esc_attr_e('Edit Menu Item'); ?>" src="<?php echo admin_url('images/ico-edit.png'); ?>" /></a>
     176                                <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="<?php esc_attr_e('Remove from Custom Menu'); ?>" title="<?php esc_attr_e('Remove from Custom Menu'); ?>" src="<?php echo admin_url('images/ico-close.png'); ?>" /></a>
     177                                <a id="view<?php echo $menu_item->menu_order; ?>" target="_blank" href="<?php echo $menu_item->link; ?>"><img alt="<?php esc_attr_e('View Page'); ?>" title="<?php esc_attr_e('View Page'); ?>" src="<?php echo admin_url('images/ico-viewpage.png'); ?>" /></a>
     178                                </span>
     179                            </dt>
     180                        </dl>
     181                        <?php if ( 'backend' == $context ) { ?>
     182                        <a><span class=""></span></a>
     183                        <php } else { ?>
     184                        <a class="hide" href="<?php echo $menu_item->link; ?>"><?php echo $menu_item->title; ?></a>
     185                        <?php } ?>
     186                        <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; ?>" />
     187                        <input type="hidden" name="postmenu<?php echo $menu_item->menu_order; ?>" id="postmenu<?php echo $menu_item->menu_order; ?>" value="<?php echo $menu_item->ID; ?>" />
     188                        <input type="hidden" name="parent<?php echo $menu_item->menu_order; ?>" id="parent<?php echo $menu_item->menu_order; ?>" value="<?php echo $menu_item->parent_item; ?>" />
     189                        <input type="hidden" name="title<?php echo $menu_item->menu_order; ?>" id="title<?php echo $menu_item->menu_order; ?>" value="<?php echo $menu_item->title; ?>" />
     190                        <input type="hidden" name="linkurl<?php echo $menu_item->menu_order; ?>" id="linkurl<?php echo $menu_item->menu_order; ?>" value="<?php echo $menu_item->link; ?>" />
     191                        <input type="hidden" name="description<?php echo $menu_item->menu_order; ?>" id="description<?php echo $menu_item->menu_order; ?>" value="<?php echo $menu_item->description; ?>" />
     192                        <input type="hidden" name="icon<?php echo $menu_item->menu_order; ?>" id="icon<?php echo $menu_item->menu_order; ?>" value="0" />
     193                        <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; ?>" />
     194                        <input type="hidden" name="linktype<?php echo $menu_item->menu_order; ?>" id="linktype<?php echo $menu_item->menu_order; ?>" value="<?php echo $menu_item->type; ?>" />
     195                        <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 ); ?>" />
     196                        <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' ); ?>" />
     197<?php
     198        break;
     199    }
    149200}
    150201
     
    217268                        ?></a><?php
    218269                    } elseif ( $type == 'backend' ) {
    219                         ?>
    220 
    221                         <dl>
    222                             <dt>
    223                                 <span class="title"><?php echo $menu_item->title; ?></span>
    224                                 <span class="controls">
    225                                 <span class="type"><?php echo $menu_item->type; ?></span>
    226                                 <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 admin_url('images/ico-edit.png'); ?>" /></a>
    227                                 <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 admin_url('images/ico-close.png'); ?>" /></a>
    228                                 <a id="view<?php echo $menu_item->menu_order; ?>" target="_blank" href="<?php echo $menu_item->link; ?>"><img alt="View Page" title="View Page" src="<?php echo admin_url('images/ico-viewpage.png'); ?>" /></a>
    229                                 </span>
    230                             </dt>
    231                         </dl>
    232 
    233                         <a><span class=""></span></a>
    234                         <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; ?>" />
    235                         <input type="hidden" name="postmenu<?php echo $menu_item->menu_order; ?>" id="postmenu<?php echo $menu_item->menu_order; ?>" value="<?php echo $id; ?>" />
    236                         <input type="hidden" name="parent<?php echo $menu_item->menu_order; ?>" id="parent<?php echo $menu_item->menu_order; ?>" value="<?php echo $menu_item->parent_item; ?>" />
    237                         <input type="hidden" name="title<?php echo $menu_item->menu_order; ?>" id="title<?php echo $menu_item->menu_order; ?>" value="<?php echo $menu_item->title; ?>" />
    238                         <input type="hidden" name="linkurl<?php echo $menu_item->menu_order; ?>" id="linkurl<?php echo $menu_item->menu_order; ?>" value="<?php echo $menu_item->link; ?>" />
    239                         <input type="hidden" name="description<?php echo $menu_item->menu_order; ?>" id="description<?php echo $menu_item->menu_order; ?>" value="<?php echo $menu_item->description; ?>" />
    240                         <input type="hidden" name="icon<?php echo $menu_item->menu_order; ?>" id="icon<?php echo $menu_item->menu_order; ?>" value="0" />
    241                         <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; ?>" />
    242                         <input type="hidden" name="linktype<?php echo $menu_item->menu_order; ?>" id="linktype<?php echo $menu_item->menu_order; ?>" value="<?php echo $menu_item->type; ?>" />
    243                         <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 ); ?>" />
    244                         <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' ); ?>" />
    245 
    246                         <?php
     270                        output_menu_item($menu_item, 'backend');
    247271                    }
    248272            // Indent children
     
    302326            if ( $type == 'menu' ) {
    303327                $description = get_post_meta($post->ID, 'page-description', true);
     328                $post = setup_menu_item($post, 'page', $intCounter);
    304329                ?>
    305330
    306331                <li id="menu-<?php echo $intCounter; ?>" value="<?php echo $intCounter; ?>">
    307332
    308                     <dl>
    309                     <dt>
    310                     <span class="title"><?php echo $post->post_title; ?></span>
    311                     <span class="controls">
    312                         <span class="type">page</span>
    313                         <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>
    314                         <a id="remove<?php echo $intCounter; ?>" onclick="removeitem(<?php echo $intCounter; ?>)" value="<?php echo $intCounter; ?>">
    315                             <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" />
    316                         </a>
    317                         <a target="_blank" href="<?php echo get_permalink($post->ID); ?>">
    318                             <img alt="View Page" title="View Page" src="<?php echo get_bloginfo('url'); ?>/wp-admin/images/ico-viewpage.png" />
    319                         </a>
    320                     </span>
    321 
    322                     </dt>
    323                     </dl>
    324                     <a class="hide" href="<?php echo get_permalink($post->ID); ?>"><span class="title"><?php echo $post->post_title; ?></span>
    325                     </a>
    326                     <input type="hidden" name="postmenu<?php echo $intCounter; ?>" id="postmenu<?php echo $intCounter; ?>" value="<?php echo $post->ID; ?>" />
    327                     <input type="hidden" name="parent<?php echo $intCounter; ?>" id="parent<?php echo $intCounter; ?>" value="0" />
    328                     <input type="hidden" name="title<?php echo $intCounter; ?>" id="title<?php echo $intCounter; ?>" value="<?php echo htmlentities($post->post_title); ?>" />
    329                     <input type="hidden" name="linkurl<?php echo $intCounter; ?>" id="linkurl<?php echo $intCounter; ?>" value="<?php echo get_permalink($post->ID); ?>" />
    330                     <input type="hidden" name="description<?php echo $intCounter; ?>" id="description<?php echo $intCounter; ?>" value="<?php echo $description; ?>" />
    331                     <input type="hidden" name="icon<?php echo $intCounter; ?>" id="icon<?php echo $intCounter; ?>" value="0" />
    332                     <input type="hidden" name="position<?php echo $intCounter; ?>" id="position<?php echo $intCounter; ?>" value="<?php echo $intCounter; ?>" />
    333                     <input type="hidden" name="linktype<?php echo $intCounter; ?>" id="linktype<?php echo $intCounter; ?>" value="page" />
    334                     <input type="hidden" name="anchortitle<?php echo $intCounter; ?>" id="anchortitle<?php echo $intCounter; ?>" value="<?php echo htmlentities($post->post_title); ?>" />
    335                     <input type="hidden" name="newwindow<?php echo $intCounter; ?>" id="newwindow<?php echo $intCounter; ?>" value="0" />
     333                    <?php output_menu_item($post, 'menu', $intCounter); ?>
    336334
    337335                    <?php $parentli = $post->ID; ?>
Note: See TracChangeset for help on using the changeset viewer.