WordPress.org

Plugin Directory

Changeset 1506712


Ignore:
Timestamp:
10/02/16 07:53:53 (11 months ago)
Author:
iambriansreed
Message:

0.2.0 major refactor, added export

Location:
advanced-custom-post-types
Files:
44 added
9 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • advanced-custom-post-types/trunk/acpt.php

    r1470474 r1506712  
    33Plugin Name: Advanced Custom Post Types 
    44Description: Customise WordPress with custom post types 
    5 Version: 0.1.0 
     5Version: 0.2.0 
    66Author: iambriansreed 
    77Author URI: http://iambrian.com/ 
     
    1313} 
    1414 
    15 if ( ! class_exists( 'acpt' ) ) { 
     15// Exit if acpt already loaded 
     16if ( ! defined( 'ACPT_POST_TYPE' ) ) { 
    1617 
    17     class acpt { 
     18    define( 'ACPT_POST_TYPE', 'acpt_content_type' ); 
    1819 
    19         const ACPT_POST_TYPE = 'acpt_content_type'; 
     20    function acpt_spl_autoload_register( $namespaces_class_name ) { 
    2021 
    21         private $default_settings; 
     22        $class_name_parts = explode( '\\', $namespaces_class_name ); 
    2223 
    23         public function __construct() { 
     24        if ( $class_name_parts[0] !== 'Advanced_Custom_Post_Types' ) { 
     25            return false; 
    2426        } 
    2527 
    26         public function initialize() { 
     28        array_shift( $class_name_parts ); // remove namespace Advanced_Custom_Post_Types 
    2729 
    28             do_action( 'acpt/init' ); 
     30        $class_name = array_pop( $class_name_parts ); 
    2931 
    30             register_activation_hook( __FILE__, array( $this, 'activate' ) ); 
     32        $class_name_parts[] = "class-$class_name.php"; 
    3133 
    32             add_action( 'init', array( $this, 'init' ) ); 
     34        $filename = dirname( __FILE__ ) . '/' . str_replace( '_', '-', strtolower( implode( '/', $class_name_parts ) ) ); 
    3335 
    34             $this->default_settings = array( 
    35                 'show_admin'   => true, 
    36                 'admin_fields' => array(), 
    37                 'capability'   => 'manage_options' 
    38             ); 
     36        if ( file_exists( $filename ) ) { 
    3937 
    40             $this->load_admin(); 
     38            include( $filename ); 
     39 
     40            return class_exists( $class_name ); 
    4141        } 
    4242 
    43         private $dir_url = null; 
    44  
    45         public function dir_url() { 
    46             if ( ! $this->dir_url ) { 
    47                 $this->dir_url = plugin_dir_url( __FILE__ ); 
    48             } 
    49  
    50             return $this->dir_url; 
    51         } 
    52  
    53         private $dir_path = null; 
    54  
    55         public function dir_path( $path ) { 
    56  
    57             if ( ! $this->dir_path ) { 
    58                 $this->dir_path = plugin_dir_path( __FILE__ ); 
    59             } 
    60  
    61             return $this->dir_path . ( $path ? "/$path" : '' ); 
    62         } 
    63  
    64         public function get_setting( $name ) { 
    65             return apply_filters( "acpt/settings/{$name}", $this->default_settings[ $name ] ); 
    66         } 
    67  
    68         public function set_setting( $name, $value ) { 
    69             $this->default_settings[ $name ] = $value; 
    70         } 
    71  
    72         private function activate() { 
    73  
    74         } 
    75  
    76         public function init() { 
    77  
    78             $this->register_post_types(); 
    79         } 
    80  
    81  
    82         public function register_post_type() { 
    83  
    84             $cap = acpt()->get_setting( 'capability' ); 
    85  
    86             register_post_type( acpt::ACPT_POST_TYPE, array( 
    87                 'labels'          => array( 
    88                     'name'               => __( 'Content Types', 'acpt' ), 
    89                     'singular_name'      => __( 'Content Type', 'acpt' ), 
    90                     'add_new'            => __( 'Add New', 'acpt' ), 
    91                     'add_new_item'       => __( 'Add New Content Type', 'acpt' ), 
    92                     'edit_item'          => __( 'Edit Content Type', 'acpt' ), 
    93                     'new_item'           => __( 'New Content Type', 'acpt' ), 
    94                     'view_item'          => __( 'View Content Type', 'acpt' ), 
    95                     'search_items'       => __( 'Search Content Types', 'acpt' ), 
    96                     'not_found'          => __( 'No Content Types found', 'acpt' ), 
    97                     'not_found_in_trash' => __( 'No Content Types found in Trash', 'acpt' ), 
    98                 ), 
    99                 'public'          => true, 
    100                 'show_ui'         => true, 
    101                 '_builtin'        => false, 
    102                 'capability_type' => 'post', 
    103                 /*'capabilities'    => array( 
    104                     'edit_post'    => $cap, 
    105                     'delete_post'  => $cap, 
    106                     'edit_posts'   => $cap, 
    107                     'delete_posts' => $cap, 
    108                 ),*/ 
    109                 'hierarchical'    => false, 
    110                 'rewrite'         => false, 
    111                 'query_var'       => false, 
    112                 'supports'        => array(), 
    113                 'show_in_menu'    => true 
    114             ) ); 
    115         } 
    116  
    117         private function register_post_types() { 
    118  
    119             $acpt_reset_last = intval( get_option( 'acpt_reset_last', 0 ) ); 
    120  
    121             $last_saved = 0; 
    122  
    123             $post_types = apply_filters( 'acpt/post_types', $this->post_types() ); 
    124  
    125             if ( is_admin() ) { 
    126  
    127                 // adding acpt post type 
    128                 $cap = $this->get_setting( 'capability' ); 
    129  
    130                 $post_types[] = array( 
    131  
    132                     'post_type' => self::ACPT_POST_TYPE, 
    133                     'args'      => array( 
    134                         'labels'          => array( 
    135                             'name'               => __( 'Content Types', 'acpt' ), 
    136                             'singular_name'      => __( 'Content Type', 'acpt' ), 
    137                             'add_new'            => __( 'Add New', 'acpt' ), 
    138                             'add_new_item'       => __( 'Add New Content Type', 'acpt' ), 
    139                             'edit_item'          => __( 'Edit Content Type', 'acpt' ), 
    140                             'new_item'           => __( 'New Content Type', 'acpt' ), 
    141                             'view_item'          => __( 'View Content Type', 'acpt' ), 
    142                             'search_items'       => __( 'Search Content Types', 'acpt' ), 
    143                             'not_found'          => __( 'No Content Types found', 'acpt' ), 
    144                             'not_found_in_trash' => __( 'No Content Types found in Trash', 'acpt' ), 
    145                         ), 
    146                         'public'          => false, 
    147                         'show_ui'         => true, 
    148                         '_builtin'        => false, 
    149                         'capability_type' => 'post', 
    150                         'capabilities'    => array( 
    151                             'edit_post'    => $cap, 
    152                             'delete_post'  => $cap, 
    153                             'edit_posts'   => $cap, 
    154                             'delete_posts' => $cap, 
    155                         ), 
    156                         'hierarchical'    => true, 
    157                         'rewrite'         => false, 
    158                         'query_var'       => false, 
    159                         'supports'        => array( 'title' ), 
    160                         'show_in_menu'    => false, 
    161                     ) 
    162                 ); 
    163             } 
    164  
    165             foreach ( $post_types as $post_type ) { 
    166  
    167                 if ( ! isset( $post_type['post_type'] ) || ! isset( $post_type['args'] ) ) { 
    168                     continue; 
    169                 } 
    170  
    171                 register_post_type( $post_type['post_type'], $post_type['args'] ); 
    172  
    173                 if ( isset( $post_type['taxonomies'] ) && is_array( $post_type['taxonomies'] ) ) { 
    174                     foreach ( $post_type['taxonomies'] as $taxonomy ) { 
    175                         register_taxonomy_for_object_type( $taxonomy, $post_type['post_type'] ); 
    176                     } 
    177                 } 
    178  
    179                 if ( isset( $post_type['saved'] ) ) { 
    180                     $last_saved = max( $last_saved, intval( $post_type['saved'] ) ); 
    181                 } 
    182             } 
    183  
    184             if ( $last_saved > $acpt_reset_last ) { 
    185  
    186                 flush_rewrite_rules(); 
    187                 update_option( 'acpt_reset_last', $last_saved ); 
    188             } 
    189         } 
    190  
    191         private function load_admin() { 
    192  
    193             if ( ! is_admin() ) { 
    194                 return; 
    195             } 
    196  
    197             require_once dirname( __FILE__ ) . '/admin/class.admin.php'; 
    198  
    199             new acpt_admin(); 
    200         } 
    201  
    202         private $post_types; 
    203  
    204         public function post_types() { 
    205  
    206             if ( ! $this->post_types ) { 
    207  
    208                 $posts = get_posts( array( 'post_type' => self::ACPT_POST_TYPE ) ); 
    209  
    210                 $this->post_types = array(); 
    211  
    212                 foreach ( $posts as $post ) { 
    213                     $this->post_types[] = json_decode( $post->post_content, true ); 
    214                 } 
    215             } 
    216  
    217             return $this->post_types; 
    218         } 
    219  
    220     } 
    221 } 
    222  
    223 /* 
    224 *  acpt 
    225 * 
    226 *  The main function responsible for returning the one true acpt Instance to functions everywhere. 
    227 *  Use this function like you would a global variable, except without needing to declare the global. 
    228 * 
    229 *  Example: <?php $acpt = acpt(); ?> 
    230 * 
    231 *  @type    function 
    232 * 
    233 *  @param   N/A 
    234 *  @return  (object) 
    235 */ 
    236  
    237 function acpt() { 
    238  
    239     global $advanced_custom_post_types; 
    240  
    241     if ( ! isset( $advanced_custom_post_types ) ) { 
    242  
    243         $advanced_custom_post_types = new acpt(); 
    244  
    245         $advanced_custom_post_types->initialize(); 
    246  
     43        return false; 
    24744    } 
    24845 
    249     return $advanced_custom_post_types; 
     46    spl_autoload_register( 'acpt_spl_autoload_register' ); 
     47 
     48    new \Advanced_Custom_Post_Types\Load(); 
    25049 
    25150} 
    252  
    253 // initialize 
    254 acpt(); 
  • advanced-custom-post-types/trunk/index.php

    r1447949 r1506712  
    11<?php 
    2 // Silence is golden. 
     2// Silence is golden sucka. 
  • advanced-custom-post-types/trunk/readme.txt

    r1470481 r1506712  
    33Tags: acf, advanced, custom, field, fields, custom field, custom fields, simple fields, magic fields, more fields, edit, content types, post types, types, content 
    44Requires at least: 3.6.0 
    5 Tested up to: 4.5.2 
     5Tested up to: 4.6.1 
    66License: GPLv2 or later 
    77Stable tag: trunk 
     
    1111== Description == 
    1212 
    13 Advanced Custom Post Types is the perfect solution for any WordPress website which needs more content types like other Content Management Systems. 
     13Advanced Custom Post Types is the perfect solution for any WordPress website which needs more content types like other Content Management Systems. Advanced Custom Fields v5+ (Pro) is required. 
    1414 
    15 = Filters = 
     15== Filters == 
    1616 
    1717**acpt/settings/show_admin** - Determines whether or not the admin menu is shown. 
     
    2323**acpt/post_types** - Alter the post types created 
    2424 
    25 = Actions = 
     25== Actions == 
    2626 
    2727**acpt/init** - Fires before acpt has started loading. 
     
    5454= 0.1.0 = 
    5555* Refactored and removed all ACF dependency 
     56 
     57= 0.1.1 = 
     58* Fixed advanced tabs toggling, fixed rewrite url, fixed API url, removed redundant taxonomies 
     59 
     60= 0.2.0 = 
     61* Massive refactoring and cleanup, added export 
Note: See TracChangeset for help on using the changeset viewer.