Exemple #1
0
 protected function _decorate_content($content)
 {
     if (defined('DOING_AJAX') && DOING_AJAX) {
         return $content;
     }
     $do_processing = apply_filters('upfront-shortcode-enable_in_layout', defined('UPFRONT_DISABLE_LAYOUT_TEXT_SHORTCODES') && UPFRONT_DISABLE_LAYOUT_TEXT_SHORTCODES ? false : true);
     if ($do_processing) {
         $content = do_shortcode($content);
     }
     return Upfront_Codec::get('wordpress')->expand_all($content);
 }
 /**
  * Expands post meta values.
  *
  * @return string Compiled expression
  */
 public function expand_meta_template()
 {
     if (empty($this->_post->ID)) {
         return '';
     }
     $out = $this->_get_template('meta');
     if (empty($out)) {
         return $out;
     }
     return Upfront_Codec::get('postmeta')->expand_all($out, $this->_post);
 }
Exemple #3
0
 public static function get_post_part($type, $options = array(), $tpl = false, $properties = array())
 {
     $options = is_array($options) ? $options : array();
     global $post;
     $parts = array_values(apply_filters('upfront_post_parts', self::$PARTNAMES));
     if (array_search($type, $parts) === FALSE) {
         $unknown = array();
         $unknown[$type] = 'Unknown part';
         return $unknown;
     }
     $part = array('replacements' => array());
     $replacements = array();
     $tpls = array();
     $classes = array();
     if (!sizeof(self::$partTemplates)) {
         self::$partTemplates = self::get_templates();
     }
     if (!$tpl) {
         $tpl = self::$partTemplates[$type];
     }
     switch ($type) {
         case self::$PARTNAMES['AUTHOR']:
             $replacements['%author%'] = get_the_author();
             $replacements['%author_url%'] = get_author_posts_url($post->post_author);
             $meta = self::get_tpl_parameter('author_meta', $tpl);
             foreach ($meta as $key) {
                 $replacements['%author_meta_' . $key . '%'] = get_the_author_meta($key);
             }
             $avatar = self::get_tpl_parameter('avatar', $tpl);
             foreach ($avatar as $size) {
                 $replacements['%avatar_' . $size . '%'] = get_avatar($post->post_author, $size);
             }
             break;
             break;
         case self::$PARTNAMES['CATEGORIES']:
             $replacements['%categories%'] = get_the_category_list();
             break;
         case self::$PARTNAMES['COMMENTS']:
             $replacements['%comments_count%'] = get_comments_number();
             break;
         case self::$PARTNAMES['CONTENTS']:
             $limit = isset($options['limit']) ? $options['limit'] : 1000;
             if (!empty($post->ID) && is_numeric($post->ID)) {
                 ob_start();
                 the_content();
                 $replacements['%contents%'] = ob_get_clean();
                 $replacements['%excerpt%'] = self::excerpt($limit);
             } else {
                 $post = apply_filters('upfront-this_post-unknown_post', $post, $options);
                 $replacements['%contents%'] = apply_filters('the_content', $post->post_content);
                 $replacements['%excerpt%'] = self::excerpt($limit);
             }
             if (!empty($options['excerpt'])) {
                 $replacements['%contents%'] = $replacements['%excerpt%'];
             }
             $offset = isset($options['content_offset']) ? $options['content_offset'] : '';
             $replacements['%offset%'] = $offset;
             break;
         case self::$PARTNAMES['EXCERPT']:
             $limit = isset($options['limit']) ? $options['limit'] : 1000;
             $replacements['%excerpt%'] = self::excerpt($limit);
             //$replacements['%excerpt%'] = $limit; // Why???
             break;
         case self::$PARTNAMES['DATE']:
             $format = isset($options['format']) ? $options['format'] : 'd M Y';
             $replacements['%date%'] = self::_format_post_date($format);
             $replacements['%date_iso%'] = get_the_date('c');
             break;
         case self::$PARTNAMES['UPDATE']:
             $format = isset($options['format']) ? $options['format'] : 'd M Y';
             $replacements['%update%'] = self::_format_post_date($format, "update");
             $replacements['%date_iso%'] = get_the_modified_date('c');
             break;
         case self::$PARTNAMES['IMAGE']:
             if (isset($properties['hide_featured_image']) && $properties['hide_featured_image'] == 1) {
                 $classes[] = 'hide-featured_image';
                 $tpl = '';
                 // empty $tpl so it doesn't output anything
             }
             if (isset($properties['full_featured_image']) && $properties['full_featured_image'] == 1) {
                 $classes[] = 'full-featured_image';
                 $replacements['%image%'] = get_the_post_thumbnail(null, 'full');
             } else {
                 $replacements['%image%'] = upfront_get_edited_post_thumbnail();
             }
             $replacements['%permalink%'] = get_permalink();
             break;
         case self::$PARTNAMES['TAGS']:
             $sep = isset($options['tag_separator']) ? $options['tag_separator'] : ', ';
             $tags = get_the_tag_list('', $sep);
             $replacements['%tags%'] = !empty($tags) ? $tags : '';
             break;
         case self::$PARTNAMES['TITLE']:
             $replacements['%title%'] = get_the_title();
             $replacements['%permalink%'] = get_permalink();
             break;
         case self::$PARTNAMES['AUTHOR_GRAVATAR']:
             $avatar = self::get_tpl_parameter('avatar', $tpl);
             foreach ($avatar as $size) {
                 $_size = str_replace(array("{", "}"), "", $size);
                 $replacements['%avatar_' . $size . '%'] = get_avatar($post->post_author, $_size);
             }
             break;
         case self::$PARTNAMES['META']:
             $metas = Upfront_PostmetaModel::get_all_post_meta_fields(get_the_ID());
             foreach ($metas as $meta) {
                 if (empty($meta['meta_key'])) {
                     continue;
                 }
                 $rpl = Upfront_Codec::get('postmeta')->get_clean_macro($meta['meta_key']);
                 $value = Upfront_Codec::get('postmeta')->get_extracted_value($meta, get_the_ID());
                 $replacements[$rpl] = $value;
             }
             break;
     }
     $replacements = apply_filters('upfront_post_part_replacements', $replacements, $type, $options, $tpl);
     $out = array('replacements' => $replacements, 'tpl' => self::replace($tpl, $replacements), 'classes' => $classes);
     // Cleanup unused meta
     if ($type === self::$PARTNAMES['META'] && !empty($out['tpl'])) {
         $out['tpl'] = Upfront_Codec::get('postmeta')->clear_all($out['tpl']);
     }
     return $out;
 }