Overview

Classes

  • Papi_Admin
  • Papi_Admin_Ajax
  • Papi_Admin_Assets
  • Papi_Admin_Management_Pages
  • Papi_Admin_Menu
  • Papi_Admin_Meta_Box
  • Papi_Admin_Meta_Box_Tabs
  • Papi_Admin_Option_Handler
  • Papi_Admin_Post_Handler
  • Papi_Admin_View
  • Papi_Attachment_Type
  • Papi_Conditional_Rules
  • Papi_Container
  • Papi_Core_Autoload
  • Papi_Core_Conditional
  • Papi_Core_Conditional_Rule
  • Papi_Core_Data_Handler
  • Papi_Core_Page
  • Papi_Core_Property
  • Papi_Core_Type
  • Papi_Loader
  • Papi_Option_Page
  • Papi_Option_Type
  • Papi_Page_Type
  • Papi_Page_Type_Meta
  • Papi_Porter
  • Papi_Porter_Driver
  • Papi_Porter_Driver_Core
  • Papi_Post_Page
  • Papi_Property
  • Papi_Property_Bool
  • Papi_Property_Checkbox
  • Papi_Property_Color
  • Papi_Property_Datetime
  • Papi_Property_Divider
  • Papi_Property_Dropdown
  • Papi_Property_Editor
  • Papi_Property_Email
  • Papi_Property_File
  • Papi_Property_Flexible
  • Papi_Property_Gallery
  • Papi_Property_Hidden
  • Papi_Property_Html
  • Papi_Property_Image
  • Papi_Property_Link
  • Papi_Property_Number
  • Papi_Property_Post
  • Papi_Property_Radio
  • Papi_Property_Reference
  • Papi_Property_Relationship
  • Papi_Property_Repeater
  • Papi_Property_String
  • Papi_Property_Term
  • Papi_Property_Text
  • Papi_Property_Url
  • Papi_Property_User

Functions

  • current_page
  • papi
  • papi_action_delete_value
  • papi_action_include
  • papi_append_post_type_query
  • papi_body_class
  • papi_cache_delete
  • papi_cache_get
  • papi_cache_key
  • papi_cache_set
  • papi_camel_case
  • papi_cast_string_value
  • papi_convert_to_string
  • papi_current_user_is_allowed
  • papi_dashify
  • papi_delete_field
  • papi_delete_option
  • papi_delete_property_meta_value
  • papi_display_page_type
  • papi_doing_ajax
  • papi_esc_html
  • papi_f
  • papi_field
  • papi_field_shortcode
  • papi_field_value
  • papi_fields
  • papi_filter_conditional_rule_allowed
  • papi_filter_core_load_one_type_on
  • papi_filter_format_value
  • papi_filter_load_value
  • papi_filter_settings_directories
  • papi_filter_settings_only_page_type
  • papi_filter_settings_page_type_column_title
  • papi_filter_settings_show_page_type
  • papi_filter_settings_show_standard_page_type
  • papi_filter_settings_show_standard_page_type_in_filter
  • papi_filter_settings_sort_order
  • papi_filter_settings_standard_page_description
  • papi_filter_settings_standard_page_name
  • papi_filter_settings_standard_page_thumbnail
  • papi_filter_update_value
  • papi_from_property_array_slugs
  • papi_get_all_files_in_directory
  • papi_get_all_page_type_files
  • papi_get_all_page_types
  • papi_get_box_property
  • papi_get_class_name
  • papi_get_field
  • papi_get_file_path
  • papi_get_number_of_pages
  • papi_get_only_objects
  • papi_get_option
  • papi_get_options_and_properties
  • papi_get_or_post
  • papi_get_page
  • papi_get_page_new_url
  • papi_get_page_query_strings
  • papi_get_page_type
  • papi_get_page_type_base_path
  • papi_get_page_type_by_id
  • papi_get_page_type_by_post_id
  • papi_get_page_type_id
  • papi_get_page_type_key
  • papi_get_page_type_meta_value
  • papi_get_page_type_name
  • papi_get_page_type_template
  • papi_get_parent_post_id
  • papi_get_post_id
  • papi_get_post_type
  • papi_get_post_type_label
  • papi_get_post_types
  • papi_get_property_class_name
  • papi_get_property_meta_value
  • papi_get_property_options
  • papi_get_property_type
  • papi_get_property_type_key
  • papi_get_property_type_key_f
  • papi_get_qs
  • papi_get_sanitized_post
  • papi_get_slugs
  • papi_get_tab_options
  • papi_html_name
  • papi_html_tag
  • papi_include_template
  • papi_is_empty
  • papi_is_json
  • papi_is_method
  • papi_is_option_page
  • papi_is_option_type
  • papi_is_page_type
  • papi_is_property
  • papi_is_property_type_key
  • papi_is_rule
  • papi_management_page_type_render_box
  • papi_maybe_convert_to_array
  • papi_maybe_convert_to_object
  • papi_maybe_get_callable_value
  • papi_maybe_json_decode
  • papi_maybe_json_encode
  • papi_nl2br
  • papi_option_shortcode
  • papi_option_type_exists
  • papi_page_type_exists
  • papi_populate_properties
  • papi_property
  • papi_remove_papi
  • papi_remove_trailing_quotes
  • papi_render_html_tag
  • papi_render_properties
  • papi_render_property
  • papi_require_text
  • papi_required_html
  • papi_rule
  • papi_santize_data
  • papi_set_page_type_id
  • papi_setup_tabs
  • papi_slugify
  • papi_sort_order
  • papi_tab
  • papi_template
  • papi_template_include
  • papi_to_array
  • papi_to_property_array_slugs
  • papi_translate_keys
  • papi_underscorify
  • papi_update_field
  • papi_update_option
  • papi_update_property_meta_value
  • papi_with
  • papify
  • the_papi_field
  • the_papi_option
  • the_papi_page_type_name
  • Overview
  • Class
  1: <?php
  2: 
  3: /**
  4:  * Base Papi type implementation of meta data
  5:  * for a page type.
  6:  */
  7: class Papi_Page_Type_Meta extends Papi_Core_Type {
  8: 
  9:     /**
 10:      * The meta method to call.
 11:      *
 12:      * @var string
 13:      */
 14:     public $_meta_method = 'page_type';
 15: 
 16:     /**
 17:      * Capabilities list.
 18:      *
 19:      * @var array
 20:      */
 21:     public $capabilities = [];
 22: 
 23:     /**
 24:      * The page types that lives under this page type.
 25:      *
 26:      * @var array
 27:      */
 28:     public $child_types = [];
 29: 
 30:     /**
 31:      * The description of the page type.
 32:      *
 33:      * @var string
 34:      */
 35:     public $description = '';
 36: 
 37:     /**
 38:      * Fill labels.
 39:      *
 40:      * @var bool
 41:      */
 42:     public $fill_labels = false;
 43: 
 44:     /**
 45:      * Labels, the same labels that post type object uses.
 46:      *
 47:      * @var array
 48:      */
 49:     public $labels = [];
 50: 
 51:     /**
 52:      * The name of the page type.
 53:      *
 54:      * @var string
 55:      */
 56:     public $name = '';
 57: 
 58:     /**
 59:      * The post types to register the page type with.
 60:      *
 61:      * @var array
 62:      */
 63:     public $post_type = ['page'];
 64: 
 65:     /**
 66:      * The sort order of the page type.
 67:      *
 68:      * @var int
 69:      */
 70:     public $sort_order = null;
 71: 
 72:     /**
 73:      * Show standard page type or not.
 74:      *
 75:      * @var bool
 76:      */
 77:     public $standard_type = false;
 78: 
 79:     /**
 80:      * The template of the page type.
 81:      *
 82:      * @var string
 83:      */
 84:     public $template = '';
 85: 
 86:     /**
 87:      * The page type thumbnail.
 88:      *
 89:      * @var string
 90:      */
 91:     public $thumbnail = '';
 92: 
 93:     /**
 94:      * The constructor.
 95:      *
 96:      * Load a page type by the file.
 97:      *
 98:      * @param string $file_path
 99:      */
100:     public function __construct( $file_path = '' ) {
101:         parent::__construct( $file_path );
102:         $this->setup_page_type();
103:         $this->setup_post_types();
104:     }
105: 
106:     /**
107:      * Is the user allowed to view this page type?
108:      *
109:      * @return bool
110:      */
111:     public function current_user_is_allowed() {
112:         foreach ( $this->capabilities as $capability ) {
113:             if ( ! current_user_can( $capability ) ) {
114:                 return false;
115:             }
116:         }
117: 
118:         return true;
119:     }
120: 
121:     /**
122:      * Get child page types that lives under the current page type.
123:      *
124:      * @return array
125:      */
126:     public function get_child_types() {
127:         $child_types = [];
128: 
129:         foreach ( papi_to_array( $this->child_types ) as $id ) {
130:             $child_type = papi_get_page_type_by_id( $id );
131: 
132:             if ( papi_is_page_type( $child_type ) ) {
133:                 $child_types[] = $child_type;
134:             }
135:         }
136: 
137:         return $child_types;
138:     }
139: 
140:     /**
141:      * Get labels that should be changed
142:      * when using `fill_labels` option.
143:      *
144:      * @return array
145:      */
146:     public function get_labels() {
147:         if ( ! $this->fill_labels ) {
148:             return $this->labels;
149:         }
150: 
151:         return array_merge( $this->labels, [
152:             'add_new_item' => sprintf(
153:                 '%s %s',
154:                 __( 'Add New', 'papi' ),
155:                 $this->name
156:             ),
157:             'edit_item' => sprintf(
158:                 '%s %s',
159:                 __( 'Edit', 'papi' ),
160:                 $this->name
161:             ),
162:             'view_item' => sprintf(
163:                 '%s %s',
164:                 __( 'View', 'papi' ),
165:                 $this->name
166:             )
167:         ] );
168:     }
169: 
170:     /**
171:      * Get page type image thumbnail.
172:      *
173:      * @return string
174:      */
175:     public function get_thumbnail() {
176:         if ( empty( $this->thumbnail ) ) {
177:             return '';
178:         }
179: 
180:         return $this->thumbnail;
181:     }
182: 
183:     /**
184:      * Check so we have a name on the page type.
185:      *
186:      * @return bool
187:      */
188:     public function has_name() {
189:         return ! empty( $this->name );
190:     }
191: 
192:     /**
193:      * Check if the given post is allowed to use the page type.
194:      *
195:      * @param string $post_type
196:      *
197:      * @return bool
198:      */
199:     public function has_post_type( $post_type ) {
200:         return in_array( $post_type, $this->post_type );
201:     }
202: 
203:     /**
204:      * Setup page type variables.
205:      */
206:     private function setup_page_type() {
207:         if ( is_null( $this->sort_order ) ) {
208:             $this->sort_order = papi_filter_settings_sort_order();
209:         }
210:     }
211: 
212:     /**
213:      * Setup post types array.
214:      */
215:     private function setup_post_types() {
216:         $this->post_type = papi_to_array( $this->post_type );
217: 
218:         // Set a default value to post types array
219:         // if we don't have a array or a empty array.
220:         if ( empty( $this->post_type ) ) {
221:             $this->post_type = ['page'];
222:         }
223:     }
224: }
225: 
API documentation generated by ApiGen