WordPress.org

Plugin Directory

Changeset 767125


Ignore:
Timestamp:
09/04/13 23:42:47 (8 months ago)
Author:
wpmuguru
Message:

tag & release 0.2

Location:
genesis-simple-menus
Files:
9 added
2 edited

Legend:

Unmodified
Added
Removed
  • genesis-simple-menus/trunk/readme.txt

    r636603 r767125  
    22Contributors: wpmuguru 
    33Tags: genesis,genesiswp,studiopress,menu,navigation 
    4 Requires at least: 3.0 
    5 Tested up to: 3.5 
    6 Stable tag: 0.1.5 
     4Requires at least: 3.6 
     5Tested up to: 3.6 
     6Stable tag: 0.2 
    77 
    88With Genesis, Simple Menus allows you to select a WP menu for secondary navigation on posts, pages, categories, tags or custom taxonomies. 
  • genesis-simple-menus/trunk/simple-menu.php

    r612408 r767125  
    44Plugin URI: http://www.studiopress.com/plugins/simple-menus 
    55Description: Genesis Simple Menus allows you to select a WordPress menu for secondary navigation on individual posts/pages. 
    6 Version: 0.1.5 
     6Version: 0.2 
    77Author: Ron Rennick 
    88Author URI: http://ronandandrea.com/ 
     
    3434*/ 
    3535class Genesis_Simple_Menus { 
     36 
    3637    var $handle = 'gsm-post-metabox'; 
    3738    var $nonce_key = 'gsm-post-metabox-nonce'; 
     
    4041    var $taxonomies=null; 
    4142/* 
    42  * constructors - hook into Genesis if this is WP 3.0 or greater 
    43  */ 
    44     function Genesis_Simple_Menus() { 
    45         return $this->__construct(); 
    46     } 
     43 * constructor 
     44 */ 
     45 
    4746    function  __construct() { 
     47 
    4848        add_action( 'init', array( $this, 'init' ), 99 ); 
    4949 
    50             load_plugin_textdomain( 'genesis-simple-menus', false, 'genesis-simple-menus/languages' ); 
     50        load_plugin_textdomain( 'genesis-simple-menus', false, 'genesis-simple-menus/languages' ); 
     51 
    5152    } 
    5253/* 
     
    5455 */ 
    5556    function init() { 
    56         if( !function_exists( 'genesis_get_option' ) ) 
    57             return; 
    58  
    59         add_action( 'admin_menu', array( $this, 'admin_menu' ) ); 
    60         add_action( 'save_post', array( $this, 'save_post' ), 10, 2 ); 
    61         add_action( 'wp_head', array( $this, 'wp_head' ) ); 
     57 
     58        if ( ! function_exists( 'genesis_get_option' ) ) 
     59            return; 
     60 
     61        add_action( 'admin_menu',   array( $this, 'admin_menu' ) ); 
     62        add_action( 'save_post',    array( $this, 'save_post' ), 10, 2 ); 
     63        add_action( 'wp_head',      array( $this, 'wp_head' ) ); 
    6264         
    6365        $_taxonomies = get_taxonomies( array( 'show_ui' => true, 'public' => true ) ); 
    6466        $this->taxonomies = apply_filters( 'genesis_simple_menus_taxonomies', array_keys( $_taxonomies ) ); 
    6567 
    66         if( !empty( $this->taxonomies ) && is_array( $this->taxonomies ) ) { 
    67             foreach( $this->taxonomies as $tax ) 
    68                 add_action( "{$tax}_edit_form", array( $this, 'term_edit' ), 9, 2 ); 
     68        if ( empty( $this->taxonomies ) || ! is_array( $this->taxonomies ) ) 
     69            return; 
     70 
     71        foreach( $this->taxonomies as $tax ) 
     72            add_action( "{$tax}_edit_form", array( $this, 'term_edit' ), 9, 2 ); 
     73 
     74    } 
     75/* 
     76 * Add the post metaboxes to the supported post types 
     77 */ 
     78    function admin_menu() { 
     79 
     80        foreach( (array) get_post_types( array( 'public' => true ) ) as $type ) { 
     81 
     82            if( $type == 'post' || $type == 'page' || post_type_supports( $type, 'genesis-simple-menus' ) ) 
     83                add_meta_box( $this->handle, __( 'Secondary Navigation', 'genesis' ), array( $this, 'metabox' ), $type, 'side', 'low' ); 
     84 
    6985        } 
    7086    } 
    7187/* 
    72  * Add the post metaboxes to the supported post types 
    73  */ 
    74     function admin_menu() { 
    75         foreach( (array) get_post_types( array( 'public' => true ) ) as $type ) { 
    76             if( $type == 'post' || $type == 'page' || post_type_supports( $type, 'genesis-simple-menus' ) ) 
    77                 add_meta_box( $this->handle, __( 'Secondary Navigation', 'genesis' ), array( &$this, 'metabox' ), $type, 'side', 'low' ); 
    78         } 
    79     } 
    80 /* 
    8188 * Does the metabox on the post edit page 
    8289 */ 
    8390    function metabox() { 
    84 ?>  <p> 
    85 <?php       $this->print_menu_select( $this->field_name, genesis_get_custom_field( $this->field_name ), 'width: 99%;' ); ?> 
     91    ?> 
     92    <p> 
     93        <?php 
     94        $this->print_menu_select( $this->field_name, genesis_get_custom_field( $this->field_name ), 'width: 99%;' ); 
     95        ?> 
    8696    </p> 
    87 <?php   } 
     97    <?php 
     98    } 
    8899/* 
    89100 * Does the metabox on the term edit page 
    90101 */ 
    91102    function term_edit( $tag, $taxonomy ) { 
     103 
    92104        // Merge Defaults to prevent notices 
    93105        $tag->meta = wp_parse_args( $tag->meta, array( $this->field_name => '' ) ); 
    94 ?> 
     106    ?> 
    95107    <h3><?php _e( 'Secondary Navigation', 'genesis' ); ?></h3> 
     108 
    96109    <table class="form-table"> 
    97     <tr class="form-field"> 
    98         <th scope="row" valign="top"> 
    99 <?php       $this->print_menu_select( "meta[{$this->field_name}]", $tag->meta[$this->field_name], '', 'padding-right: 10px;', '</th><td>' ); ?> 
    100         </td> 
    101     </tr> 
     110        <tr class="form-field"> 
     111            <th scope="row" valign="top"> 
     112                <?php        
     113                $this->print_menu_select( "genesis-meta[{$this->field_name}]", $tag->meta[$this->field_name], '', 'padding-right: 10px;', '</th><td>' ); ?> 
     114            </td> 
     115        </tr> 
    102116    </table> 
    103 <?php   } 
     117    <?php 
     118    } 
    104119/* 
    105120 * Support function for the metaboxes, outputs the menu dropdown 
    106121 */ 
    107122    function print_menu_select( $field_name, $selected, $select_style = '', $option_style = '', $after_label = '' ) { 
    108         if( $select_style ) 
     123 
     124        if ( $select_style ) 
    109125            $select_style = sprintf(' style="%s"', esc_attr( $select_style ) ); 
    110         if( $option_style ) 
     126 
     127        if ( $option_style ) 
    111128            $option_style = sprintf(' style="%s"', esc_attr( $option_style ) ); 
    112 ?> 
     129 
     130        ?> 
    113131        <label for="<?php echo $field_name; ?>"><span><?php _e( 'Secondary Navigation', 'genesis' ); ?><span></label> 
    114 <?php       echo $after_label; ?> 
     132 
     133        <?php echo $after_label; ?> 
     134 
    115135        <select name="<?php echo $field_name; ?>" id="<?php echo $field_name; ?>"<?php echo $select_style; ?>> 
    116136            <option value=""<?php echo $option_style; ?>><?php _e( 'Genesis Default', 'genesis-simple-menus' ); ?></option> 
    117 <?php       $menus = wp_get_nav_menus( array('orderby' => 'name') ); 
    118         foreach ( $menus as $menu ) 
    119             printf( '<option value="%d" %s>%s</option>', $menu->term_id, selected( $menu->term_id, $selected, false ), esc_html( $menu->name ) ); 
    120 ?>      </select> 
    121 <?php   } 
     137            <?php 
     138            $menus = wp_get_nav_menus( array( 'orderby' => 'name') ); 
     139            foreach ( $menus as $menu ) 
     140                printf( '<option value="%d" %s>%s</option>', $menu->term_id, selected( $menu->term_id, $selected, false ), esc_html( $menu->name ) ); 
     141            ?> 
     142        </select> 
     143        <?php 
     144    } 
    122145/* 
    123146 * Handles the post save & stores the menu selection in the post meta 
     
    132155 
    133156        $perm = 'edit_' . ( 'page' == $post->post_type ? 'page' : 'post' ) . 's'; 
    134         if ( current_user_can( $perm, $post_id ) ) { 
    135             if( empty( $_POST[$this->field_name] ) ) 
    136                 delete_post_meta( $post_id, $this->field_name ); 
    137             else 
    138                 update_post_meta( $post_id, $this->field_name, $_POST[$this->field_name] ); 
    139         } 
     157        if ( ! current_user_can( $perm, $post_id ) ) 
     158            return; 
     159 
     160        if ( empty( $_POST[$this->field_name] ) ) 
     161            delete_post_meta( $post_id, $this->field_name ); 
     162        else 
     163            update_post_meta( $post_id, $this->field_name, $_POST[$this->field_name] ); 
    140164 
    141165    } 
     
    144168 */ 
    145169    function wp_head() { 
    146         $term = false; 
    147  
    148         if( is_singular() ) { 
     170 
     171        add_filter( 'theme_mod_nav_menu_locations', array( $this, 'theme_mod' ) ); 
     172 
     173        if ( is_singular() ) { 
     174 
    149175            $obj = get_queried_object(); 
    150176            $this->menu = get_post_meta( $obj->ID, $this->field_name, true ); 
     177            return; 
     178 
    151179        } 
    152         elseif( is_category() && in_array( 'category', $this->taxonomies ) ) 
     180 
     181        $term = false; 
     182 
     183        if ( is_category() && in_array( 'category', $this->taxonomies ) ) { 
     184 
    153185            $term = get_term( get_query_var( 'cat' ), 'category' ); 
    154         elseif( is_tag() && in_array( 'post_tag', $this->taxonomies ) ) 
     186         
     187        } elseif ( is_tag() && in_array( 'post_tag', $this->taxonomies ) ) { 
     188 
    155189            $term = get_term( get_query_var( 'tag_id' ), 'post_tag' ); 
    156         elseif( is_tax() ) { 
     190 
     191        } elseif( is_tax() ) { 
     192 
    157193            foreach( $this->taxonomies as $tax ) { 
     194 
    158195                if( $tax == 'post_tag' || $tax == 'category' ) 
    159196                    continue; 
     197 
    160198                if( is_tax( $tax ) ) { 
     199 
    161200                    $obj = get_queried_object(); 
    162201                    $term = get_term( $obj->term_id, $tax ); 
    163202                    break; 
     203 
    164204                } 
    165205            } 
    166206        } 
    167         if( $term && isset( $term->meta[$this->field_name] ) ) 
     207 
     208        if ( $term && isset( $term->meta[$this->field_name] ) ) 
    168209            $this->menu = $term->meta[$this->field_name]; 
    169         if( $this->menu ) { 
    170             add_filter( 'genesis_pre_get_option_subnav_type', array( &$this, 'pre_get_option_subnav_type' ) ); 
    171             add_filter( 'theme_mod_nav_menu_locations', array( &$this, 'theme_mod' ) ); 
    172         } 
    173     } 
    174 /* 
    175  * Tell Genesis to do a custom menu as the subnav 
    176  */ 
    177     function pre_get_option_subnav_type( $nav ) { 
    178         if( $this->menu ) 
    179             return 'nav-menu'; 
    180  
    181         return $nav; 
     210 
    182211    } 
    183212/* 
     
    185214 */ 
    186215    function theme_mod( $mods ) { 
    187         if( $this->menu ) 
     216 
     217        if ( $this->menu ) 
    188218            $mods['secondary'] = (int)$this->menu; 
    189219 
    190220        return $mods; 
     221 
    191222    } 
    192223} 
Note: See TracChangeset for help on using the changeset viewer.