WordPress.org

Plugin Directory

Changeset 622109


Ignore:
Timestamp:
11/07/12 13:04:17 (18 months ago)
Author:
markoheijnen
Message:

Update trunk with current code of the Github repository. Release of the new code in 2 days

Location:
tabify-edit-screen/trunk
Files:
4 added
1 deleted
9 edited

Legend:

Unmodified
Added
Removed
  • tabify-edit-screen/trunk/css/tabs.css

    r566681 r622109  
    1 .js .tabifybox-hide { display: none; } 
     1.tab-vertical { 
     2 
     3} 
     4.tab-vertical a { 
     5    background: #eee; 
     6    border-color: #DFDFDF; 
     7    border-width: 1px; 
     8    display: block; 
     9    margin: 0 0 10px 0; 
     10    font-size: 16px; 
     11    line-height: 20px; 
     12 
     13    -webkit-border-radius: 3px; 
     14    border-radius: 3px; 
     15} 
     16 
     17.tab-vertical .nav-tab:hover, 
     18.tab-vertical .nav-tab-active { 
     19    border-color: #ccc; 
     20} 
     21 
     22 
     23.tabifybox-hide { display: none; } 
    224 
    325#tabify-settings { 
    4     margin-right: 300px; 
     26    margin-left: 300px; 
    527} 
    628 
    729#tabifyboxes { 
    8     float: left; 
     30    float: right; 
    931    width: 100%; 
    1032} 
    1133 
    12 #tabify-support { 
    13     float: right; 
    14     margin-right: -300px; 
     34#tabify-submenu { 
     35    float: left; 
     36    margin-left: -300px; 
    1537    width: 280px; 
    1638} 
     
    3456} 
    3557 
     58#tabifyboxes #create_tab { 
     59    margin-right: 10px; 
     60} 
     61 
    3662.tabify-remove-tab { 
    3763    color: #BC0B0B; 
     
    4874.tabify_control .item-order { 
    4975    float: right; 
    50     margin-top: 5px; 
     76    margin-top: 0px; 
    5177    margin-right: 10px; 
    5278} 
  • tabify-edit-screen/trunk/inc/admin.php

    r566681 r622109  
    11<?php 
    22 
     3include 'settings-base.php'; 
     4include 'settings-posttype.php'; 
     5 
    36class Tabify_Edit_Screen_Admin { 
    4     private $metaboxes = array(); 
    57    private $tabs; 
    68    private $options; 
     
    5052        echo '<input type="hidden" id="tabify_edit_screen_nojs" name="tabify_edit_screen_nojs" value="1" />'; 
    5153 
    52         $posttypes = $this->get_posttypes(); 
    53         $this->get_tabs( $posttypes ); 
     54        $tabs = array( 
     55            'posttypes' => array( 'title' => __('Post types'), 'class' => 'Tabify_Edit_Screen_Settings_Posttypes' ) 
     56        ); 
     57        $tabs = apply_filters( 'tabify-edit-screen-settings-tabs', $tabs ); 
    5458 
    55         echo '<div id="tabify-settings"><div id="tabifyboxes">'; 
    56         $this->get_metaboxes( $posttypes ); 
     59        $this->tabs = new Tabify_Edit_Screen_Tabs( $tabs, 'horizontal', 'tab', false ); 
    5760 
    58         echo '</div>'; 
     61        if( count( $tabs ) > 1 ) { 
     62            echo $this->tabs->get_tabs_with_container(); 
     63        } 
    5964 
    60         if( apply_filters( 'tabify_support', true ) ) { 
    61             include 'support.php'; 
    62             $support = new Tabify_Support( 'tabify-edit-screen' ); 
     65        if( isset( $tabs[ $this->tabs->get_current_tab() ] ) ) { 
     66            $class_name = $tabs[ $this->tabs->get_current_tab() ]['class']; 
     67            $settings_screen = new $class_name(); 
    6368 
    64             echo '<div id="tabify-support">'; 
    65             $support->support_forum(); 
     69            echo '<div id="tabify-settings">'; 
     70                echo '<div id="tabifyboxes">'; 
     71                echo $settings_screen->get_section(); 
     72                echo '</div>'; 
     73 
     74                echo '<div id="tabify-submenu">'; 
     75                echo $settings_screen->get_sections_menu(); 
     76                echo '</div>'; 
     77            echo '</div>'; 
     78 
     79            echo '</form>'; 
    6680            echo '</div>'; 
    6781        } 
    68  
    69         echo '</form>'; 
    70         echo '</div>'; 
    7182    } 
    7283 
     
    8091        if( $_SERVER['REQUEST_METHOD'] == 'POST' && isset( $_POST['tabify'] ) && check_admin_referer( plugin_basename( __FILE__ ), 'tabify_edit_screen_nonce' ) ) { 
    8192            $options = $_POST['tabify']; 
    82             $options = $this->escape( $options ); 
     93            $options = apply_filters( 'tabify-settings-update', $options ); 
    8394 
    8495            update_option( 'tabify-edit-screen', $options ); 
    8596        } 
    86     } 
    87  
    88     /** 
    89      * Sanitize the options array to be how we expect it to be 
    90      * 
    91      * @since 0.2 
    92      * 
    93      * @param array $posttypes Raw options array 
    94      * @return array filtered options array 
    95      */ 
    96     private function escape( $posttypes ) { 
    97         $posttypes_keys = array_keys( $posttypes ); 
    98         $amount_posttypes = count( $posttypes ); 
    99         for( $i = 0; $i < $amount_posttypes; $i++ ) { 
    100             $key = $posttypes_keys[ $i ]; 
    101  
    102             if( isset( $posttypes[ $key ]['show'] ) && $posttypes[ $key ]['show'] == 1 ) { 
    103                 $posttypes[ $key ]['show'] = intval( $posttypes[ $key ]['show'] ); 
    104             } 
    105             else { 
    106                 $posttypes[ $key ]['show'] = 0; 
    107             } 
    108  
    109             $amount_tabs = count( $posttypes[ $key ]['tabs'] ); 
    110             for( $j = 0; $j < $amount_tabs; $j++ ) { 
    111                 $posttypes[ $key ]['tabs'][ $j ]['title'] = esc_attr( wp_strip_all_tags( $posttypes[ $key ]['tabs'][ $j ]['title'] ) ); 
    112  
    113                 if( !isset( $posttypes[ $key ]['tabs'][ $j ]['metaboxes'] ) || count( $posttypes[ $key ]['tabs'][ $j ]['metaboxes'] ) == 0 ) { 
    114                     if( $posttypes[ $key ]['tabs'][ $j ]['title'] == '' ) { 
    115                         unset( $posttypes[ $key ]['tabs'][ $j ] ); 
    116                     } 
    117                     continue; 
    118                 } 
    119  
    120                 $amount_metaboxes = count( $posttypes[ $key ]['tabs'][ $j ]['metaboxes'] ); 
    121                 for( $k = 0; $k < $amount_metaboxes; $k++ ) { 
    122                     // Should the metabox be moved. Only applies when browser doesn't support Javascript 
    123                     if( 
    124                         isset( $posttypes[ $key ]['tabs'][ $j ]['metaboxes_tab'][ $k ] ) && 
    125                         $posttypes[ $key ]['tabs'][ $j ]['metaboxes_tab'][ $k ] != $j && 
    126                         isset( $posttypes[ $key ]['tabs'][ intval( $posttypes[ $key ]['tabs'][ $j ]['metaboxes_tab'][ $k ] ) ] ) 
    127                     ) { 
    128                         $new_tab_key = intval( $posttypes[ $key ]['tabs'][ $j ]['metaboxes_tab'][ $k ] ); 
    129  
    130                         if( ! isset( $posttypes[ $key ]['tabs'][ $new_tab_key ]['metaboxes'] ) ) { 
    131                             $posttypes[ $key ]['tabs'][ $new_tab_key ]['metaboxes'] = array(); 
    132                             $metaboxes_in_new_tab = 0; 
    133                         } 
    134                         else {  
    135                             $metaboxes_in_new_tab = count( $posttypes[ $key ]['tabs'][ $new_tab_key ]['metaboxes'] ); 
    136                         } 
    137  
    138                         $posttypes[ $key ]['tabs'][ $new_tab_key ]['metaboxes'][ $k ] = esc_attr( wp_strip_all_tags( $posttypes[ $key ]['tabs'][ $j ]['metaboxes'][ $k ] ) ); 
    139                         unset( $posttypes[ $key ]['tabs'][ $j ]['metaboxes'][ $k ] ); 
    140                     } 
    141                     else { 
    142                         $posttypes[ $key ]['tabs'][ $j ]['metaboxes'][ $k ] = esc_attr( wp_strip_all_tags( $posttypes[ $key ]['tabs'][ $j ]['metaboxes'][ $k ] ) ); 
    143                     } 
    144                 } 
    145                 $posttypes[ $key ]['tabs'][ $j ]['metaboxes'] = array_values( $posttypes[ $key ]['tabs'][ $j ]['metaboxes'] ); 
    146             } 
    147         } 
    148  
    149         return $posttypes; 
    15097    } 
    15198 
     
    156103     */ 
    157104    private function load_plugin_support() { 
    158         if( apply_filters( 'tabify_plugin_support', true ) ) { 
     105        if( apply_filters( 'tabify_plugin_support', false ) ) { 
    159106            include 'plugin-support.php'; 
    160107            new Tabify_Edit_Screen_Plugin_Support(); 
    161108        } 
    162109    } 
    163  
    164  
    165     /** 
    166      * Gets all the post types 
    167      * 
    168      * @since 0.1 
    169      * 
    170      * @return array All post types that are showed from the backend. 
    171      */ 
    172     private function get_posttypes() { 
    173         $args = array( 
    174             'show_ui' => 'true' 
    175         ); 
    176  
    177         $posttypes_objects = get_post_types( $args, 'objects' ); 
    178         $posttypes_objects = apply_filters( 'tabify_posttypes', $posttypes_objects ); 
    179  
    180         $posttypes = array(); 
    181         foreach( $posttypes_objects as $posttype_object ) { 
    182             if( is_object( $posttype_object ) ) { 
    183                 $posttypes[ $posttype_object->name ] = $posttype_object->label; 
    184             } 
    185         } 
    186  
    187         return $posttypes; 
    188     } 
    189  
    190     /** 
    191      * Echo the tabs for the settings page 
    192      * 
    193      * @since 0.1 
    194      */ 
    195     private function get_tabs( $posttypes ) { 
    196         $this->tabs = new Tabify_Edit_Screen_Tabs( $posttypes ); 
    197         echo $this->tabs->get_tabs_with_container(); 
    198     } 
    199  
    200     /** 
    201      * Echo all the metaboxes 
    202      * 
    203      * @since 0.1 
    204      */ 
    205     private function get_metaboxes( $posttypes ) { 
    206         $metaboxes = $this->_get_metaboxes( $posttypes ); 
    207         $this->options = $options = get_option( 'tabify-edit-screen', array() ); 
    208  
    209         foreach( $posttypes as $posttype => $label ) { 
    210             $default_metaboxes = $this->tabs->get_default_metaboxes( $posttype ); 
    211  
    212             if( !isset( $options[ $posttype ] ) ) { 
    213                 $options[ $posttype ] = array ( 
    214                     'tabs' => array( 
    215                         array( 'title' => __( 'Others' ), 'metaboxes' => array() ) 
    216                     ) 
    217                 ); 
    218             } 
    219  
    220             if( $posttype == $this->tabs->get_current_tab() ) { 
    221                 echo '<div class="tabifybox tabifybox-' . $posttype . '">'; 
    222             } 
    223             else { 
    224                 echo '<div class="tabifybox tabifybox-hide tabifybox-' . $posttype . '" style="display: none;">'; 
    225             } 
    226  
    227             $checked = ''; 
    228             if( isset( $options[ $posttype ]['show'] ) && $options[ $posttype ]['show'] == 1 ) { 
    229                 $checked = ' checked="checked"'; 
    230             } 
    231  
    232             echo '<div class="tabifybox-options">'; 
    233             echo '<p><input type="checkbox" name="tabify[' . $posttype . '][show]" value="1" ' . $checked . '/> ' . __( 'Show tabs in this post type.', 'tabify-edit-screen' ) . '</p>'; 
    234             echo '</div>'; 
    235  
    236             echo '<div class="tabify_control">'; 
    237  
    238             $tab_id = 0; 
    239             foreach( $options[ $posttype ]['tabs'] as $tab ) { 
    240                 echo '<div class="menu-item-handle tabify_tab">'; 
    241  
    242                 if( $tab['title'] == '' ) { 
    243                     $tab['title'] = __( 'Choose title' ); 
    244                 } 
    245                 echo '<h2><span class="hide-if-no-js">' . $tab['title'] . '</span><input type="text" name="tabify[' . $posttype . '][tabs][' . $tab_id . '][title]" value="' . $tab['title'] . '" class="hide-if-js" /></h2>'; 
    246  
    247                 echo '<a href="#" class="tabify-remove-tab hide-if-no-js"'; 
    248                 if( isset( $tab['metaboxes'] ) && count( $tab['metaboxes'] ) > 0 ) { echo ' style="display: none;"'; } 
    249                 echo '>' . __( 'Remove', 'tabify-edit-screen' ) . '</a>'; 
    250                 echo '<div class="clear"></div>'; 
    251  
    252                 echo '<ul>'; 
    253                 if( isset( $tab['metaboxes'] ) ) { 
    254                     foreach( $tab['metaboxes'] as $metabox_id_fallback => $metabox_id ) { 
    255                         if( intval( $metabox_id_fallback ) == 0 && $metabox_id_fallback !== 0 ) { 
    256                             $metabox_id = $metabox_id_fallback; 
    257                         } 
    258  
    259                         if( empty( $metabox_id ) ) { 
    260                             continue; 
    261                         } 
    262  
    263                         $metabox_title = ''; 
    264                         if( isset( $metaboxes[ $posttype ][ $metabox_id ] ) ) { 
    265                             $metabox_title = $metaboxes[ $posttype ][ $metabox_id ]; 
    266  
    267                             $metabox_title = apply_filters( 'tabify_metaboxes_title' , $metabox_title, $metabox_id ); 
    268                             $metabox_title = apply_filters( 'tabify_metaboxes_title_' . $metabox_id , $metabox_title ); 
    269                         } 
    270  
    271                         $this->list_show_metabox( $metabox_id, $metabox_title, $tab_id, $posttype, $default_metaboxes ); 
    272  
    273                         unset( $metaboxes[ $posttype ][ $metabox_id ] ); 
    274                     } 
    275                 } 
    276  
    277                 if ( count( $options[ $posttype ]['tabs'] ) == ( $tab_id + 1 ) ) { 
    278                     foreach(  $metaboxes[ $posttype ] as $metabox_id => $metabox_title ) { 
    279                         if( empty( $metabox_id ) ) { 
    280                             continue; 
    281                         } 
    282  
    283                         $metabox_title = apply_filters( 'tabify_metaboxes_title' , $metabox_title, $metabox_id ); 
    284                         $metabox_title = apply_filters( 'tabify_metaboxes_title_' . $metabox_id , $metabox_title ); 
    285  
    286                         $this->list_show_metabox( $metabox_id, $metabox_title, $tab_id, $posttype, $default_metaboxes ); 
    287                     } 
    288                 } 
    289  
    290                 echo '</ul>'; 
    291                 echo '</div>'; 
    292  
    293                 $tab_id++; 
    294             } 
    295  
    296  
    297             echo '</div>'; 
    298  
    299             echo '</div>'; 
    300         } 
    301  
    302         echo '<p class="submit">'; 
    303         echo '<input type="button" id="create_tab" class="button-secondary" value="' . __( 'Create a new tab', 'tabify_edit_screen' ) . '" />'; 
    304         submit_button( '', 'primary', 'submit', false ); 
    305         echo '</p>'; 
    306     } 
    307  
    308     /** 
    309      * Show the metabox for the sortable list 
    310      * 
    311      * @since 0.1 
    312      */ 
    313     private function list_show_metabox( $metabox_id, $metabox_title, $tab_id, $posttype, $default_metaboxes ) { 
    314         if( in_array( $metabox_id, $default_metaboxes ) || empty( $metabox_title ) ) { 
    315             echo '<li class="tabifybox-hide">'; 
    316         } 
    317         else { 
    318             echo '<li class="menu-item-handle">' . $metabox_title; 
    319         } 
    320  
    321         echo '<input type="hidden" name="tabify[' . $posttype . '][tabs][' . $tab_id . '][metaboxes][]" value="' . $metabox_id . '" />'; 
    322  
    323         echo '<span class="item-order hide-if-js">'; 
    324         echo '<select name="tabify[' . $posttype . '][tabs][' . $tab_id . '][metaboxes_tab][]">'; 
    325         $amount_tabs = count( $this->options[ $posttype ]['tabs'] ); 
    326         for( $i = 0; $i < $amount_tabs; $i++ ) { 
    327             if( $i == $tab_id ) { 
    328                 echo '<option value="' . $i . '" selected="selected">' . $this->options[ $posttype ]['tabs'][ $i ]['title'] . '</option>'; 
    329             } 
    330             else { 
    331                 echo '<option value="' . $i . '">' . $this->options[ $posttype ]['tabs'][ $i ]['title'] . '</option>'; 
    332             } 
    333         } 
    334         echo '</select>'; 
    335         echo '</span>'; 
    336         echo '</li>'; 
    337     } 
    338  
    339     /** 
    340      * Gets all the metaboxes that are registered 
    341      * 
    342      * @since 0.1 
    343      */ 
    344     private function _get_metaboxes( $posttypes ) { 
    345         if( ! $this->metaboxes ) { 
    346             global $wp_meta_boxes; 
    347  
    348             foreach( $posttypes as $posttype => $label ) { 
    349                 $this->metaboxes[ $posttype ] = array(); 
    350  
    351                 if ( post_type_supports( $posttype, 'title' ) ) { 
    352                     $this->metaboxes[ $posttype ][ 'titlediv'] = __( 'Title' ); 
    353                 } 
    354  
    355                 if ( post_type_supports( $posttype, 'editor' ) ) { 
    356                     $this->metaboxes[ $posttype ][ 'postdivrich'] = __( 'Editor' ); 
    357                 } 
    358  
    359                 do_action( 'tabify_add_meta_boxes', $posttype ); 
    360  
    361                 $this->load_default_metaboxes( $posttype ); 
    362                 do_action( 'add_meta_boxes', $posttype, null ); 
    363                 do_action( 'add_meta_boxes_' . $posttype, null ); 
    364             } 
    365  
    366             foreach( $wp_meta_boxes as $posttype => $context ) { 
    367                 foreach( $context as $priorities ) { 
    368                     foreach( $priorities as $priority => $metaboxes ) { 
    369                         foreach( $metaboxes as $metabox ) { 
    370                             $this->metaboxes[ $posttype ][ $metabox['id'] ] = $metabox['title']; 
    371                         } 
    372                     } 
    373                 } 
    374             } 
    375         } 
    376  
    377         return $this->metaboxes; 
    378     } 
    379  
    380     /** 
    381      * Gets all the default WordPress metaboxes 
    382      * Little bit hackish but it works. Hopefully one day there will be a method for this in core. 
    383      * 
    384      * @since 0.1 
    385      */ 
    386     private function load_default_metaboxes( $post_type ) { 
    387         add_meta_box( 'submitdiv', __('Publish'), 'post_submit_meta_box', $post_type, 'side', 'core' ); 
    388  
    389         if ( current_theme_supports( 'post-formats' ) && post_type_supports( $post_type, 'post-formats' ) ) 
    390             add_meta_box( 'formatdiv', _x( 'Format', 'post format' ), 'post_format_meta_box', $post_type, 'side', 'core' ); 
    391  
    392         // all taxonomies 
    393         foreach ( get_object_taxonomies($post_type) as $tax_name ) { 
    394             $taxonomy = get_taxonomy($tax_name); 
    395             if ( ! $taxonomy->show_ui ) 
    396                 continue; 
    397  
    398             $label = $taxonomy->labels->name; 
    399  
    400             if ( !is_taxonomy_hierarchical($tax_name) ) 
    401                 add_meta_box('tagsdiv-' . $tax_name, $label, 'post_tags_meta_box', $post_type, 'side', 'core', array( 'taxonomy' => $tax_name )); 
    402             else 
    403                 add_meta_box($tax_name . 'div', $label, 'post_categories_meta_box', $post_type, 'side', 'core', array( 'taxonomy' => $tax_name )); 
    404         } 
    405  
    406         if ( post_type_supports($post_type, 'page-attributes') ) 
    407             add_meta_box('pageparentdiv', 'page' == $post_type ? __('Page Attributes') : __('Attributes'), 'page_attributes_meta_box', $post_type, 'side', 'core'); 
    408  
    409         if ( current_theme_supports( 'post-thumbnails', $post_type ) && post_type_supports( $post_type, 'thumbnail' ) ) 
    410                 add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', $post_type, 'side', 'low'); 
    411  
    412         if ( post_type_supports($post_type, 'excerpt') ) 
    413             add_meta_box('postexcerpt', __('Excerpt'), 'post_excerpt_meta_box', $post_type, 'normal', 'core'); 
    414  
    415         if ( post_type_supports($post_type, 'trackbacks') ) 
    416             add_meta_box('trackbacksdiv', __('Send Trackbacks'), 'post_trackback_meta_box', $post_type, 'normal', 'core'); 
    417  
    418         if ( post_type_supports($post_type, 'custom-fields') ) 
    419             add_meta_box('postcustom', __('Custom Fields'), 'post_custom_meta_box', $post_type, 'normal', 'core'); 
    420  
    421         do_action('dbx_post_advanced'); 
    422         if ( post_type_supports($post_type, 'comments') ) 
    423             add_meta_box('commentstatusdiv', __('Discussion'), 'post_comment_status_meta_box', $post_type, 'normal', 'core'); 
    424  
    425         if ( post_type_supports($post_type, 'comments') ) 
    426             add_meta_box('commentsdiv', __('Comments'), 'post_comment_meta_box', $post_type, 'normal', 'core'); 
    427  
    428         add_meta_box('slugdiv', __('Slug'), 'post_slug_meta_box', $post_type, 'normal', 'core'); 
    429  
    430         if ( post_type_supports($post_type, 'author') ) { 
    431             if ( is_super_admin() || current_user_can( $post_type_object->cap->edit_others_posts ) ) 
    432                 add_meta_box('authordiv', __('Author'), 'post_author_meta_box', $post_type, 'normal', 'core'); 
    433         } 
    434  
    435         if ( post_type_supports($post_type, 'revisions') ) 
    436             add_meta_box('revisionsdiv', __('Revisions'), 'post_revisions_meta_box', $post_type, 'normal', 'core'); 
    437     } 
    438110} 
  • tabify-edit-screen/trunk/inc/plugin-support.php

    r566801 r622109  
    44    function __construct() { 
    55        add_action( 'tabify_add_meta_boxes', array( &$this, 'types' ) ); 
    6         add_action( 'tabify_add_meta_boxes', array( &$this, 'acf' ) ); 
     6        add_action( 'tabify_add_meta_boxes', array( &$this, 'wpseo' ) ); 
     7        add_action( 'tabify_add_meta_boxes', array( &$this, 'members' ) ); 
    78    } 
    89 
     
    2324 
    2425    /** 
    25      * Load widgets created by ACF 
     26     * Load widgets created by WordPress SEO 
    2627     * 
    2728     * @param string $posttype The posttype the metaboxes should be loaded from 
     
    2930     * @since 0.4 
    3031     */ 
    31     function acf() { 
    32         global $acf; 
     32    function wpseo( $posttype ) { 
     33        if ( defined( 'WPSEO_PATH' ) && is_file( WPSEO_PATH . 'admin/class-metabox.php' ) ) 
     34            include_once WPSEO_PATH . 'admin/class-metabox.php'; 
     35    } 
     36     
    3337 
    34         if ( is_object( $acf ) ) { 
    35             $acfs_objects = $acf->get_field_groups(); 
    36  
    37             if( $acfs_objects ) 
    38             { 
    39                 foreach( $acfs_objects as $acf_object ) 
    40                 { 
    41                     $metabox_ids = $acf->get_input_metabox_ids( array(), false ); 
    42  
    43                     // hide / show 
    44                     $show = in_array( $acf_object['id'], $metabox_ids ) ? "true" : "false"; 
    45  
    46                     // add meta box 
    47                     add_meta_box( 
    48                         'acf_' . $acf_object['id'],  
    49                         $acf_object['title'],  
    50                         array( $acf_object, 'meta_box_input' ),  
    51                         $posttype,  
    52                         $acf_object['options']['position'],  
    53                         'high',  
    54                         array( 'fields' => $acf_object['fields'], 'options' => $acf_object['options'], 'show' => $show ) 
    55                     ); 
    56                 } 
    57             } 
    58         } 
     38    /** 
     39     * Load widgets created by Members 
     40     * 
     41     * @param string $posttype The posttype the metaboxes should be loaded from 
     42     *  
     43     * @since 0.4 
     44     */ 
     45    function members( $posttype ) { 
     46        if ( function_exists( 'members_admin_setup' ) && !did_action( 'load-post.php' ) ) 
     47            do_action( 'load-post.php' ); 
    5948    } 
    6049} 
  • tabify-edit-screen/trunk/inc/tabs.php

    r566803 r622109  
    33class Tabify_Edit_Screen_Tabs { 
    44    private $base_url = ''; 
     5    private $get_arg = 'tab'; 
    56 
    67    private $active = ''; 
    7     private $items = array(); 
     8 
     9    private $items  = array(); 
     10    private $type; 
     11    private $javascript_support; 
    812 
    913    /** 
     
    1418     * @since 0.1 
    1519     */ 
    16     function __construct( $items ) { 
     20    function __construct( $items, $type = 'horizontal', $get_arg = 'tab', $javascript_support = true ) { 
    1721        if( is_array( $items ) ) { 
    18             do_action( 'tabify_tabs', $this ); 
    19             $this->items = apply_filters( 'tabify_tabs', $items, $this ); 
     22            do_action( 'tabify_tabs', $this, $type ); 
    2023 
    21             if( isset( $_REQUEST['tab'] ) ) { 
    22                 $this->active = esc_attr( $_REQUEST['tab'] ); 
     24            $this->items              = apply_filters( 'tabify_tabs', $items, $this ); 
     25            $this->type               = $type; 
     26            $this->get_arg            = $get_arg; 
     27            $this->javascript_support = $javascript_support; 
     28 
     29            if( isset( $_REQUEST[ $this->get_arg ] ) ) { 
     30                $this->active = esc_attr( $_REQUEST[ $this->get_arg ] ); 
    2331            } 
    2432 
    25             $this->base_url = remove_query_arg( 'tab', $_SERVER["REQUEST_URI"] ); 
     33            $this->base_url = remove_query_arg( $this->get_arg, $_SERVER["REQUEST_URI"] ); 
    2634 
    27             if( empty( $this->active ) || !isset( $items[ $this->active ] ) ) { 
     35            if( empty( $this->active ) || ! isset( $items[ $this->active ] ) ) { 
    2836                $this->active = key( $items ); 
    2937            } 
     
    5462     */ 
    5563    public function get_tabs_with_container( $show_current_tab_input = true ) { 
    56         $return  = '<h2 class="nav-tab-wrapper" style="padding-left: 20px;">'; 
     64        $class = 'tabify-tabs tab-' .  $this->type; 
     65 
     66        if( ! $this->javascript_support ) { 
     67            $class .= ' js-disabled'; 
     68        } 
     69 
     70        if( 'horizontal' == $this->type ) { 
     71            $class .= ' nav-tab-wrapper'; 
     72        } 
     73 
     74 
     75        $return  = '<h2 class="' . $class . '">'; 
    5776 
    5877        if( $show_current_tab_input == true ) { 
     
    81100     */ 
    82101    public function get_tabs_current_tab_input() { 
    83         return '<input type="hidden" id="current_tab" name="tab" value="' . $this->active. '" />'; 
     102        return '<input type="hidden" class="current_tab" name="' . $this->get_arg . '" value="' . $this->active. '" />'; 
    84103    } 
    85104 
     
    100119 
    101120            if( $this->active == $key ) { 
    102                 $return .= '<a id="tab-' . $key . '" href="' . $this->base_url . '&tab=' . $key . '" class="tabify-tab nav-tab nav-tab-active">' . $title . '</a>'; 
     121                $return .= '<a id="tab-' . $key . '" href="' . $this->base_url . '&' . $this->get_arg . '=' . $key . '" class="tabify-tab nav-tab nav-tab-active">' . $title . '</a>'; 
    103122            } 
    104123            else { 
    105                 $return .= '<a id="tab-' . $key . '" href="' . $this->base_url . '&tab=' . $key . '" class="tabify-tab nav-tab">' . $title . '</a>'; 
     124                $return .= '<a id="tab-' . $key . '" href="' . $this->base_url . '&' . $this->get_arg . '=' . $key . '" class="tabify-tab nav-tab">' . $title . '</a>'; 
    106125            } 
    107126        } 
     
    109128        return $return; 
    110129    } 
    111  
    112     /** 
    113      * Get all the metaboxes that should always be showed 
    114      * 
    115      * @return array All the metaboxes id's in an array 
    116      * 
    117      * @since 0.1 
    118      */ 
    119     public function get_default_metaboxes( $post_type = '' ) { 
    120         $defaults = array( 'titlediv', 'submitdiv' ); //, 'postdivrich' 
    121         $defaults = apply_filters( 'tabify_default_metaboxes', $defaults, $post_type ); 
    122         return apply_filters( 'tabify_default_metaboxes_' . $post_type , $defaults ); 
    123     } 
    124130} 
  • tabify-edit-screen/trunk/js/admin.js

    r566533 r622109  
    2626                var sender_children = $( ui.sender ).children().length; 
    2727                if( sender_children == 0 ) { 
    28                     ui.sender.closest( 'div' ).find( '.tabify-remove-tab ' ).show(); 
     28                    ui.sender.closest( 'div' ).find( '.tabify-remove-tab' ).show(); 
    2929                } 
    3030            } 
     
    3434    $( "#create_tab" ).on("click", function() { 
    3535        var title = tabify_l10.choose_title; 
    36         var posttype = $( '.nav-tab-active' ).attr( 'id' ); 
     36        var posttype = $( '#tabify-submenu .nav-tab-active' ).attr( 'id' ); 
    3737        posttype = posttype.replace( 'tab-', ""); 
    3838 
  • tabify-edit-screen/trunk/js/tabs.js

    r528118 r622109  
    11jQuery(function($) { 
    2     tabify_show_tab( $( '#current_tab' ).val() ); 
     2    //tabify_show_tab( $( '#current_tab' ).val() ); 
     3    $('.tabify-tabs').not('.js-disabled').tabify_tabs({}); 
     4}); 
    35 
    4     $( ".tabify-tab" ).on("click", function( evt ) { 
    5         evt.preventDefault(); 
    6         $( ".tabify-tab" ).removeClass( 'nav-tab-active' ); 
    7         $( this ).addClass( 'nav-tab-active' ); 
    86 
    9         var id = evt.target.id.replace( 'tab-', ""); 
    10         tabify_show_tab( id ); 
    11     }); 
     7(function($){ 
     8    $.fn.extend({  
     9        //This is where you write your plugin's name 
     10        tabify_tabs: function() { 
     11            //Iterate over the current set of matched elements 
     12            return this.each(function() { 
     13                var obj = $(this); 
    1214 
    13     function tabify_show_tab( id ) { 
    14         if( id && id.length != 0 ) { 
    15             $( ".tabifybox" ).hide(); 
    16             $( ".tabifybox-" + id ).show(); 
    17             $( "#current_tab" ).val( id ); 
     15                $( ".tabify-tab", obj ).on("click", function( evt ) { 
     16                    evt.preventDefault(); 
     17 
     18                    $( ".tabify-tab", obj ).removeClass( 'nav-tab-active' ); 
     19                    $( this, obj ).addClass( 'nav-tab-active' ); 
     20 
     21                    var id = evt.target.id.replace( 'tab-', ""); 
     22                    tabify_show_tab( id, $( this ).closest('.tabify-tabs') ); 
     23                }); 
     24 
     25                function tabify_show_tab( id, holder ) { 
     26                    if( id && id.length != 0 ) { 
     27                        $( ".tabifybox" ).hide(); 
     28                        $( ".tabifybox-" + id ).show(); 
     29                        $( ".current_tab", holder ).val( id ); 
     30                    } 
     31                } 
     32            }); 
    1833        } 
    19     } 
    20 }); 
     34    });  
     35})(jQuery); 
  • tabify-edit-screen/trunk/languages/tabify-edit-screen.pot

    r528607 r622109  
    55"Project-Id-Version: Tabify edit screen 0.4-dev\n" 
    66"Report-Msgid-Bugs-To: http://wordpress.org/tag/tabify-edit-screen\n" 
    7 "POT-Creation-Date: 2012-04-07 16:10:54+00:00\n" 
     7"POT-Creation-Date: 2012-11-05 22:44:13+00:00\n" 
    88"MIME-Version: 1.0\n" 
    99"Content-Type: text/plain; charset=UTF-8\n" 
     
    1313"Language-Team: LANGUAGE <LL@li.org>\n" 
    1414 
    15 #. #-#-#-#-#  plugin.pot (Tabify edit screen 0.4-dev)  #-#-#-#-# 
     15#. #-#-#-#-#  tabify-edit-screen.pot (Tabify edit screen 0.4-dev)  #-#-#-#-# 
    1616#. Plugin Name of the plugin/theme 
    17 #: inc/admin.php:14 
     17#: inc/admin.php:13 
    1818msgid "Tabify edit screen" 
    1919msgstr "" 
    2020 
    21 #: inc/admin.php:24 
     21#: inc/admin.php:23 
    2222msgid "You do not have sufficient permissions to manage options for this site." 
    2323msgstr "" 
    2424 
    25 #: inc/admin.php:32 inc/admin.php:220 
     25#: inc/admin.php:33 inc/settings-posttype.php:90 
    2626msgid "Remove" 
    2727msgstr "" 
    2828 
    29 #: inc/admin.php:32 inc/admin.php:214 
     29#: inc/admin.php:33 inc/settings-posttype.php:84 
    3030msgid "Choose title" 
    3131msgstr "" 
    3232 
    33 #: inc/admin.php:186 
     33#: inc/admin.php:169 
     34msgid "Post types" 
     35msgstr "" 
     36 
     37#: inc/settings-posttype.php:56 
    3438msgid "Others" 
    3539msgstr "" 
    3640 
    37 #: inc/admin.php:204 
     41#: inc/settings-posttype.php:74 
    3842msgid "Show tabs in this post type." 
    3943msgstr "" 
    4044 
    41 #: inc/admin.php:274 
     45#: inc/settings-posttype.php:144 
    4246msgid "Create a new tab" 
    4347msgstr "" 
    4448 
    45 #: inc/admin.php:323 
     49#: inc/settings-posttype.php:164 
    4650msgid "Title" 
    4751msgstr "" 
    4852 
    49 #: inc/admin.php:327 
     53#: inc/settings-posttype.php:168 
    5054msgid "Editor" 
    5155msgstr "" 
    5256 
    53 #: inc/admin.php:358 
     57#: inc/settings-posttype.php:199 
    5458msgid "Publish" 
    5559msgstr "" 
    5660 
    57 #: inc/admin.php:361 
     61#: inc/settings-posttype.php:202 
    5862msgctxt "post format" 
    5963msgid "Format" 
    6064msgstr "" 
    6165 
    62 #: inc/admin.php:378 
     66#: inc/settings-posttype.php:219 
    6367msgid "Page Attributes" 
    6468msgstr "" 
    6569 
    66 #: inc/admin.php:378 
     70#: inc/settings-posttype.php:219 
    6771msgid "Attributes" 
    6872msgstr "" 
    6973 
    70 #: inc/admin.php:381 
     74#: inc/settings-posttype.php:222 
    7175msgid "Featured Image" 
    7276msgstr "" 
    7377 
    74 #: inc/admin.php:384 
     78#: inc/settings-posttype.php:225 
    7579msgid "Excerpt" 
    7680msgstr "" 
    7781 
    78 #: inc/admin.php:387 
     82#: inc/settings-posttype.php:228 
    7983msgid "Send Trackbacks" 
    8084msgstr "" 
    8185 
    82 #: inc/admin.php:390 
     86#: inc/settings-posttype.php:231 
    8387msgid "Custom Fields" 
    8488msgstr "" 
    8589 
    86 #: inc/admin.php:394 
     90#: inc/settings-posttype.php:235 
    8791msgid "Discussion" 
    8892msgstr "" 
    8993 
    90 #: inc/admin.php:397 
     94#: inc/settings-posttype.php:238 
    9195msgid "Comments" 
    9296msgstr "" 
    9397 
    94 #: inc/admin.php:399 
     98#: inc/settings-posttype.php:240 
    9599msgid "Slug" 
    96100msgstr "" 
    97101 
    98 #: inc/admin.php:403 
     102#: inc/settings-posttype.php:243 
    99103msgid "Author" 
    100104msgstr "" 
    101105 
    102 #: inc/admin.php:407 
     106#: inc/settings-posttype.php:246 
    103107msgid "Revisions" 
    104108msgstr "" 
  • tabify-edit-screen/trunk/readme.txt

    r566520 r622109  
    3939== Changelog == 
    4040 
    41 = 0.4 ( 2012-7-7 ) = 
    42 * Better UI admin 
    43 * Know when a metabox is showed from the screen options 
    44 * Start with translating the plugin 
    45 * Improve deleting a tab from the setting screen 
     41= Current progress = 
     42* Improving the UI more for 0.4 
     43* Know when a metabox is showed from the screen options (0.5) 
     44* Improved deleting a tab from the setting screen (0.5) 
     45* Same sorting from the settings screen as in the post edit screen (0.6) 
     46 
     47= 0.4 ( 2012-11-9 ) = 
     48* Complete fresh new UI for the settings screen 
     49* Fix possible bug for not showing author metabox in the settings screen 
     50* Fix notice on edit screen when no items where inside a tab 
     51* Fix issue that not all post types are showing 
     52* Ability to remove plugin support and isn't on by default anymore. Can be enabled with the filter "tabify_plugin_support" 
     53* Added plugin support for Members and WordPress SEO. (Thanks sc0ttkclark for his help ) 
     54* Added Dutch translation 
     55 
     56* Ability to modify tabs through the filter tabify_tabs 
     57* Ability to add more tab support like post types with the filter 'tabify-edit-screen-settings-tabs' 
     58* Ability to add more options with the action 'tabify-settings-posttype' and filter 'tabify-settings-update' 
    4659 
    4760= 0.3 (2012-4-7) = 
  • tabify-edit-screen/trunk/tabify-edit-screen.php

    r566608 r622109  
    55Description: Enables tabs in the edit screen and manage them from the back-end 
    66Author: Marko Heijnen 
     7Text Domain: tabify-edit-screen 
    78Version: 0.4-dev 
    89Author URI: http://markoheijnen.com 
    910*/ 
    10  
    11 include 'inc/admin.php'; 
    12 include 'inc/tabs.php'; 
    1311 
    1412class Tabify_Edit_Screen { 
     
    1715 
    1816    function __construct() { 
    19         $admin = new Tabify_Edit_Screen_Admin(); 
     17        if( is_admin() ) { 
     18            include 'inc/admin.php'; 
     19            include 'inc/tabs.php'; 
    2020 
    21         add_action( 'admin_menu', array( &$admin, 'admin_menu' ) ); 
     21            $admin = new Tabify_Edit_Screen_Admin(); 
    2222 
    23         add_filter( 'redirect_post_location', array( &$this, 'redirect_add_current_tab' ), 10, 2 ); 
     23            add_action( 'admin_menu', array( &$admin, 'admin_menu' ) ); 
    2424 
    25         add_action( 'admin_head', array( &$this, 'show_tabs' ), 10 ); 
     25            add_filter( 'redirect_post_location', array( &$this, 'redirect_add_current_tab' ), 10, 2 ); 
     26 
     27            add_action( 'admin_head', array( &$this, 'show_tabs' ), 10 ); 
     28 
     29            add_action( 'plugins_loaded', array( &$this, 'load_translation' ) ); 
     30        } 
     31    } 
     32 
     33    function load_translation() { 
     34        load_plugin_textdomain( 'tabify-edit-screen', false, basename( dirname( __FILE__ ) ) . '/languages' ); 
    2635    } 
    2736 
     
    5867            $options   = get_option( 'tabify-edit-screen', array() ); 
    5968 
     69            if( isset( $options['posttypes'] ) ) 
     70                $options = $options['posttypes']; 
     71 
    6072            if( isset( $options[ $post_type ], $options[ $post_type ]['show'] ) && $options[ $post_type ]['show'] == 1 ) { 
    6173                $this->editscreen_tabs = new Tabify_Edit_Screen_Tabs( $options[ $post_type ]['tabs'] ); 
    62                 $default_metaboxes = $this->editscreen_tabs->get_default_metaboxes( $post_type ); 
     74                $default_metaboxes = Tabify_Edit_Screen_Settings_Posttypes::get_default_metaboxes( $post_type ); 
    6375 
    6476                add_action( 'admin_print_footer_scripts', array( &$this, 'generate_javascript' ), 9 ); 
     
    106118        $options = get_option( 'tabify-edit-screen', array() ); 
    107119 
     120        if( isset( $options['posttypes'] ) ) 
     121            $options = $options['posttypes']; 
     122 
    108123        if( isset( $options[ $post_type ], $options[ $post_type ]['show'] ) && $options[ $post_type ]['show'] == 1 ) { 
    109124            $tabs = $this->editscreen_tabs->get_tabs_with_container( false ); 
Note: See TracChangeset for help on using the changeset viewer.