Example #1
0
 /**
  * Get content
  *
  * @param object $post
  * @param array  $fargs
  *
  * @return string
  */
 static function _field_content($post, $fargs)
 {
     $dargs = PT_CV_Functions::get_global_variable('dargs');
     // Get other settings
     $oargs = isset($dargs['other-settings']) ? $dargs['other-settings'] : array();
     // Sets up global post data
     setup_postdata($post);
     // Handle the more tag inside content
     do_action(PT_CV_PREFIX_ . 'handle_teaser');
     // Get content class
     $content_class = apply_filters(PT_CV_PREFIX_ . 'field_content_class', PT_CV_PREFIX . 'content');
     // Get content tag (div/p/span...)
     $tag = apply_filters(PT_CV_PREFIX_ . 'field_content_tag', 'div');
     // Get full content/exceprt
     $content = '';
     switch ($fargs['content']['show']) {
         case 'excerpt':
             $length = (int) $fargs['content']['length'];
             $readmore_btn = '';
             $dots = ' ...';
             $readmore_html = apply_filters(PT_CV_PREFIX_ . 'field_excerpt_dots', 1, $fargs) ? $dots : '';
             // Read more button
             if (apply_filters(PT_CV_PREFIX_ . 'field_content_readmore_enable', 1, $fargs['content'])) {
                 // Leverage WordPress translation
                 $default_readmore = ucwords(rtrim(__('Read more...'), '.'));
                 $text = apply_filters(PT_CV_PREFIX_ . 'field_content_readmore_text', $default_readmore, $fargs['content']);
                 $btn_class = apply_filters(PT_CV_PREFIX_ . 'field_content_readmore_class', 'btn btn-success', $fargs);
                 $readmore_btn .= self::_field_href($oargs, $post, $text, PT_CV_PREFIX . 'readmore ' . $btn_class);
                 $readmore_html .= apply_filters(PT_CV_PREFIX_ . 'field_content_readmore_seperated', '<br/>', $fargs) . $readmore_btn;
             }
             // Get excerpt
             if ($length > 0) {
                 $GLOBALS['cv_excerpt_type'] = 'content';
                 // Get manual excerpt, apply filters => modify $GLOBALS[ 'cv_excerpt_type' ] relatively
                 $full_excerpt = apply_filters(PT_CV_PREFIX_ . 'field_content_excerpt', get_the_content(), $fargs, $post);
                 // Limit length
                 if (apply_filters(PT_CV_PREFIX_ . 'trim_excerpt', $GLOBALS['cv_excerpt_type'] == 'content')) {
                     $trimmed_excerpt = PT_CV_Functions::cv_trim_words($full_excerpt, $length);
                     $excerpt = apply_filters(PT_CV_PREFIX_ . 'trim_length_excerpt', $trimmed_excerpt, $full_excerpt, $length);
                 } else {
                     $excerpt = $full_excerpt;
                 }
                 // Append readmore button
                 $hide_readmore = apply_filters(PT_CV_PREFIX_ . 'hide_readmore', false, $excerpt, $full_excerpt, $post);
                 $content = $excerpt . ($hide_readmore ? '' : $readmore_html);
             } else {
                 // Display only readmore button if length <= 0
                 $content = $readmore_btn;
             }
             // Trim period which precedes dots
             $content = str_replace('.' . $dots, $dots, $content);
             break;
         case 'full':
             ob_start();
             the_content();
             $content = ob_get_clean();
             break;
     }
     $content = apply_filters(PT_CV_PREFIX_ . 'field_content_final', $content, $post);
     $html = rtrim($content, '.') ? sprintf('<%1$s class="%2$s">%3$s</%1$s>', $tag, esc_attr($content_class), force_balance_tags($content)) : '';
     return $html;
 }