WordPress.org

Plugin Directory

Changeset 1376674


Ignore:
Timestamp:
03/22/16 22:28:29 (18 months ago)
Author:
sladix
Message:

geodirectory support and bug fixes

Location:
restrict-taxonomies
Files:
8 added
3 edited

Legend:

Unmodified
Added
Removed
  • restrict-taxonomies/trunk/README.md

    r1298896 r1376674  
    66* Tags: restrict, admin, administration, cms, categories, category, taxonomies, taxonomy 
    77* Requires at least: 3.1 
    8 * Tested up to: 4.3.1 
    9 * Stable tag: 1.2.8 
     8* Tested up to: 4.4.2 
     9* Stable tag: 1.2.9 
    1010* License: GPLv2 or later 
    1111* License URI: http://www.gnu.org/licenses/gpl-2.0.html 
  • restrict-taxonomies/trunk/readme.txt

    r1298896 r1376674  
    44Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=sladix%40gmail%2ecom&lc=FR&item_name=Sladix&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted 
    55Requires at least: 3.1 
    6 Tested up to: 4.3.1 
    7 Stable tag: 1.2.8 
     6Tested up to: 4.4.2 
     7Stable tag: 1.2.9 
    88License: GPLv2 or later 
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html 
     
    3636== Changelog == 
    3737 
     38= 1.2.9 = 
     39* Added support for the latest vession of Geodirectory 
     40* Fixed a bug that occurs when multiples CPT and taxonomies are on a same page 
     41* Code clean up 
     42 
    3843= 1.2.8 = 
    3944* Added Dokan Dashboard support 
  • restrict-taxonomies/trunk/restrict-taxonomies.php

    r1298896 r1376674  
    4343            $post_type_options = get_option('RestrictTaxs_post_type_options'); 
    4444 
    45             // If the page is the Posts screen, do our thing, otherwise chill 
     45            // If the page is the Posts screen, do our thing, otherwise chill 
    4646            if ( $post_type == false || $post_type == 'post' ||  $post_type == 'page' || in_array($post_type,$post_type_options['post_types']) ) 
    4747                add_action( 'admin_init', array( &$this, 'posts' ) ); 
     
    182182                case 'reset' : 
    183183                    echo '<div id="message" class="updated"><p>' . __( 'Restrict Categories reset' , 'restrict-taxonomies') . '</p></div>'; 
    184                 break; 
     184                    break; 
    185185            endswitch; 
    186186 
     
    211211 
    212212    /** 
    213      * Get all categories that will be used as options. 
    214      * 
    215      * @since 1.0 
    216      * @uses get_categories() Returns an array of category objects matching the query parameters. 
    217      * @return $cat array All category slugs. 
    218      */ 
    219     public function get_cats(){ 
    220         $cat = array(); 
    221         //Todo opts cpt 
    222         $categories = get_terms( 'categorie-actualites','hide_empty=0' ); 
    223  
    224         foreach ( $categories as $category ) { 
    225             $cat[] = array( 
    226                 'slug' => $category->slug 
    227             ); 
    228         } 
    229  
    230         return $cat; 
    231     } 
    232  
    233     /** 
    234213     * Set up the options array which will output all roles with categories. 
    235214     * 
    236215     * @since 1.0 
    237216     * @uses get_roles() Returns an array of all user roles. 
    238      * @uses get_cats() Returns an array of all categories. 
    239217     * @return $rc_options array Multidimensional array with options. 
    240218     */ 
     
    243221 
    244222        $roles  = $this->get_roles(); 
    245         // $cats    = $this->get_cats(); 
    246223        $fo = get_option('RestrictTaxs_general_options'); 
    247224        if(isset($fo['frontend']) && $fo['frontend']) 
     
    268245     * @since 1.0 
    269246     * @uses get_logins() Returns an array of all user logins. 
    270      * @uses get_cats() Returns an array of all categories. 
    271247     * @return $rc_user_options array Multidimensional array with options. 
    272248     */ 
     
    275251 
    276252        $logins = $this->get_logins(); 
    277         // $cats    = $this->get_cats(); 
    278253 
    279254        foreach ( $logins as $name => $id ) { 
     
    421396        $roles_tab = esc_url( admin_url( 'options-general.php?page=restrict-taxonomies' ) ); 
    422397        $users_tab = add_query_arg( 'type', 'users', $roles_tab ); 
    423     ?> 
     398        ?> 
    424399 
    425400        <div class="wrap"> 
    426401            <h2> 
    427             <?php 
     402                <?php 
    428403                _e('Restrict Taxonomies', 'restrict-taxonomies'); 
    429404 
     
    433408                    echo sprintf( '<span class="subtitle"><a href="%1$s">%2$s</a></span>', $users_tab, __( 'View All Users', 'restrict-taxonomies' ) ); 
    434409                } 
    435             ?> 
     410                ?> 
    436411            </h2> 
    437412            <h3><?php _e('Post types and Taxonomy Settings', 'restrict-taxonomies'); ?></h3> 
     
    440415                <?php settings_fields( 'RestrictTaxs_post_type_options' ); ?> 
    441416                <h4>Custom post Types to handle</h4> 
    442                 <fieldset> 
    443                     <?php 
    444                         $pts = get_post_types( array('public'=>true,'_builtin'=>false), 'objects'); 
    445                         $isposts = false; 
    446                         foreach ($pts as $cpt): ?> 
    447                             <label><input type="checkbox" name="RestrictTaxs_post_type_options[post_types][]" value="<?php echo $cpt->name ?>" <?php if(in_array($cpt->name,$options['post_types'])){echo "checked";} ?>><?php echo $cpt->labels->menu_name ?> </label> 
    448                             <?php if($cpt->name == 'post'){$isposts = true;} ?> 
    449                         <?php endforeach; 
    450                     ?> 
    451                     <?php if (!$isposts): ?> 
    452                         <label><input type="checkbox" name="RestrictTaxs_post_type_options[post_types][]" value="post" <?php if(in_array("post",$options['post_types'])){echo "checked";} ?>><?php _e('Posts','restrict-taxonomies') ?> </label>     
    453                     <?php endif ?> 
    454                      
    455                 <h4>Custom Taxonomies to handle</h4> 
    456                     <?php 
    457                         $cts = get_taxonomies(array('_builtin'=>false), 'objects'); ?>                        
    458                         <?php foreach ($cts as $ct): ?> 
    459                             <label><input type="checkbox" name="RestrictTaxs_post_type_options[taxonomies][]" value="<?php echo $ct->name ?>" <?php if(in_array($ct->name,$options['taxonomies'])){echo "checked";} ?>><?php echo $ct->labels->name ?> </label> 
    460                         <?php endforeach; 
    461                     ?> 
    462                      <label><input type="checkbox" name="RestrictTaxs_post_type_options[taxonomies][]" value="category" <?php if(in_array("category",$options['taxonomies'])){echo "checked";} ?>><?php _e('Categories','restrict-taxonomies') ?> </label> 
    463                 </fieldset> 
    464                 <?php submit_button(); ?> 
    465             </form> 
    466             <?php $frontOptions = get_option('RestrictTaxs_general_options'); ?> 
    467             <form method = "post" action="options.php"> 
    468                     <?php settings_fields('RestrictTaxs_general_options'); ?> 
    469                     <h4>General options</h4> 
    470                     <label><input type="checkbox" name="RestrictTaxs_general_options[frontend]" value="1" <?php if(isset($frontOptions['frontend']) && $frontOptions['frontend']){echo "checked";} ?>> Front end restrictions</label> 
    471                     <?php submit_button(); ?> 
    472             </form> 
    473             <h2 class="nav-tab-wrapper"> 
    474                 <a href="<?php echo $roles_tab; ?>" class="nav-tab <?php echo ( $tab == 'roles' ) ? 'nav-tab-active' : ''; ?>"><?php _e( 'Roles', 'restrict-taxonomies' ); ?></a> 
    475                 <a href="<?php echo $users_tab; ?>" class="nav-tab <?php echo ( $tab == 'users' ) ? 'nav-tab-active' : ''; ?>"><?php _e( 'Users', 'restrict-taxonomies' ); ?></a> 
    476             </h2> 
     417                <fieldset> 
     418                    <?php 
     419                    $pts = get_post_types( array('public'=>true,'_builtin'=>false), 'objects'); 
     420                    $isposts = false; 
     421                    foreach ($pts as $cpt): ?> 
     422                        <label><input type="checkbox" name="RestrictTaxs_post_type_options[post_types][]" value="<?php echo $cpt->name ?>" <?php if(in_array($cpt->name,$options['post_types'])){echo "checked";} ?>><?php echo $cpt->labels->menu_name ?> </label> 
     423                        <?php if($cpt->name == 'post'){$isposts = true;} ?> 
     424                    <?php endforeach; 
     425                    ?> 
     426                    <?php if (!$isposts): ?> 
     427                        <label><input type="checkbox" name="RestrictTaxs_post_type_options[post_types][]" value="post" <?php if(in_array("post",$options['post_types'])){echo "checked";} ?>><?php _e('Posts','restrict-taxonomies') ?> </label> 
     428                    <?php endif ?> 
     429 
     430                    <h4>Custom Taxonomies to handle</h4> 
     431                    <?php 
     432                    $cts = get_taxonomies(array('_builtin'=>false), 'objects'); ?> 
     433                    <?php foreach ($cts as $ct): ?> 
     434                        <label><input type="checkbox" name="RestrictTaxs_post_type_options[taxonomies][]" value="<?php echo $ct->name ?>" <?php if(in_array($ct->name,$options['taxonomies'])){echo "checked";} ?>><?php echo $ct->labels->name ?> </label> 
     435                    <?php endforeach; 
     436                    ?> 
     437                    <label><input type="checkbox" name="RestrictTaxs_post_type_options[taxonomies][]" value="category" <?php if(in_array("category",$options['taxonomies'])){echo "checked";} ?>><?php _e('Categories','restrict-taxonomies') ?> </label> 
     438                </fieldset> 
     439                <?php submit_button(); ?> 
     440            </form> 
     441            <?php $frontOptions = get_option('RestrictTaxs_general_options'); ?> 
     442            <form method = "post" action="options.php"> 
     443                <?php settings_fields('RestrictTaxs_general_options'); ?> 
     444                <h4>General options</h4> 
     445                <label><input type="checkbox" name="RestrictTaxs_general_options[frontend]" value="1" <?php if(isset($frontOptions['frontend']) && $frontOptions['frontend']){echo "checked";} ?>> Front end restrictions</label> 
     446                <?php submit_button(); ?> 
     447            </form> 
     448            <h2 class="nav-tab-wrapper"> 
     449                <a href="<?php echo $roles_tab; ?>" class="nav-tab <?php echo ( $tab == 'roles' ) ? 'nav-tab-active' : ''; ?>"><?php _e( 'Roles', 'restrict-taxonomies' ); ?></a> 
     450                <a href="<?php echo $users_tab; ?>" class="nav-tab <?php echo ( $tab == 'users' ) ? 'nav-tab-active' : ''; ?>"><?php _e( 'Users', 'restrict-taxonomies' ); ?></a> 
     451            </h2> 
    477452 
    478453            <?php 
    479                 // Create a new instance of our user/roles boxes class 
    480                 $boxes = new RestrictTaxs_User_Role_Boxes(); 
    481  
    482                 if ( $tab == 'roles' ) : 
    483  
    484                     $rc_options = $this->populate_opts(); 
    485  
    486             ?> 
    487                 <form method="post" action="options.php"> 
    488                      
    489                         <?php 
    490                             settings_fields( 'RestrictTaxs_options' ); 
    491                             foreach ($options['taxonomies'] as $tax) { 
    492                                 $t = get_taxonomy( $tax ); 
    493                                 echo "<fieldset>"; 
    494                                     echo "<h3>".$t->labels->name."</h3>"; 
    495                                     // Create boxes for Roles 
    496                                     $boxes->start_box( get_option( 'RestrictTaxs_options' ), $rc_options, 'RestrictTaxs_options['.$tax.']', $tax ); 
    497                                 echo "</fieldset>"; 
    498                             } 
    499                         ?> 
    500                      
    501                     <?php submit_button(); ?> 
    502                 </form> 
    503             <?php 
    504                 elseif ( $tab == 'users' ) : 
    505  
    506                     $rc_user_options = $this->populate_user_opts(); 
    507             ?> 
    508                 <form method="post" action="options-general.php?page=restrict-taxonomies&type=users"> 
    509                     <fieldset> 
     454            // Create a new instance of our user/roles boxes class 
     455            $boxes = new RestrictTaxs_User_Role_Boxes(); 
     456 
     457            if ( $tab == 'roles' ) : 
     458 
     459                $rc_options = $this->populate_opts(); 
     460 
     461                ?> 
     462                <form method="post" action="options.php"> 
     463 
     464                    <?php 
     465                    settings_fields( 'RestrictTaxs_options' ); 
     466                    foreach ($options['taxonomies'] as $tax) { 
     467                        $t = get_taxonomy( $tax ); 
     468                        echo "<fieldset>"; 
     469                        echo "<h3>".$t->labels->name."</h3>"; 
     470                        // Create boxes for Roles 
     471                        $boxes->start_box( get_option( 'RestrictTaxs_options' ), $rc_options, 'RestrictTaxs_options['.$tax.']', $tax ); 
     472                        echo "</fieldset>"; 
     473                    } 
     474                    ?> 
     475 
     476                    <?php submit_button(); ?> 
     477                </form> 
     478                <?php 
     479            elseif ( $tab == 'users' ) : 
     480 
     481                $rc_user_options = $this->populate_user_opts(); 
     482                ?> 
     483                <form method="post" action="options-general.php?page=restrict-taxonomies&type=users"> 
     484                    <fieldset> 
    510485                        <p style="float: left; margin-top:8px;">Selecting categories for a user will <em>override</em> the categories you have chosen for that user's role.</p> 
    511486                        <p style="float:right; margin-top:8px;"> 
     
    513488                            <?php submit_button( __( 'Search Users', 'restrict-taxonomies' ), 'secondary', 'rc-search-users', false ); ?> 
    514489                        </p> 
    515                     </fieldset> 
     490                    </fieldset> 
    516491                </form> 
    517492 
    518493                <form method="post" action="options.php"> 
    519                         <?php 
    520                             settings_fields( 'RestrictTaxs_user_options' ); 
    521                             foreach ($options['taxonomies'] as $tax) { 
    522                                 $t = get_taxonomy( $tax ); 
    523                                 echo "<fieldset>"; 
    524                                     echo "<h3>".$t->labels->name."</h3>"; 
    525                                     // Create boxes for Users 
    526                                     $boxes->start_box( get_option( 'RestrictTaxs_user_options' ), $rc_user_options, 'RestrictTaxs_user_options['.$tax.']',$tax ); 
    527                                 echo "</fieldset>"; 
    528                             } 
    529                         ?> 
    530                     <?php submit_button(); ?> 
    531                 </form> 
    532                 <?php endif; ?> 
    533  
    534             <h3><?php _e('Reset to Default Settings', 'restrict-taxonomies'); ?></h3> 
     494                    <?php 
     495                    settings_fields( 'RestrictTaxs_user_options' ); 
     496                    foreach ($options['taxonomies'] as $tax) { 
     497                        $t = get_taxonomy( $tax ); 
     498                        echo "<fieldset>"; 
     499                        echo "<h3>".$t->labels->name."</h3>"; 
     500                        // Create boxes for Users 
     501                        $boxes->start_box( get_option( 'RestrictTaxs_user_options' ), $rc_user_options, 'RestrictTaxs_user_options['.$tax.']',$tax ); 
     502                        echo "</fieldset>"; 
     503                    } 
     504                    ?> 
     505                    <?php submit_button(); ?> 
     506                </form> 
     507            <?php endif; ?> 
     508 
     509            <h3><?php _e('Reset to Default Settings', 'restrict-taxonomies'); ?></h3> 
    535510            <p><?php _e('This option will reset all changes you have made to the default configuration.  <strong>You cannot undo this process</strong>.', 'restrict-taxonomies'); ?></p> 
    536511            <form method="post"> 
    537512                <?php submit_button( __( 'Reset', 'restrict-taxonomies' ), 'secondary', 'reset' ); ?> 
    538                 <input type="hidden" name="action" value="reset" /> 
    539                 <?php wp_nonce_field( 'rc-reset-nonce' ); ?> 
     513                <input type="hidden" name="action" value="reset" /> 
     514                <?php wp_nonce_field( 'rc-reset-nonce' ); ?> 
    540515            </form> 
    541516        </div> 
    542     <?php 
     517        <?php 
    543518 
    544519    } 
    545520 
    546521    private function get_current_post_type() { 
    547       global $post, $typenow, $current_screen; 
    548          
    549       //we have a post so we can just get the post type from that 
    550       if ( $post && $post->post_type ) 
    551         return $post->post_type; 
    552          
    553       //check the global $typenow - set in admin.php 
    554       elseif( $typenow ) 
    555         return $typenow; 
    556          
    557       //check the global $current_screen object - set in sceen.php 
    558       elseif( $current_screen && $current_screen->post_type ) 
    559         return $current_screen->post_type; 
    560        
    561       //check the post_type querystring 
    562       elseif( isset( $_REQUEST['post_type'] ) ) 
    563         return sanitize_key( $_REQUEST['post_type'] ); 
    564  
    565       //lastly check with the request post 
    566       elseif (isset($_REQUEST['post']) && get_post_type($_REQUEST['post'])) 
    567         return get_post_type($_REQUEST['post']); 
    568  
    569       //Dokan seller dashboard products creation 
    570       if(function_exists('dokan_get_option')) 
    571       { 
    572         $page_id = dokan_get_option( 'dashboard', 'dokan_pages' ); 
    573           if(is_page($page_id)) 
    574             return 'product'; 
    575       } 
    576        
    577          
    578       //we do not know the post type! 
    579       return 'post'; 
     522        global $post, $typenow, $current_screen, $wp_query; 
     523 
     524        //we have a post so we can just get the post type from that 
     525        if ( $post && $post->post_type ) 
     526            return $post->post_type; 
     527 
     528        //check the global $typenow - set in admin.php 
     529        elseif( $typenow ) 
     530            return $typenow; 
     531 
     532        //check the global $current_screen object - set in screen.php 
     533        elseif( $current_screen && $current_screen->post_type ) 
     534            return $current_screen->post_type; 
     535 
     536        //check the post_type querystring 
     537        elseif( isset( $_REQUEST['post_type'] ) ) 
     538            return sanitize_key( $_REQUEST['post_type'] ); 
     539 
     540        //lastly check with the request post 
     541        elseif (isset($_REQUEST['post']) && get_post_type($_REQUEST['post'])) 
     542            return get_post_type($_REQUEST['post']); 
     543 
     544        //Dokan seller dashboard products creation 
     545        if(function_exists('dokan_get_option')) 
     546        { 
     547            $page_id = dokan_get_option( 'dashboard', 'dokan_pages' ); 
     548            if(is_page($page_id)) 
     549                return 'product'; 
     550        } 
     551        //Geo dir post type 
     552        if(isset($wp_query->query_vars['gd_is_geodir_page'])) 
     553            return 'gd_place'; 
     554 
     555        if(isset($wp_query->query_vars['post_type'])) 
     556            return $wp_query->query_vars['post_type']; 
     557        //we do not know the post type! 
     558        return 'post'; 
    580559    } 
    581560 
     
    598577        { 
    599578            $settings = get_option( 'RestrictTaxs_options' ); 
    600             $settings_user = array(); 
     579            $settings_user = ''; 
    601580            $user_cap = array('non_logged'); 
    602581        }else 
     
    621600            $settings_user = get_option( 'RestrictTaxs_user_options' ); 
    622601        } 
    623          
     602 
    624603 
    625604        // Get handled taxonomies 
     
    627606        $taxs = get_object_taxonomies( $this->get_current_post_type(), 'names' ); 
    628607        $lestax = array_intersect($taxs, $options['taxonomies']); 
     608        $this->cat_list = array(); 
    629609        foreach ($lestax as $taxonomy) { 
    630610            // For users, strip out the placeholder category, which is only used to make sure the checkboxes work 
    631611            if ( is_array( $settings_user ) && array_key_exists( $taxonomy, $settings_user ) ) 
    632612                $settings_user[$taxonomy][ $user_login . '_user_cats' ] = array_values( array_diff( $settings_user[$taxonomy][ $user_login . '_user_cats' ], $defaults ) ); 
    633  
     613            if(!isset($this->cat_list[$taxonomy])) 
     614                $this->cat_list[$taxonomy] = ''; 
    634615            // Selected categories for User overwrites Roles selection 
    635616            if ( is_array( $settings_user ) && is_array($settings_user[$taxonomy]) &&!empty( $settings_user[$taxonomy][ $user_login . '_user_cats' ] ) ) { 
    636617                // Build the category list 
    637618                foreach ($settings_user[$taxonomy][ $user_login . '_user_cats' ] as $category) { 
    638                         $term_id = get_term_by( 'slug', $category, $taxonomy )->term_id; 
    639  
    640                         // If WPML is installed, return the translated ID 
    641                         if ( function_exists( 'icl_object_id' ) ) 
    642                             $term_id = icl_object_id( $term_id, $taxonomy, true ); 
    643  
    644                         $this->cat_list .= $term_id . ','; 
     619                    $term_id = get_term_by( 'slug', $category, $taxonomy )->term_id; 
     620 
     621                    // If WPML is installed, return the translated ID 
     622                    if ( function_exists( 'icl_object_id' ) ) 
     623                        $term_id = icl_object_id( $term_id, $taxonomy, true ); 
     624 
     625                    $this->cat_list[$taxonomy] .= $term_id . ','; 
    645626                } 
    646                  
    647  
    648                 $this->cat_filters( $this->cat_list ); 
     627 
     628 
     629                $this->cat_filters( $this->cat_list[$taxonomy],$taxonomy ); 
    649630            } 
    650631            else { 
     
    657638                        // Build the category list 
    658639                        foreach ($settings[$taxonomy][ $key . '_cats' ] as $category) { 
    659                                 $term_id = get_term_by( 'slug', $category, $taxonomy )->term_id; 
    660  
    661                                 // If WPML is installed, return the translated ID 
    662                                 if ( function_exists( 'icl_object_id' ) ) 
    663                                     $term_id = icl_object_id( $term_id, $taxonomy, true ); 
    664  
    665                                 $this->cat_list .= $term_id . ','; 
     640                            $term_id = get_term_by( 'slug', $category, $taxonomy )->term_id; 
     641 
     642                            // If WPML is installed, return the translated ID 
     643                            if ( function_exists( 'icl_object_id' ) ) 
     644                                $term_id = icl_object_id( $term_id, $taxonomy, true ); 
     645 
     646                            $this->cat_list[$taxonomy] .= $term_id . ','; 
    666647                        } 
    667                          
     648 
    668649                    } 
    669650 
    670                     $this->cat_filters( $this->cat_list ); 
     651                    $this->cat_filters( $this->cat_list[$taxonomy],$taxonomy ); 
    671652                } 
    672653            } 
    673654        } 
    674          
     655 
     656 
    675657    } 
    676658 
     
    681663     * @global $cat_list string The global comma-separated list of restricted categories. 
    682664     */ 
    683     public function cat_filters( $categories ){ 
     665    public function cat_filters( $categories, $t ){ 
    684666        // Clean up the category list 
    685         $this->cat_list = rtrim( $categories, ',' ); 
     667        $this->cat_list[$t] = rtrim( $categories, ',' ); 
    686668        // If there are no categories, don't do anything 
    687         if ( empty( $this->cat_list ) ) 
     669        if ( empty( $this->cat_list[$t] ) ) 
    688670            return; 
    689671 
     
    692674        // Only restrict the posts query if we're on the Posts screen 
    693675        if ( $pagenow == 'edit.php' || ( defined ( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST ) || (isset($frontOptions['frontend']) && $frontOptions['frontend'])) 
    694             add_filter( 'pre_get_posts', array( &$this, 'posts_query' ) ); 
     676            add_filter( 'pre_get_posts', array( &$this, 'posts_query' ),9999 ); 
    695677 
    696678        // Allowed pages for term exclusions 
    697679        $pages = array( 'edit.php', 'post-new.php', 'post.php' ); 
    698  
    699680        $options = get_option('RestrictTaxs_post_type_options'); 
    700681        // Make sure to exclude terms from $pages array as well as the Category screen 
     
    713694     */ 
    714695    public function posts_query( $query ){ 
    715         if ( $this->cat_list !== '' ) { 
    716             // Build an array for the categories 
    717             $cat_list_array = explode( ',', $this->cat_list ); 
     696        if ( count($this->cat_list) > 0) { 
     697 
    718698            // Make sure the posts are removed by default or if filter category is ran 
    719699            $taxs = get_object_taxonomies( $this->get_current_post_type(), 'names' ); 
    720  
    721700            $taxquery = array( 
    722                 'relation'  =>  'OR' 
    723             ); 
    724             foreach ($taxs as $taxonomy) { 
    725                 $taxquery[] = array( 
    726                     'taxonomy' => $taxonomy, 
    727                     'field' => 'id', 
    728                     'terms' => $cat_list_array , 
    729                     'operator'=> 'IN' 
    730                 ); 
    731             } 
     701                'relation'  =>  'OR' 
     702            ); 
     703            foreach ($taxs as $taxonomy) { 
     704                if(!empty($this->cat_list[$taxonomy])){ 
     705                    $larray = explode( ',', $this->cat_list[$taxonomy] ); 
     706                    $taxquery[] = array( 
     707                        'taxonomy' => $taxonomy, 
     708                        'field' => 'id', 
     709                        'terms' => $larray , 
     710                        'operator'=> 'IN' 
     711                    ); 
     712                } 
     713            } 
    732714            $query->set( 'tax_query', $taxquery ); 
    733715        } 
     
    750732            $str.= "'".$value."',"; 
    751733        } 
     734        $str_cats = ""; 
     735        foreach($this->cat_list as $tax=>$list){ 
     736            $str_cats .= $list.","; 
     737        } 
    752738        $str = rtrim($str, ","); 
    753         $excluded = " AND ( t.term_id IN ( $this->cat_list ) OR tt.taxonomy NOT IN ( $str ) )"; 
     739        $str_cats = rtrim($str_cats,","); 
     740        $excluded = " AND ( t.term_id IN ( $str_cats ) OR tt.taxonomy NOT IN ( $str ) )"; 
    754741        return $excluded; 
    755742    } 
     
    801788        // Display pagination 
    802789        echo '<div class="tablenav">'; 
    803             $this->pagination( 'top' ); 
     790        $this->pagination( 'top' ); 
    804791        echo '<br class="clear" /></div>'; 
    805792 
     
    836823            if ( isset( $_REQUEST[ $id . '-tab' ] ) && in_array( $_REQUEST[ $id . '-tab' ], array( 'all', 'popular' ) ) ) 
    837824                $current_tab = $_REQUEST[ $id . '-tab' ]; 
    838         ?> 
     825            ?> 
    839826            <div id="side-sortables" class="metabox-holder" style="float:left; padding:5px;"> 
    840827                <div class="postbox"> 
    841828                    <h3 class="hndle"><span><?php echo $value['name']; ?></span></h3> 
    842829 
    843                     <div class="inside" style="padding:0 10px;"> 
     830                    <div class="inside" style="padding:0 10px;"> 
    844831                        <div class="taxonomydiv"> 
    845                             <ul id="taxonomy-category-tabs" class="taxonomy-tabs add-menu-item-tabs"> 
    846                                 <li<?php echo ( 'all' == $current_tab ? ' class="tabs"' : '' ); ?>><a href="<?php echo add_query_arg( $id . '-tab', 'all', $roles_tab ); ?>" class="nav-tab-link">View All</a></li> 
    847                                 <li<?php echo ( 'popular' == $current_tab ? ' class="tabs"' : '' ); ?>><a href="<?php echo $users_tab; ?>" class="nav-tab-link">Most Used</a></li> 
    848                             </ul> 
     832                            <ul id="taxonomy-category-tabs" class="taxonomy-tabs add-menu-item-tabs"> 
     833                                <li<?php echo ( 'all' == $current_tab ? ' class="tabs"' : '' ); ?>><a href="<?php echo add_query_arg( $id . '-tab', 'all', $roles_tab ); ?>" class="nav-tab-link">View All</a></li> 
     834                                <li<?php echo ( 'popular' == $current_tab ? ' class="tabs"' : '' ); ?>><a href="<?php echo $users_tab; ?>" class="nav-tab-link">Most Used</a></li> 
     835                            </ul> 
    849836                            <div id="<?php echo $id; ?>-all" class="tabs-panel <?php echo ( 'all' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' ); ?>"> 
    850837                                <ul class="categorychecklist form-no-clear"> 
    851                                 <?php 
     838                                    <?php 
    852839                                    wp_list_categories( 
    853840                                        array( 
    854                                         'admin'          => $id, 
    855                                         'selected_cats'  => $selected, 
    856                                         'options_name'   => $options_name, 
    857                                         'hide_empty'     => 0, 
    858                                         'title_li'       => '', 
    859                                         'disabled'       => ( 'all' == $current_tab ? false : true ), 
    860                                         'walker'         => $walker, 
    861                                         'taxonomy'       => $taxonomy 
     841                                            'admin'          => $id, 
     842                                            'selected_cats'  => $selected, 
     843                                            'options_name'   => $options_name, 
     844                                            'hide_empty'     => 0, 
     845                                            'title_li'       => '', 
     846                                            'disabled'       => ( 'all' == $current_tab ? false : true ), 
     847                                            'walker'         => $walker, 
     848                                            'taxonomy'       => $taxonomy 
    862849                                        ) 
    863850                                    ); 
    864851 
    865852                                    $disable_checkbox = ( 'all' == $current_tab ) ? '' : 'disabled="disabled"'; 
    866                                 ?> 
    867                                 <input style="display:none;" <?php echo $disable_checkbox; ?> type="checkbox" value="RestrictCategoriesDefault" checked="checked" name="<?php echo $options_name; ?>[<?php echo $id; ?>][]"> 
     853                                    ?> 
     854                                    <input style="display:none;" <?php echo $disable_checkbox; ?> type="checkbox" value="RestrictCategoriesDefault" checked="checked" name="<?php echo $options_name; ?>[<?php echo $id; ?>][]"> 
    868855                                </ul> 
    869856                            </div> 
    870                             <div id="<?php echo $id; ?>-popular" class="tabs-panel <?php echo ( 'popular' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' ); ?>"> 
    871                                 <ul class="categorychecklist form-no-clear"> 
    872                                 <?php 
     857                            <div id="<?php echo $id; ?>-popular" class="tabs-panel <?php echo ( 'popular' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' ); ?>"> 
     858                                <ul class="categorychecklist form-no-clear"> 
     859                                    <?php 
    873860                                    wp_list_categories( 
    874861                                        array( 
    875                                         'admin'          => $id, 
    876                                         'selected_cats'  => $selected, 
    877                                         'options_name'   => $options_name, 
    878                                         'hide_empty'     => 0, 
    879                                         'title_li'       => '', 
    880                                         'orderby'        => 'count', 
    881                                         'order'          => 'DESC', 
    882                                         'disabled'       => ( 'popular' == $current_tab ? false : true ), 
    883                                         'walker'         => $walker, 
    884                                         'taxonomy'       => $taxonomy 
     862                                            'admin'          => $id, 
     863                                            'selected_cats'  => $selected, 
     864                                            'options_name'   => $options_name, 
     865                                            'hide_empty'     => 0, 
     866                                            'title_li'       => '', 
     867                                            'orderby'        => 'count', 
     868                                            'order'          => 'DESC', 
     869                                            'disabled'       => ( 'popular' == $current_tab ? false : true ), 
     870                                            'walker'         => $walker, 
     871                                            'taxonomy'       => $taxonomy 
    885872                                        ) 
    886873                                    ); 
    887874 
    888875                                    $disable_checkbox = ( 'popular' == $current_tab ) ? '' : 'disabled="disabled"'; 
    889                                 ?> 
    890                                 <input style="display:none;" <?php echo $disable_checkbox; ?> type="checkbox" value="RestrictCategoriesDefault" checked="checked" name="<?php echo $options_name; ?>[<?php echo $id; ?>][]"> 
     876                                    ?> 
     877                                    <input style="display:none;" <?php echo $disable_checkbox; ?> type="checkbox" value="RestrictCategoriesDefault" checked="checked" name="<?php echo $options_name; ?>[<?php echo $id; ?>][]"> 
    891878                                </ul> 
    892879                            </div> 
    893880                        </div> 
    894881 
    895                         <?php 
    896                             $shift_default = array_diff( $selected, array( 'RestrictCategoriesDefault' ) ); 
    897                             $selected = array_values( $shift_default ); 
     882                        <?php 
     883                        $shift_default = array_diff( $selected, array( 'RestrictCategoriesDefault' ) ); 
     884                        $selected = array_values( $shift_default ); 
    898885                        ?> 
    899886                        <p style="padding-left:10px;"> 
     
    907894                </div> 
    908895            </div> 
    909         <?php 
     896            <?php 
    910897        endforeach; 
    911898    } 
Note: See TracChangeset for help on using the changeset viewer.