WordPress.org

Plugin Directory

Changeset 1508461


Ignore:
Timestamp:
10/05/16 03:12:07 (13 months ago)
Author:
jchristopher
Message:

CFS Options Screens 1.2.6

Location:
cfs-options-screens/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • cfs-options-screens/trunk/README.md

    r1315158 r1508461  
    1919        'menu_position'   => 100, 
    2020        'icon'            => 'dashicons-admin-generic', // optional, dashicons-admin-generic is the default 
    21         'field_groups'    => array( 75 ), // post ID(s) of CFS Field Group to use on this page 
     21        'field_groups'    => array( 'My Field Group' ), // Field Group name(s) of CFS Field Group to use on this page (can also be post IDs) 
    2222    ); 
    2323 
     
    3333function my_cfs_options_screens( $screens ) { 
    3434 
    35     // Parent 
    36     $screens[] = array( 
    37         'name' => 'options', 
    38         'field_groups' => array( 15 ), 
    39     ); 
     35    // Parent 
     36    $screens[] = array( 
     37        'name'        => 'options', 
     38        'field_groups' => array( 'My Parent Field Group Name' ), 
     39    ); 
    4040 
    41     // Child 
    42     $screens[] = array( 
    43         'name' => 'options-nav', 
    44         'parent' => 'options', 
    45         'field_groups' => array( 17 ), 
    46     ); 
    47     return $screens; 
     41    // Child 
     42    $screens[] = array( 
     43        'name'         => 'options-nav', 
     44        'parent'       => 'options', // name of the parent 
     45        'field_groups' => array( 'My Child Field Group Name' ), 
     46    ); 
     47 
     48    return $screens; 
    4849} 
    4950 
     
    6667        'icon'            => 'dashicons-admin-generic', // optional, dashicons-admin-generic is the default 
    6768        'field_groups'      => array( 
    68                 array( 
    69                     'id'            => 1548, 
    70                     'has_overrides' => true, 
     69                array( 
     70                    'title'         => 'My CFS Field Group Name', 
     71                    'has_overrides' => true, 
    7172                ), 
    7273            ), 
    7374    ); 
     75 
    7476    return $screens; 
    7577} 
  • cfs-options-screens/trunk/cfs-options-screens.php

    r1348472 r1508461  
    44Plugin URI: http://wordpress.org/plugins/cfs-options-screens/ 
    55Description: Register options screens powered by Custom Field Suite 
    6 Version: 1.2.5 
     6Version: 1.2.6 
    77Author: Jonathan Christopher 
    88Author URI: http://mondaybynoon.com/ 
     
    143143 
    144144        foreach ( $this->screens as $screen ) { 
     145 
    145146            $screen_field_groups = $this->get_field_group_ids( $screen['field_groups'] ); 
     147 
    146148            if ( in_array( $field_group_id, $screen_field_groups ) ) { 
    147149                $screens[] = $screen; 
     
    248250        if ( isset( $_GET['message'] ) && $this->post_type == $post->post_type ) { 
    249251            ?> 
    250                 <div class="updated"><p><?php esc_html_e( 'Saved', 'cfsos' ); ?></p></div> 
     252            <div class="updated"><p><?php esc_html_e( 'Saved', 'cfsos' ); ?></p></div> 
    251253            <?php 
    252254        } 
     
    427429    function get_field_group_id( $field_group ) { 
    428430 
    429         if ( is_array( $field_group ) && array_key_exists( 'id', $field_group ) ) { 
    430             $field_group = absint( $field_group['id'] ); 
     431        if ( is_string( $field_group ) ) { 
     432 
     433            $field_group = $this->get_field_group_id_from_title( $field_group ); 
     434 
     435        } elseif ( is_array( $field_group ) ) { 
     436 
     437            if ( array_key_exists( 'id', $field_group ) ) { 
     438 
     439                $field_group = $field_group['id']; 
     440 
     441            } elseif ( array_key_exists( 'title', $field_group ) ) { 
     442 
     443                $field_group = $this->get_field_group_id_from_title( $field_group['title'] ); 
     444 
     445            } 
     446 
    431447        } 
    432448 
    433449        return absint( $field_group ); 
     450    } 
     451 
     452    /** 
     453     * Retrieve CFS Field Group ID from title 
     454     * 
     455     * @param string $title 
     456     * 
     457     * @return int 
     458     */ 
     459    function get_field_group_id_from_title( $title = '' ) { 
     460        $id = 0; 
     461 
     462        $field_group_obj = get_page_by_title( $title, 'OBJECT', 'cfs' ); 
     463 
     464        if ( $field_group_obj instanceof WP_Post ) { 
     465            $id = $field_group_obj->ID; 
     466        } 
     467 
     468        return $id; 
    434469    } 
    435470 
  • cfs-options-screens/trunk/readme.txt

    r1348472 r1508461  
    44Tags: CFS, Custom Field Suite, Options, Settings, Screen 
    55Requires at least: 3.9 
    6 Tested up to: 4.4 
    7 Stable tag: 1.2.5 
     6Tested up to: 4.6.1 
     7Stable tag: 1.2.6 
    88License: GPLv2 or later 
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html 
     
    2020 
    2121`function my_cfs_options_screens( $screens ) { 
    22     $screens[] = array( 
    23         'name'            => 'options', 
    24         'menu_title'      => __( 'Site Options' ), 
    25         'page_title'      => __( 'Customize Site Options' ), 
    26         'menu_position'   => 100, 
    27         'icon'            => 'dashicons-admin-generic', // optional, dashicons-admin-generic is the default 
    28         'field_groups'    => array( 75 ), // post ID(s) of CFS Field Group to use on this page 
    29     ); 
    30     return $screens; 
     22    $screens[] = array( 
     23        'name'            => 'options', 
     24        'menu_title'      => __( 'Site Options' ), 
     25        'page_title'      => __( 'Customize Site Options' ), 
     26        'menu_position'   => 100, 
     27        'icon'            => 'dashicons-admin-generic', // optional, dashicons-admin-generic is the default 
     28        'field_groups'    => array( 'My Field Group' ), // Field Group name(s) of CFS Field Group to use on this page (can also be post IDs) 
     29    ); 
     30 
     31    return $screens; 
    3132} 
    3233 
     
    3536= Retrieve your options like so: = 
    3637 
    37 `$value = cfs_get_option( 'options_screen_name', 'field_name_from_field_group' );` 
     38`$value = cfs_get_option( 'options_screen_name', 'cfs_field_name_from_field_group' );` 
    3839 
    3940You can set up multiple top level and/or children options pages by adding a `parent` argument when registering your screen: 
     
    4142`function my_cfs_options_screens( $screens ) { 
    4243 
    43     // Parent 
    44     $screens[] = array( 
    45         'name' => 'options', 
    46         'field_groups' => array( 15 ), 
    47     ); 
     44    // Parent 
     45    $screens[] = array( 
     46        'name'        => 'options', 
     47        'field_groups' => array( 'My Parent Field Group Name' ), 
     48    ); 
    4849 
    49     // Child 
    50     $screens[] = array( 
    51         'name' => 'options-nav', 
    52         'parent' => 'options',  // name of the parent 
    53         'field_groups' => array( 17 ), 
    54     ); 
    55     return $screens; 
     50    // Child 
     51    $screens[] = array( 
     52        'name'         => 'options-nav', 
     53        'parent'       => 'options', // name of the parent 
     54        'field_groups' => array( 'My Child Field Group Name' ), 
     55    ); 
     56 
     57    return $screens; 
    5658 } 
    5759 
     
    6062 You can also use CFS Options Screens to set up Field Group 'defaults', allowing a Field Group to appear both on a CFS Options Screen and a post edit screen. The CFS Options Screen will act as the default/fallback and the post edit screen will override those defaults. 
    6163 
    62  `function my_cfs_options_screens( $screens ) { 
    63     $screens[] = array( 
    64         'name'            => 'options', 
    65         'menu_title'      => __( 'Site Options' ), 
    66         'page_title'      => __( 'Customize Site Options' ), 
    67         'menu_position'   => 100, 
    68         'icon'            => 'dashicons-admin-generic', // optional, dashicons-admin-generic is the default 
    69         'field_groups'      => array( 
    70                 array( 
    71                     'id'            => 1548, 
    72                     'has_overrides' => true, 
    73                 ), 
    74             ), 
    75     ); 
    76     return $screens; 
     64`function my_cfs_options_screens( $screens ) { 
     65    $screens[] = array( 
     66        'name'            => 'options', 
     67        'menu_title'      => __( 'Site Options' ), 
     68        'page_title'      => __( 'Customize Site Options' ), 
     69        'menu_position'   => 100, 
     70        'icon'            => 'dashicons-admin-generic', // optional, dashicons-admin-generic is the default 
     71        'field_groups'    => array( 
     72            array( 
     73                'title'         => 'My CFS Field Group Name', 
     74                'has_overrides' => true, 
     75            ), 
     76        ), 
     77    ); 
     78 
     79    return $screens; 
    7780} 
    7881 
     
    9194= How do I add a Field Group to my options screen? = 
    9295 
    93 You must specify the Field Group ID(s) in the `field_groups` parameter when using the `cfs_options_screens` hook 
     96You must specify the Field Group Title(s) in the `field_groups` parameter when using the `cfs_options_screens` hook 
    9497 
    9598= How do I retrieve saved options? = 
     
    98101 
    99102== Changelog == 
     103 
     104= 1.2.6 = 
     105* Add support for using CFS Field Group title instead of ID 
    100106 
    101107= 1.2.5 = 
Note: See TracChangeset for help on using the changeset viewer.