WordPress.org

Plugin Directory

Changeset 605837


Ignore:
Timestamp:
09/29/12 15:52:29 (19 months ago)
Author:
bainternet
Message:

version 0.4
added multiple categories support

Location:
author-category
Files:
5 added
2 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • author-category/trunk/author-category.php

    r546123 r605837  
    44Plugin URI: http://en.bainternet.info 
    55Description: simple plugin limit authors to post just in one category. 
    6 Version: 0.3 
     6Version: 0.4 
    77Author: Bainternet 
    88Author URI: http://en.bainternet.info 
     
    7575        public function user_default_category_option($false){ 
    7676            $cat = $this->get_user_cat(); 
    77             if (!empty($cat) && $cat > 0){ 
     77            if (!empty($cat) && count($cat) > 0){ 
    7878                return $cat; 
    7979            } 
     
    111111            get_currentuserinfo(); 
    112112            $cat = $this->get_user_cat($current_user->ID); 
    113             if (!empty($cat) && $cat > 0){ 
     113            if (!empty($cat) && count($cat) > 0){ 
    114114                echo '<style>.inline-edit-categories{display: none !important;}</style>'; 
    115115            } 
     
    128128            //get author categories 
    129129            $cat = $this->get_user_cat($current_user->ID); 
    130             if (!empty($cat) && $cat > 0){ 
     130            if (!empty($cat) && count($cat) > 0){ 
    131131                //remove default metabox 
    132132                remove_meta_box('categorydiv', 'post', 'side'); 
     133                //add user specific categories 
    133134                add_meta_box(  
    134135                     'author_cat' 
     
    152153            global $current_user; 
    153154            get_currentuserinfo(); 
    154             $cat = get_user_meta($current_user->ID,'_author_cat',true); 
     155            $cats = get_user_meta($current_user->ID,'_author_cat',true); 
     156            $cats = (array)$cats; 
    155157            // Use nonce for verification 
    156158            wp_nonce_field( plugin_basename( __FILE__ ), 'author_cat_noncename' ); 
    157             if (!empty($cat) && $cat > 0){ 
    158                 $c = get_category($cat); 
    159                 echo __('this will be posted in: <strong>','author_cat') . $c->name .__('</strong> Category'); 
    160                 echo '<input name="post_category[]" type="hidden" value="'.$c->term_id.'">'; 
     159            if (!empty($cats) && count($cats) > 0){ 
     160                if (count($cats) == 1){ 
     161                    $c = get_category($cats[0]); 
     162                    echo __('this will be posted in: <strong>','author_cat') . $c->name .__('</strong> Category'); 
     163                    echo '<input name="post_category[]" type="hidden" value="'.$c->term_id.'">'; 
     164                }else{ 
     165                    echo '<span>'.__('Make Sure you select only the categories you want: <strong>','author_cat').'</span><br />'; 
     166                    foreach($cats as $cat ){ 
     167                        $c = get_category($cat); 
     168                        echo '<input name="post_category[]" type="checkbox" checked="checked" value="'.$c->term_id.'"> '.$c->name .'<br />'; 
     169                    } 
     170                } 
    161171            } 
    162172        } 
     
    175185            get_currentuserinfo(); 
    176186            if ($current_user->ID == $user->ID) { return false; } 
     187            $select = wp_dropdown_categories(array( 
     188                            'show_count' => 0, 
     189                            'hierarchical' => 1, 
     190                            'hide_empty' => 0, 
     191                            'echo' => 0, 
     192                            'name' => 'author_cat[]')); 
     193            $saved = get_user_meta($user->ID, '_author_cat', true ); 
     194            foreach((array)$saved as $c){ 
     195                $select = str_replace('value="'.$c.'"','value="'.$c.'" selected="selected"',$select); 
     196            } 
     197            $select = str_replace('<select','<select multiple="multiple"',$select); 
    177198            echo '<h3>'.__('Author Category', 'author_cat').'</h3> 
    178199            <table class="form-table"> 
     
    180201                    <th><label for="author_cat">'.__('Category').'</label></th> 
    181202                    <td> 
    182                         '.wp_dropdown_categories(array( 
    183                             'show_count' => 0, 
    184                             'hierarchical' => 1, 
    185                             'hide_empty' => 0, 
    186                             'echo' => 0, 
    187                             'name' => 'author_cat', 
    188                             'selected' => get_user_meta($user->ID, '_author_cat', true ))).' 
     203                        '.$select.' 
    189204                        <br /> 
    190                     <span class="description">'.__('select a category to limit an author to post just in that category.','author_cat').'</span> 
     205                    <span class="description">'.__('select a category to limit an author to post just in that category (use Crtl to select more then one).','author_cat').'</span> 
     206                    </td> 
     207                </tr> 
     208                <tr> 
     209                    <th><label for="author_cat_clear">'.__('Clear Category').'</label></th> 
     210                    <td> 
     211                        <input type="checkbox" name="author_cat_clear" value="1" /> 
     212                        <br /> 
     213                    <span class="description">'.__('Check if you want to clear the limitation for this user.','author_cat').'</span> 
    191214                    </td> 
    192215                </tr> 
     
    206229            if ( !current_user_can( 'manage_options') ) { return false; } 
    207230 
    208             update_user_meta( $user_id, '_author_cat', intval($_POST['author_cat']) ); 
     231            update_user_meta( $user_id, '_author_cat', $_POST['author_cat'] ); 
     232                                                                                 
     233            if (isset($_POST['author_cat_clear']) && $_POST['author_cat_clear'] == 1) 
     234                delete_user_meta( $user_id, '_author_cat' ); 
    209235        } 
    210236 
     
    227253            } 
    228254            $cat = get_user_meta($user_id,'_author_cat',true); 
    229             if (empty($cat)) 
     255            if (empty($cat) || count($cat) <= 0 || !is_array($cat)) 
    230256                return 0; 
    231257            else 
    232                 return $cat; 
     258                return $cat[0]; 
    233259 
    234260        } 
     
    256282            return $links; 
    257283        } 
    258  
    259284    }//end class 
    260 } 
     285}//end if 
    261286//initiate the class on admin pages only 
    262287if (is_admin()){ 
  • author-category/trunk/readme.txt

    r546123 r605837  
    44Tags: author category, limit author to category, author posts to category 
    55Requires at least: 3.0 
    6 Tested up to: 3.3.2 
    7 Stable tag: 0.3 
     6Tested up to: 3.4.2 
     7Stable tag: 0.4 
    88 
    99simple lightweight plugin limit authors to post just in one category. 
     
    4949 
    5050== Changelog == 
     510.4 
     52Added support for multiple categories per user. 
     53added option to remove user selected category. 
     54 
    51550.3  
    5256added plugin links, 
Note: See TracChangeset for help on using the changeset viewer.