id = $id; $this->title = $title; $this->screen = $screen; $this->context = $context; } public function enqueueScripts () { wp_enqueue_script( 'agp-core-repeater', $this->getAssetUrl('repeater/js/main.js'), array('jquery') ); wp_enqueue_style( 'agp-core-repeater-css', $this->getAssetUrl('repeater/css/style.css') ); } public function enqueueAdminScripts () { wp_enqueue_script( 'agp-core-repeater', $this->getAssetUrl('repeater/js/admin.js'), array('jquery') ); wp_enqueue_style( 'agp-core-repeater-css', $this->getAssetUrl('repeater/css/admin.css') ); } public function getLayoutTemplateAdmin($params = NULL) { if (!empty($this->id)) { return $this->getTemplate($this->layoutTemplateAdminName, $params ); } } public function getHeaderTemplateAdmin($params = NULL) { if (!empty($this->id)) { return $this->getTemplate($this->headerTemplateAdminName, $params ); } } public function getRowTemplateAdmin($params = NULL) { if (!empty($this->id)) { return $this->getTemplate($this->rowTemplateAdminName, $params ); } } public function addMetaboxes() { if (!empty($this->id)) { add_meta_box($this->id, $this->title, array($this, 'viewMetabox') , $this->screen, $this->context); } } public function viewMetabox( $post ) { if (!empty($this->id)) { echo ''; echo $this->getLayoutTemplateAdmin(array('obj' => $this, 'post_id' => $post->ID) ); } } public function saveMetaboxes( $post_id, $post ) { if (!empty($this->id)) { if ( empty( $_POST[$this->id . '_noncename'] ) || !wp_verify_nonce( $_POST[$this->id . '_noncename'], basename(__FILE__) ) || !current_user_can( 'edit_post', $post->ID ) ) { return $post->ID; } $data = $_POST[$this->id . '_data']; if (isset($data[0])) { unset($data[0]); } $meta[$this->id . '_data'] = serialize($data); foreach ($meta as $key => $value) { if( $post->post_type == 'revision' ) return; if ( !$value ) { delete_post_meta($post->ID, $key); } else { update_post_meta($post->ID, $key, $value); } } } } public function getData($post_id) { $data = array(); if (!empty($this->id)) { $data = get_post_meta($post_id, $this->id .'_data', true); if (is_serialized($data)) { $data = unserialize($data); } } return $data; } public function getMaxRow($post_id) { if (!empty($this->id)) { $data = $this->getData($post_id); if (!empty($data) && is_array($data)) { return max(array_keys($data)); } else { return 1; } } } public function getId() { return $this->id; } public function getTitle() { return $this->title; } public function getScreen() { return $this->screen; } public function getContext() { return $this->context; } public function getLayoutTemplateAdminName() { return $this->layoutTemplateAdminName; } public function getHeaderTemplateAdminName() { return $this->headerTemplateAdminName; } public function getRowTemplateAdminName() { return $this->rowTemplateAdminName; } public function setLayoutTemplateAdminName($layoutTemplateAdminName) { $this->layoutTemplateAdminName = $layoutTemplateAdminName; return $this; } public function setHeaderTemplateAdminName($headerTemplateAdminName) { $this->headerTemplateAdminName = $headerTemplateAdminName; return $this; } public function setRowTemplateAdminName($rowTemplateAdminName) { $this->rowTemplateAdminName = $rowTemplateAdminName; return $this; } }