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:  * Papi type that handle attachment post type, post data
  5:  * and rendering. All attachment types should extend this
  6:  * class.
  7:  */
  8: class Papi_Attachment_Type extends Papi_Page_Type {
  9: 
 10:     /**
 11:      * The post type to register the type with.
 12:      *
 13:      * @var string
 14:      */
 15:     public $post_type = 'attachment';
 16: 
 17:     /**
 18:      * Get post type.
 19:      *
 20:      * @return string
 21:      */
 22:     public function get_post_type() {
 23:         return $this->post_type[0];
 24:     }
 25: 
 26:     /**
 27:      * Setup filters.
 28:      */
 29:     protected function setup_filters() {
 30:         // Don't add any filters on post.php page.
 31:         if ( ! isset( $_GET['post'] ) ) {
 32:             add_filter( 'attachment_fields_to_edit', [$this, 'edit_attachment'], 10, 2 );
 33:             add_filter( 'attachment_fields_to_save', [$this, 'save_attachment'], 10, 2 );
 34:         }
 35:     }
 36: 
 37:     /**
 38:      * Add attachment fields.
 39:      *
 40:      * @param  array   $form_fields
 41:      * @param  WP_Post $post
 42:      *
 43:      * @return array
 44:      */
 45:     public function edit_attachment( $form_fields, $post ) {
 46:         foreach ( $this->get_boxes() as $box ) {
 47: 
 48:             if ( ! empty( $box[0]['title'] ) ) {
 49:                 $form_fields['papi-media-title-' . uniqid()] = [
 50:                     'label' => '',
 51:                     'input' => 'html',
 52:                     'html'  => '<h4 class="papi-media-title">' . $box[0]['title'] . '</h4>'
 53:                 ];
 54:             }
 55: 
 56:             $properties = isset( $box[1][0]->properties ) ?
 57:                 $box[1][0]->properties : $box[1];
 58: 
 59:             foreach ( $properties as $prop ) {
 60:                 // Raw output is required.
 61:                 $prop->raw = true;
 62: 
 63:                 // Set post id to the property.
 64:                 $prop->set_post_id( $post->ID );
 65: 
 66:                 // Add property to form fields.
 67:                 $form_fields[$prop->get_slug()] = [
 68:                     'label' => $prop->title,
 69:                     'input' => 'html',
 70:                     'helps' => $prop->description,
 71:                     'html'  => papi_maybe_get_callable_value(
 72:                         'papi_render_property',
 73:                         $prop
 74:                     )
 75:                 ];
 76:             }
 77:         }
 78: 
 79:         // Add nonce field.
 80:         $form_fields['papi_meta_nonce'] = [
 81:             'label' => '',
 82:             'input' => 'html',
 83:             'html'  => sprintf(
 84:                 '<input name="papi_meta_nonce" type="hidden" value="%s" />',
 85:                 wp_create_nonce( 'papi_save_data' )
 86:             )
 87:         ];
 88: 
 89:         return $form_fields;
 90:     }
 91: 
 92:     /**
 93:      * Save attachment post data.
 94:      *
 95:      * @param  array $post
 96:      * @param  array $attachment
 97:      *
 98:      * @return array
 99:      */
100:     public function save_attachment( $post, $attachment ) {
101:         update_post_meta( $post['ID'], papi_get_page_type_key(), $this->get_id() );
102:         $handler = new Papi_Admin_Post_Handler();
103:         $handler->save_meta_boxes( $post['ID'], $post );
104:         return $post;
105:     }
106: }
107: 
API documentation generated by ApiGen