WordPress.org

Plugin Directory

Changeset 516339


Ignore:
Timestamp:
03/08/12 17:00:09 (2 years ago)
Author:
GregLone
Message:

SF Archiver 1.1 : menus meta box + French translation + contextual help

Location:
sf-archiver/trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • sf-archiver/trunk/admin/w3p-acpt-admin.inc.php

    r509590 r516339  
    44add_action( 'admin_init', 'w3p_acpt_register_settings' ); 
    55function w3p_acpt_register_settings() { 
    6     register_setting( 'w3p-acpt-settings', '_w3p_acpt', 'w3p_acpt_satanize' ); 
     6    register_setting( 'w3p-acpt-settings', '_w3p_acpt', 'w3p_acpt_sanitize' ); 
    77} 
    88 
     
    132132 
    133133 
    134 /* Satanize options */ 
    135 function w3p_acpt_satanize($options) { 
     134/* Sanitize options */ 
     135function w3p_acpt_sanitize($options) { 
    136136    if ( isset($options['delete_options']) && (int) $options['delete_options'] == 1 ) 
    137137        return; 
     
    209209    $txt4 = '<p>'.__('You can even specify a new slug for the archive page or the single pages.', W3P_ACPT_DOMAIN).'</p>'. 
    210210            '<p>'.__("Hint: you can use sub-slugs like &#8217;sub-slug/slug&#8217;, &#8217;collections/summer/tee-shirts&#8217;...", W3P_ACPT_DOMAIN).'</p>'. 
    211             '<p>'.__("Don&#8217;t forget that the RSS url change at the same time, and the menu link does&#8217;t update by itself.", W3P_ACPT_DOMAIN).'</p>'; 
     211            '<p>'.__("Don&#8217;t forget that the RSS url change at the same time.", W3P_ACPT_DOMAIN).'</p>'; 
    212212    $helpArr[] = array( 
    213213        'id'        => 'slugs', 
     
    224224    ); 
    225225 
    226     $txt6 = '<p>'.sprintf(__('Go to Appearance -> %s, look for the box called &#171;&#160;Post types&#160;&#187;, add your custom post type to your menu :)', W3P_ACPT_DOMAIN), '<a href="'.admin_url('nav-menus.php').'">'.__('Menus').'</a>').'</p>'. 
    227             '<p>'.__("Don&#8217;t forget to change your menu link if you change your archive slug (delete the link in the menu and add it again).", W3P_ACPT_DOMAIN).'</p>'; 
     226    $txt6 = '<p>'.sprintf(__('Go to Appearance -> %s, look for the box called &#171;&#160;Post types&#160;&#187;, add your custom post type to your menu :)', W3P_ACPT_DOMAIN), '<a href="'.admin_url('nav-menus.php').'">'.__('Menus').'</a>').'</p>'; 
    228227    $helpArr[] = array( 
    229228        'id'        => 'whats-next', 
     
    254253/* Metabox for CPTs in Apperance -> Menus */ 
    255254add_action('admin_head-nav-menus.php', 'w3p_acpt_add_nav_menu_metabox'); 
    256 function w3p_acpt_add_nav_menu_metabox() { 
    257     $post_types = get_post_types( array( 'public' => true, 'show_in_nav_menus' => true, 'has_archive' => true ), 'object' ); 
     255function w3p_acpt_add_nav_menu_metabox( $object ) { 
     256    $post_types = get_post_types( array( 'show_in_nav_menus' => true, 'has_archive' => true ), 'object' ); 
    258257    if ( count($post_types) ) 
    259         add_meta_box( 'post-types', __('Post types', W3P_ACPT_DOMAIN), 'w3p_acpt_nav_menu_metabox', 'nav-menus', 'side', 'default', $post_types ); 
     258        add_meta_box( 'add-cpt-archive', __('Post types', W3P_ACPT_DOMAIN), 'w3p_acpt_nav_menu_metabox', 'nav-menus', 'side', 'default' ); 
     259    return $object; 
    260260} 
    261261 
    262262 
    263263/* The metabox */ 
    264 function w3p_acpt_nav_menu_metabox( $object, $post_types ) { 
    265     global $_nav_menu_placeholder, $nav_menu_selected_id, $locale; 
    266     $types = $post_types['args']; 
     264function w3p_acpt_nav_menu_metabox() { 
     265    global $nav_menu_selected_id, $locale; 
     266    $post_types = get_post_types( array( 'show_in_nav_menus' => true, 'has_archive' => true ), 'object' ); 
     267 
     268    foreach ( $post_types as &$post_type ) { 
     269        $post_type->db_id = 0; 
     270        $post_type->object = 'cpt-archive'; 
     271        $post_type->object_id = $post_type->name; 
     272        $post_type->menu_item_parent = 0; 
     273        $post_type->type = $post_type->name; 
     274        $post_type->title = $post_type->labels->name; 
     275        $post_type->url = ''; 
     276        $post_type->target = ''; 
     277        $post_type->attr_title = ''; 
     278        $post_type->classes = array(); 
     279        $post_type->xfn = ''; 
     280    } 
     281 
     282    $walker = new Walker_Nav_Menu_Checklist( array() ); 
     283 
    267284    ?> 
    268     <div id="post-types" class="posttypesdiv"> 
    269  
    270         <div id="tabs-panel-post-types-all" class="tabs-panel tabs-panel-view-all tabs-panel-active" style="border-style:solid;border-width:1px;overflow:auto;padding:.5em .9em;"> 
    271             <ul id="post-typeschecklist" class="list:post-types categorychecklist form-no-clear form-no-clear" style="margin:0"> 
     285    <div id="cpt-archive" class="cpt-archivediv"> 
     286        <div id="cpt-archive-all" class="tabs-panel tabs-panel-view-all tabs-panel-active" style="height:auto;max-height:205px;border-style:solid;border-width:1px;overflow:auto;padding:.5em .9em;"> 
     287            <ul id="ctp-archivechecklist" class="list:cpt-archive categorychecklist form-no-clear" style="margin:0;"> 
    272288                <?php 
    273                 $old_locale = $locale; 
    274                 if ( class_exists('SitePress') ) {      // WPML support : if we're building a menu in another language, switch to this one 
    275                     global $sitepress; 
    276                     $locale = $sitepress->get_locale($sitepress->get_current_language()); 
    277                 } 
    278                 $checked = isset($_GET['post-types-tab'], $_GET['selectall']) && $_GET['post-types-tab'] == 'all' && $_GET['selectall'] == 1 ? ' checked="checked"' : ''; 
    279                 foreach ( $types as $type => $obj ) { 
    280                     $_nav_menu_placeholder = ( 0 > $_nav_menu_placeholder ) ? intval($_nav_menu_placeholder) - 1 : -1; ?> 
    281                     <li> 
    282                         <label class="menu-item-title"> 
    283                             <input type="checkbox" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-object-id]" class="menu-item-checkbox" value="<?php echo $type; ?>"<?php echo $checked; ?>/> <?php echo $obj->labels->name; ?> 
    284                         </label> 
    285                         <input type="hidden" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-object]" class="menu-item-object" value="post-type"/> 
    286                         <input type="hidden" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-type]" class="menu-item-type" value="custom"/> 
    287                         <input type="hidden" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-title]" class="menu-item-title" value="<?php echo $obj->labels->name; ?>"/> 
    288                         <input type="hidden" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-url]" class="menu-item-url" value="<?php echo get_post_type_archive_link( $type ); ?>"/> 
    289                     </li> 
    290                     <?php 
    291                 } 
    292                 $locale = $old_locale;                  // Back to the administration language 
     289                $checkbox_items = walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $post_types), 0, (object) array( 'walker' => $walker) ); 
     290 
     291                if ( isset( $_REQUEST['cpt-archive-tab'] ) && $_REQUEST['cpt-archive-tab'] == 'all' && ! empty( $_REQUEST['selectall'] ) ) 
     292                    $checkbox_items = preg_replace('/(type=(.)checkbox(\2))/', '$1 checked=$2checked$2', $checkbox_items); 
     293                echo $checkbox_items; 
    293294                ?> 
    294295            </ul> 
    295296        </div><!-- /.tabs-panel --> 
    296  
    297         <p class="button-controls"> 
    298             <span class="list-controls"> 
    299                 <a href="<?php echo esc_url(add_query_arg( array( 'selectall' => 1, 'post-types-tab' => 'all' ) )); ?>#post-types" class="select-all"><?php _e('Select All'); ?></a> 
    300             </span> 
    301  
    302             <span class="add-to-menu"> 
    303                 <img class="waiting" src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" /> 
    304                 <input type="submit"<?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu" value="<?php esc_attr_e('Add to Menu'); ?>" name="add-post-types-menu-item" id="submit-post-types" /> 
    305             </span> 
    306         </p> 
    307  
    308297    </div> 
     298 
     299    <p class="button-controls"> 
     300        <span class="list-controls"> 
     301            <a href="<?php echo esc_url(add_query_arg( array( 'selectall' => 1, 'cpt-archive-tab' => 'all' ) )); ?>#cpt-archive" class="select-all"><?php _e('Select All'); ?></a> 
     302        </span> 
     303 
     304        <span class="add-to-menu"> 
     305            <img class="waiting" src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" /> 
     306            <input type="submit"<?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu" value="<?php esc_attr_e('Add to Menu'); ?>" name="add-ctp-archive-menu-item" id="submit-cpt-archive" /> 
     307        </span> 
     308    </p> 
    309309    <?php 
    310310} 
    311311 
    312312 
     313/* Modify the "type_label" + add the "Original" link url */ 
     314add_filter( 'wp_setup_nav_menu_item', 'w3p_acpt_nav_menu_type_label' ); 
     315function w3p_acpt_nav_menu_type_label( $menu_item ) { 
     316    if ( isset($menu_item->object) && $menu_item->object == 'cpt-archive' ) { 
     317        $menu_item->type_label = __( 'Archive' ); 
     318        $menu_item->url = get_post_type_archive_link( $menu_item->type );       // Adding this url is useless since we can't add the link name 
     319    } 
     320    return $menu_item; 
     321} 
     322 
     323 
     324 
     325 
     326 
     327 
     328 
     329 
     330 
     331 
     332 
     333 
     334 
     335 
     336 
     337 
     338 
     339 
     340 
     341 
     342 
     343 
     344 
    313345?> 
  • sf-archiver/trunk/languages/w3p-acpt-fr_FR.po

    r509590 r516339  
    88"Report-Msgid-Bugs-To: http://scri.in/acpt/\n" 
    99"POT-Creation-Date: 2012-02-15 16:25+0100\n" 
    10 "PO-Revision-Date: 2012-02-20 18:24+0100\n" 
     10"PO-Revision-Date: 2012-03-08 03:27+0100\n" 
    1111"Last-Translator: Grégory Viguier\n" 
    1212"Language-Team: fr_FR\n" 
     
    2020"X-Poedit-KeywordsList: __;_e\n" 
    2121 
    22 #: w3p-archive-for-cpt.php:59 
     22#: w3p-archive-for-cpt.php:109 
    2323msgid "Subscribe to %s via RSS" 
    2424msgstr "Souscrire à %s via RSS" 
    2525 
    26 #: w3p-acpt-admin.inc.php:20 
    27 msgid "Archive for CPT" 
    28 msgstr "Archive pour CPT" 
    29  
    3026#: w3p-acpt-admin.inc.php:48 
    3127msgid "Here you can choose to enable the archive capability for the public custom post types." 
    32 msgstr "Ici vous pouvez choisir d&#8217;activer la capacité d&#8217;archive pour les types d&#8217;articles personnalisés publics." 
     28msgstr "Ici vous pouvez choisir d&#8217;activer la capacité d&#8217;archive pour les types de contenu personnalisé publics." 
    3329 
    3430#: w3p-acpt-admin.inc.php:52 
    3531msgid "Wait, where are my custom post types?! Why did you installed me if you don&#8217;t have custom post types? ;)" 
    36 msgstr "Attendez, où sont mes types d&#8217;articles personnalisés? Pourquoi m&#8217;avoir installé si vous n&#8217;avez pas de types d'articles personnalisés? ;)" 
     32msgstr "Hé, où sont mes types de contenu personnalisé? Pourquoi m&#8217;avoir installé si vous n&#8217;avez pas de types de contenu personnalisé? ;)" 
    3733 
    3834#: w3p-acpt-admin.inc.php:72 
    3935msgid "This <abbr title=\"Custom Post Type\">CPT</abbr> already has an archive page." 
    40 msgstr "Ce <abbr title=\"Custom Post Type : type d&#8217;article personnalisé\">CPT</abbr> a déjà une page d&#8217;archive." 
     36msgstr "Ce <abbr title=\"Custom Post Type : type de contenu personnalisé\">CPT</abbr> a déjà une page d&#8217;archive." 
    4137 
    4238#: w3p-acpt-admin.inc.php:76 
     
    7470#: w3p-acpt-admin.inc.php:110 
    7571msgid "Add this post type to the posts page" 
    76 msgstr "Ajouter ce type d&#8217;article à la page des articles" 
     72msgstr "Ajouter ce type de contenu à la page des articles" 
    7773 
    7874#: w3p-acpt-admin.inc.php:114 
    7975msgid "Add this post type to the main RSS feed" 
    80 msgstr "Ajouter ce type d&#8217;article au flux RSS principal" 
     76msgstr "Ajouter ce type de contenu au flux RSS principal" 
    8177 
    8278#: w3p-acpt-admin.inc.php:125 
     
    8783#: w3p-acpt-admin.inc.php:185 
    8884msgid "Each post type must have the &#171;&#160;Archive capability&#160;&#187; if you want to link to a page listing them." 
    89 msgstr "Chaque type d&#8217;article doit avoir la &#171;&#160;capacité d&#8217;archive&#160;&#187; si vous souhaitez faire un lien vers une page les listant." 
     85msgstr "Chaque type de contenu doit avoir la &#171;&#160;capacité d&#8217;archive&#160;&#187; si vous souhaitez faire un lien vers une page les listant." 
    9086 
    9187#: w3p-acpt-admin.inc.php:186 
    9288msgid "To enable the archive page, tick the &#171;&#160;Enable archive page&#160;&#187; checkbox in front of your custom post type. If the custom post type already has this capability, the checkbox won&#8217; show up." 
    93 msgstr "Pour activer la page d&#8217;archive, cocher la case &#171;&#160;Activer la page d&#8217;archive&#160;&#187; devant votre type personnalisé. Si le type d&#8217;article personnalisé a déjà cette capacité, la case à cocher n&#8217;est pas affichée." 
     89msgstr "Pour activer la page d&#8217;archive, cocher la case &#171;&#160;Activer la page d&#8217;archive&#160;&#187; devant votre type de contenu personnalisé. Si le type de contenu personnalisé a déjà cette capacité, la case à cocher n&#8217;est pas affichée." 
    9490 
    9591#: w3p-acpt-admin.inc.php:189 
     
    111107#: w3p-acpt-admin.inc.php:201 
    112108msgid "You can customize the number of posts per page for each custom post type. Otherwise, this number will be the same than what you specified for your normal posts: %d." 
    113 msgstr "Vous pouvez personnaliser le nombre d&#8217;articles par page pour chacun de vos types personnalisés. Sinon, ce nombre sera égal à celui précisé pour vos articles classiques : %d." 
     109msgstr "Vous pouvez personnaliser le nombre d&#8217;articles par page pour chacun de vos contenus personnalisés. Sinon, ce nombre sera égal à celui précisé pour vos articles classiques : %d." 
    114110 
    115111#: w3p-acpt-admin.inc.php:202 
     
    130126 
    131127#: w3p-acpt-admin.inc.php:211 
    132 msgid "Don&#8217;t forget that the RSS url change at the same time, and the menu link does&#8217;t update by itself." 
    133 msgstr "N&#8217;oubliez pas que l&#8217;url du flux RSS change en même temps, et le lien du menu ne se met pas à jour tout seul." 
     128msgid "Don&#8217;t forget that the RSS url change at the same time." 
     129msgstr "N&#8217;oubliez pas que l&#8217;url du flux RSS change en même temps." 
    134130 
    135131#: w3p-acpt-admin.inc.php:214 
     
    139135#: w3p-acpt-admin.inc.php:218 
    140136msgid "You can add your custom post types to your posts page, with your normal posts. Just tick the &#171;&#160;Add this post type to the posts page&#160;&#187; checkbox, the archive page is still available." 
    141 msgstr "Vous pouvez ajouter vos types d&#8217;article personnalisés sur votre page d&#8217;articles. Cochez juste la case &#171;&#160;Ajouter ce type d&#8217;article à la page des articles&#160;&#187;, la page d&#8217;archive reste disponible." 
     137msgstr "Vous pouvez ajouter vos types de contenu personnalisé sur votre page d&#8217;articles. Cochez juste la case &#171;&#160;Ajouter ce type de contenu à la page des articles&#160;&#187;, la page d&#8217;archive reste disponible." 
    142138 
    143139#: w3p-acpt-admin.inc.php:219 
    144140msgid "You can do the same thing with the main RSS feed: you can add your custom post types to your normal posts in the main RSS feed by ticking the &#171;&#160;Add this post type to the main RSS feed&#160;&#187; checkbox." 
    145 msgstr "Vous pouvez faire la même chose avec le flux RSS principal : vous pouvez ajouter vos types d&#8217;article personnalisés au flux RSS principal en cochant la case &#171;&#160;Ajouter ce type d&#8217;article au flux RSS principal&#160;&#187;." 
     141msgstr "Vous pouvez faire la même chose avec le flux RSS principal : vous pouvez ajouter vos types de contenu personnalisé au flux RSS principal en cochant la case &#171;&#160;Ajouter ce type de contenu au flux RSS principal&#160;&#187;." 
    146142 
    147143#: w3p-acpt-admin.inc.php:221 
     
    151147#: w3p-acpt-admin.inc.php:226 
    152148msgid "Go to Appearance -> %s, look for the box called &#171;&#160;Post types&#160;&#187;, add your custom post type to your menu :)" 
    153 msgstr "Allez dans Apparence -> %s, cherchez la boîte &#171;&#160;Types d&#8217;articles&#160;&#187;, ajoutez votre type d&#8217;article personnalisé au menu :)" 
    154  
    155 #: w3p-acpt-admin.inc.php:227 
    156 msgid "Don&#8217;t forget to change your menu link if you change your archive slug (delete the link in the menu and add it again)." 
    157 msgstr "N&#8217;oubliez pas de changer votre lien de menu si vous changez le slug de l&#8217;archive (supprimez le lien dans le menu et ajoutez-le à nouveau)." 
     149msgstr "Allez dans Apparence -> %s, cherchez la boîte &#171;&#160;Types de contenu&#160;&#187;, ajoutez votre type de contenu personnalisé au menu :)" 
    158150 
    159151#: w3p-acpt-admin.inc.php:229 
     
    161153msgstr "Et après?" 
    162154 
    163 #: w3p-acpt-admin.inc.php:232 
     155#: w3p-acpt-admin.inc.php:233 
    164156msgid "This plugin was created by %1$s and reviewed by %2$s for a security check." 
    165157msgstr "Ce plugin a été créé par %1$s et vérifié par %2$s au niveau sécurité." 
    166158 
    167 #: w3p-acpt-admin.inc.php:233 
     159#: w3p-acpt-admin.inc.php:234 
    168160msgid "Plugin icon by %s." 
    169161msgstr "Icône du plugin par %s." 
    170162 
    171 #: w3p-acpt-admin.inc.php:236 
     163#: w3p-acpt-admin.inc.php:237 
    172164msgid "Credits" 
    173165msgstr "Crédits" 
    174166 
    175 #: w3p-acpt-admin.inc.php:241 
     167#: w3p-acpt-admin.inc.php:242 
    176168msgid "My blog (french)" 
    177169msgstr "Mon blog" 
    178170 
    179 #: w3p-acpt-admin.inc.php:257 
     171#: w3p-acpt-admin.inc.php:258 
    180172msgid "Post types" 
    181 msgstr "Types d&#8217;articles" 
     173msgstr "Types de contenu" 
    182174 
  • sf-archiver/trunk/readme.txt

    r513125 r516339  
    3535 
    3636== Screenshots == 
    37 1. screenshot-1.png 
    38 2. screenshot-2.png 
     371. The settings page 
     382. The meta box in nav menu admin page 
    3939 
    4040== Changelog == 
     41 
     42= 1.1 = 
     43* 2012/03/08 
     44* Meta box rebuild in nav menu admin page. Delete your old archive links in your menus and add them again. Now you won't need to change them again if you change the archives slug. 
     45* Minor changes in French translation. 
    4146 
    4247= 1.0 = 
     
    4752 
    4853Nothing special 
     54 
     55 
     56 
     57 
     58 
     59 
     60 
     61 
     62 
     63 
     64 
     65 
     66 
     67 
     68 
     69 
     70 
     71 
     72 
     73 
     74 
     75 
     76 
     77 
     78 
     79 
     80 
     81 
     82 
     83 
     84 
     85 
     86 
     87 
     88 
     89 
     90 
     91 
     92 
     93 
     94 
     95 
     96 
  • sf-archiver/trunk/w3p-archiver.php

    r509590 r516339  
    44Plugin URI: http://www.screenfeed.fr/archi/ 
    55Description: A simple way to display archive pages for your custom post types 
    6 Version: 1.0 
     6Version: 1.1 
    77Author: Grégory Viguier 
    88Author URI: http://www.screenfeed.fr/greg/ 
     
    1313define( 'W3P_ACPT_PLUGIN_NAME', 'SF Archiver' ); 
    1414define( 'W3P_ACPT_PAGE_NAME',   'w3p_acpt_config' ); 
    15 define( 'W3P_ACPT_VERSION',     '1.0' ); 
     15define( 'W3P_ACPT_VERSION',     '1.1' ); 
    1616define( 'W3P_ACPT_DOMAIN',      'w3p-acpt' ); 
    1717define( 'W3P_ACPT_FILE',        __FILE__ ); 
     
    3434 
    3535} else { 
     36 
     37    add_filter( 'wp_get_nav_menu_items', 'cpt_archive_menu_filter', 10, 3 );                        // Alter the URL for cpt-archive objects 
     38    function cpt_archive_menu_filter( $items, $menu, $args ) { 
     39        foreach ( $items as &$item ) { 
     40            if ( $item->object != 'cpt-archive' ) 
     41                continue; 
     42            $item->url = get_post_type_archive_link( $item->type ); 
     43            if ( get_query_var( 'post_type' ) == $item->type ) { 
     44                $item->classes []= 'current-menu-item'; 
     45                $item->current = true; 
     46            } 
     47        } 
     48        return $items; 
     49    } 
    3650 
    3751    add_action('pre_get_posts', 'w3p_acpt_ppp');                                                    // Posts per page limit and CPTs on posts page 
Note: See TracChangeset for help on using the changeset viewer.