More output consolidation. see #11817

git-svn-id: http://svn.automattic.com/wordpress/trunk@13336 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
ryan 2010-02-23 19:28:41 +00:00
parent b92bce7e7f
commit e35199deb6
2 changed files with 74 additions and 111 deletions

View File

@ -136,6 +136,7 @@ function setup_menu_item($menu_item, $type = 'item', $position = 0) {
if ( $menu_item->ID == $wp_query->get_queried_object_id() ) if ( $menu_item->ID == $wp_query->get_queried_object_id() )
$menu_item->li_class = 'class="current_page_item"'; $menu_item->li_class = 'class="current_page_item"';
$menu_item->anchor_title = '';
/* @todo: update to use tax/post data /* @todo: update to use tax/post data
//SET anchor title //SET anchor title
@ -163,7 +164,7 @@ function setup_menu_item($menu_item, $type = 'item', $position = 0) {
return $menu_item; return $menu_item;
} }
function output_menu_item($menu_item, $context) { function output_menu_item($menu_item, $context, $args = array() ) {
switch( $context ) { switch( $context ) {
case 'backend': case 'backend':
case 'menu': case 'menu':
@ -195,6 +196,44 @@ function output_menu_item($menu_item, $context) {
<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; ?>" /> <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; ?>" />
<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="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' ); ?>" /> <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' ); ?>" />
<?php
break;
case 'frontend':
// Override for menu descriptions
$advanced_option_descriptions = get_option('wp_settings_custom_nav_advanced_options');
if ( $advanced_option_descriptions == 'no' )
$args['desc'] = 2;
?>
<a title="<?php echo $menu_item->anchor_title; ?>" href="<?php echo $menu_item->link; ?>" <?php echo $menu_item->target; ?>><?php echo $args['before_title'] . $menu_item->title . $args['after_title']; ?><?php
if ( $advanced_option_descriptions == 'no' ) {
// 2 widget override do NOT display descriptions
// 1 widget override display descriptions
// 0 widget override not set
if ( ($args['desc'] == 1) || ($args['desc'] == 0) ) {
?><span class="nav-description"><?php echo $menu_item->description; ?></span><?php
}
} else {
// 2 widget override do NOT display descriptions
// 1 widget override display descriptions
// 0 widget override not set
if ( $args['desc'] == 1 ) {
?><span class="nav-description"><?php echo $menu_item->description; ?></span><?php
}
}
?></a>
<?php
break;
case 'default':
?>
<dl>
<dt>
<?php $templatedir = get_bloginfo('url'); ?>
<span class="title"><?php echo $menu_item->title; ?></span> <a onclick="appendToList('<?php echo $templatedir; ?>','<?php echo $menu_item->append; ?>','<?php echo $menu_item->title; ?>','<?php echo $menu_item->link; ?>','<?php echo $menu_item->ID; ?>','<?php echo $menu_item->parent_item ?>','<?php echo $menu_item->description; ?>')" name="<?php echo $menu_item->title; ?>" value="<?php echo $menu_item->link; ?>"><img alt="<?php esc_attr_e('Add to Custom Menu'); ?>" title="<?php esc_attr_e('Add to Custom Menu'); ?>" src="<?php echo admin_url('images/ico-add.png'); ?>" /></a> </dt>
</dl>
<?php <?php
break; break;
} }
@ -227,10 +266,6 @@ function wp_custom_navigation_output( $args = array() ) {
$menu_objects = get_objects_in_term( $id, 'nav_menu' ); $menu_objects = get_objects_in_term( $id, 'nav_menu' );
$menu_items = wp_custom_navigation_get_menu_items( $menu_objects, 'menu_order' ); $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');
if ( $advanced_option_descriptions == 'no' )
$desc = 2;
$parent_stack = array(); $parent_stack = array();
$current_parent = 0; $current_parent = 0;
@ -245,31 +280,7 @@ function wp_custom_navigation_output( $args = array() ) {
$menu_item = setup_menu_item($menu_item); $menu_item = setup_menu_item($menu_item);
// List Items // List Items
?><li id="menu-<?php echo $menu_item->ID; ?>" value="<?php echo $menu_item->ID; ?>" <?php echo $menu_item->li_class; ?>><?php ?><li id="menu-<?php echo $menu_item->ID; ?>" value="<?php echo $menu_item->ID; ?>" <?php echo $menu_item->li_class; ?>><?php
//@todo: update front end to use post data output_menu_item($menu_item, $type, $args);
//FRONTEND Link
if ( $type == 'frontend' ) {
?><a title="<?php echo $menu_item->anchor_title; ?>" href="<?php echo $menu_item->link; ?>" <?php echo $menu_item->target; ?>><?php echo $before_title.$menu_item->title.$after_title; ?><?php
if ( $advanced_option_descriptions == 'no' ) {
// 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 $menu_item->description; ?></span><?php
}
} else {
// 2 widget override do NOT display descriptions
// 1 widget override display descriptions
// 0 widget override not set
if ( $desc == 1 ) {
?><span class="nav-description"><?php echo $menu_item->description; ?></span><?php
}
}
?></a><?php
} elseif ( $type == 'backend' ) {
output_menu_item($menu_item, 'backend');
}
// Indent children // Indent children
$last_item = ( count( $menu_items ) == $menu_item->menu_order ); $last_item = ( count( $menu_items ) == $menu_item->menu_order );
if ( $last_item || $current_parent != $menu_items[ $key + 1 ]->post_parent ) { if ( $last_item || $current_parent != $menu_items[ $key + 1 ]->post_parent ) {

View File

@ -1044,8 +1044,8 @@ class WP_Widget_Tag_Cloud extends WP_Widget {
class WP_CustomNavWidget extends WP_Widget { class WP_CustomNavWidget extends WP_Widget {
function WP_CustomNavWidget() { function WP_CustomNavWidget() {
$widget_ops = array('description' => 'Use this widget to add one of your Custom Navigation Menus as a widget.' ); $widget_ops = array('description' => __('Use this widget to add one of your Custom Navigation Menus as a widget.') );
parent::WP_Widget(false, __('Custom Navigation Menu'),$widget_ops); parent::WP_Widget(false, __('Custom Navigation Menu'), $widget_ops);
} }
function widget($args, $instance) { function widget($args, $instance) {
@ -1059,56 +1059,39 @@ class WP_Widget_Tag_Cloud extends WP_Widget {
$navulid = $instance['navulid']; $navulid = $instance['navulid'];
$navulclass = $instance['navulclass']; $navulclass = $instance['navulclass'];
//Override for menu descriptions // Override for menu descriptions
$advanced_option_descriptions = get_option('wp_settings_custom_nav_advanced_options'); $advanced_option_descriptions = get_option('wp_settings_custom_nav_advanced_options');
if ($advanced_option_descriptions == 'no') if ( $advanced_option_descriptions == 'no' ) {
{
$navwidgetdescription = 2; $navwidgetdescription = 2;
} } else {
else
{
$navwidgetdescription = $instance['navwidgetdescription']; $navwidgetdescription = $instance['navwidgetdescription'];
} }
$menuexists = false; $menuexists = false;
global $wpdb; global $wpdb;
//GET menu name // GET menu name
if ($navmenu > 0) if ( $navmenu > 0 ) {
{ $custom_menu = get_term( (int) $nav_menu, 'nav_menu' );
$table_name_menus = $wpdb->prefix . "custom_nav_menus"; $wp_custom_nav_menu_name = $custom_menu->name;
$wp_result = $wpdb->get_results("SELECT menu_name FROM ".$table_name_menus." WHERE id='".$navmenu."'");
$wp_custom_nav_menu_name = $wp_result[0]->menu_name;
$menuexists = true; $menuexists = true;
} } else {
//Do nothing
else
{
$menuexists = false; $menuexists = false;
} }
?> ?>
<?php <?php
//DEVELOPER settings enabled //DEVELOPER settings enabled
if ($navdeveloper == 'yes') if ( $navdeveloper == 'yes' ) {
{
//DISPLAY Custom DIV //DISPLAY Custom DIV
if ($navdiv == 'yes') if ( $navdiv == 'yes' ) {
{
?> ?>
<div id="<?php echo $navdivid; ?>" class="<?php echo $navdivclass; ?>"> <div id="<?php echo $navdivid; ?>" class="<?php echo $navdivclass; ?>">
<?php <?php
} }
//Do NOT display DIV
else
{
}
} }
//DISPLAY default DIV //DISPLAY default DIV
else else {
{
?> ?>
<div class="widget"> <div class="widget">
<?php <?php
@ -1118,31 +1101,21 @@ class WP_Widget_Tag_Cloud extends WP_Widget {
<h3><?php echo $navtitle; ?></h3> <h3><?php echo $navtitle; ?></h3>
<?php <?php
if ($menuexists) if ( $menuexists ) {
{
?> ?>
<?php <?php
//DEVELOPER settings enabled //DEVELOPER settings enabled
if ($navdeveloper == 'yes') if ( $navdeveloper == 'yes' ) {
{
//DISPLAY Custom UL //DISPLAY Custom UL
if ($navul == 'yes') if ( $navul == 'yes' ) {
{
?> ?>
<ul id="<?php echo $navulid; ?>" class="<?php echo $navulclass; ?>"> <ul id="<?php echo $navulid; ?>" class="<?php echo $navulclass; ?>">
<?php <?php
} }
//Do NOT display UL
else
{
}
} }
//DISPLAY default UL //DISPLAY default UL
else else {
{
?> ?>
<ul class="custom-nav"> <ul class="custom-nav">
<?php <?php
@ -1152,33 +1125,23 @@ class WP_Widget_Tag_Cloud extends WP_Widget {
<?php <?php
//DISPLAY custom navigation menu //DISPLAY custom navigation menu
if (get_option('wp_custom_nav_menu') == 'true') { if ( get_option('wp_custom_nav_menu') == 'true' )
custom_nav('name='.$wp_custom_nav_menu_name.'&desc='.$navwidgetdescription); custom_nav( array('id' => $navmenu, 'name' => $wp_custom_nav_menu_name, 'desc' => $navwidgetdescription) );
}
?> ?>
<?php <?php
//DEVELOPER settings enabled //DEVELOPER settings enabled
if ($navdeveloper == 'yes') if ( $navdeveloper == 'yes' ) {
{
//DISPLAY Custom UL //DISPLAY Custom UL
if ($navul == 'yes') if ( $navul == 'yes' ) {
{
?> ?>
</ul> </ul>
<?php <?php
} }
//Do NOT display UL
else
{
}
} }
//DISPLAY default UL //DISPLAY default UL
else else {
{
?> ?>
</ul> </ul>
<?php <?php
@ -1186,16 +1149,13 @@ class WP_Widget_Tag_Cloud extends WP_Widget {
?> ?>
<?php <?php
} } else {
else _e('You have not setup the custom navigation widget correctly, please check your settings in the backend.');
{
echo "You have not setup the custom navigation widget correctly, please check your settings in the backend.";
} }
?> ?>
<?php <?php
//DEVELOPER settings enabled //DEVELOPER settings enabled
if ($navdeveloper == 'yes') if ($navdeveloper == 'yes') {
{
//DISPLAY Custom DIV //DISPLAY Custom DIV
if ($navdiv == 'yes') if ($navdiv == 'yes')
{ {
@ -1240,14 +1200,10 @@ class WP_Widget_Tag_Cloud extends WP_Widget {
global $wpdb; global $wpdb;
//GET Menu Items for SELECT OPTIONS // Get menus
$table_name_custom_menus = $wpdb->prefix . "custom_nav_menus"; $custom_menus = get_terms( 'nav_menu', array( 'hide_empty' => false ) );
$custom_menu_records = $wpdb->get_results("SELECT id,menu_name FROM ".$table_name_custom_menus);
//CHECK if menus exist
if ($custom_menu_records > 0)
{
if ( $custom_menus ) {
?> ?>
<p> <p>
@ -1257,16 +1213,14 @@ class WP_Widget_Tag_Cloud extends WP_Widget {
<?php <?php
//DISPLAY SELECT OPTIONS //DISPLAY SELECT OPTIONS
foreach ($custom_menu_records as $custom_menu_record) foreach ( $custom_menus as $menu ) {
{ if ( $navmenu == $menu->term_id) {
if ($navmenu == $custom_menu_record->id) {
$selected_option = 'selected="selected"'; $selected_option = 'selected="selected"';
} } else {
else {
$selected_option = ''; $selected_option = '';
} }
?> ?>
<option value="<?php echo $custom_menu_record->id; ?>" <?php echo $selected_option; ?>><?php echo $custom_menu_record->menu_name; ?></option> <option value="<?php echo $menu->term_id; ?>" <?php echo $selected_option; ?>><?php echo $menu->name; ?></option>
<?php <?php
} }
@ -1276,7 +1230,6 @@ class WP_Widget_Tag_Cloud extends WP_Widget {
</p> </p>
<p> <p>
<label for="<?php echo $this->get_field_id('navtitle'); ?>"><?php _e('Title:'); ?></label> <label for="<?php echo $this->get_field_id('navtitle'); ?>"><?php _e('Title:'); ?></label>
<input type="text" name="<?php echo $this->get_field_name('navtitle'); ?>" value="<?php echo $navtitle; ?>" class="widefat" id="<?php echo $this->get_field_id('navtitle'); ?>" /> <input type="text" name="<?php echo $this->get_field_name('navtitle'); ?>" value="<?php echo $navtitle; ?>" class="widefat" id="<?php echo $this->get_field_id('navtitle'); ?>" />
</p> </p>
@ -1316,8 +1269,7 @@ class WP_Widget_Tag_Cloud extends WP_Widget {
<?php <?php
if ($checked == 'yes') if ( $checked == 'yes' ) {
{
?> ?>