public static function get_post($post = null) { if (null === ($post = get_post($post))) { return null; } if (!in_array($post->post_type, Options::instance()->post_types)) { return null; } return $post; }
public function __toString() { return preg_replace_callback(Options::instance()->pattern, function ($matches) { if ($this->get_partial($key = $this->get_key($matches[1])) && ($partial = get_post($this->get_value($key)))) { if (apply_filters(Skeletons::get('slug') . '\\cache_partials', false)) { return $partial->post_content; } else { return sprintf('[%s %s]', Shortcode::instance(), $partial->ID); } } return $this->get_value($matches[1]); }, $this->file_get_contents($this->skeleton)); }
public function edit_form_after_title($post) { // TODO global static method to check credentials if (!in_array($post->post_type, Options::instance()->post_types)) { return; } $content = Content::get($post); if (!(bool) $content->skeleton) { return; } remove_post_type_support($post->post_type, 'editor'); echo Skeletons::get_template('editor-template.php', array('id' => Skeletons::apply_filters('template\\editor\\id', Skeletons::get('slug') . '\\content'), 'content' => Skeletons::apply_filters('template\\editor', $content))); }
public function syntax_highlight() { foreach (array('highlight', 'prettify') as $value) { $this->input('radio', Skeletons::get('slug') . '\\syntax_highlight\\' . $value, Skeletons::get('slug') . '[syntax_highlight]', $value, ucfirst($value), checked(Options::instance()->syntax_highlight, $value, false)); } }
public function save_post($post_id) { $post = get_post($post_id); if (!in_array($post->post_type, Options::instance()->post_types)) { return; } // nonce is set if (!isset($_REQUEST[Skeletons::get('slug')])) { return; } // nonce is valid if (!check_admin_referer(Skeletons::get('slug'), Skeletons::get('slug'))) { return; } // is autosave if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return; } // user can $post_type = get_post_type_object($post->post_type); if (!current_user_can($post_type->cap->edit_post, $post_id)) { return; } // save $meta = '_' . Skeletons::get('slug'); $skeleton = !empty($_REQUEST[$meta]) ? $_REQUEST[$meta] : null; $response = wp_safe_remote_post(admin_url('admin-ajax.php'), array('cookies' => $_COOKIE, 'body' => array('action' => 'skeletons', 'pk' => $post_id, 'name' => 'skeleton', 'value' => $skeleton))); // TODO handled errors // http://wordpress.stackexchange.com/questions/15354/passing-error-warning-messages-from-a-meta-box-to-admin-notices // if ( is_wp_error( $response ) ) { // $error_message = $response->get_error_message(); // echo "Something went wrong: $error_message"; //} }
public function __toString() { return preg_replace_callback(Options::instance()->pattern, function ($matches) { return $this->vars($matches[1]); }, $this->escape($this->file_get_contents($this->skeleton))); }