File "lib-article.php"
Full Path: /var/www/bvnghean.vn/save_bvnghean.vn/wp-content/themes/magone/includes/lib/lib-article.php
File size: 61.88 KB
MIME-type: text/x-php
Charset: utf-8
<?php
// common field for article boxes
global $MagOne_Article_Common_Fields;
$MagOne_Article_Common_Fields = array(
'title' => array(
'label' => esc_html__('Title', 'magone'),
'description' => esc_html__('Title of Block', 'magone'),
),
'title_url' => array(
'label' => esc_html__('Title URL', 'magone'),
'description' => esc_html__('URL for Title of Block. Leave blank to use default', 'magone'),
'type' => 'url'
),
'title_icon' => array(
'label' => esc_html__('Title FontAwesome Icon Code', 'magone'),
'description' => wp_kses(
sprintf(__('Example: fa-home. <a href="%s" target="_blank">Check Full List of Icon Codes Here</a>', 'magone'), esc_url('https://fortawesome.github.io/Font-Awesome/icons/')),
array(
'a' => array(
'href' => array(),
'target' => array()
),
)
)
),
'title_bg_color' => array(
'label' => esc_html__('Title Background Color', 'magone'),
'description' => esc_html__('Leave blank to use transparent', 'magone'),
'type' => 'color'
),
'title_text_color' => array(
'label' => esc_html__('Title Text Color', 'magone'),
'description' => esc_html__('Leave blank to use default color', 'magone'),
'type' => 'color'
),
'title_border_bottom_color' => array(
'label' => esc_html__('Title Border Bottom Color', 'magone'),
'description' => esc_html__('Leave blank to to hide', 'magone'),
'type' => 'color'
),
'main_color' => array(
'label' => esc_html__('Main Color', 'magone'),
'description' => esc_html__('Select the main color of box', 'magone'),
'type' => 'color',
'default' => ''
),
'thumb_bg_color' => array(
'label' => esc_html__('Thumbnail Background Color', 'magone'),
'description' => esc_html__('Thumbnail background color', 'magone'),
'type' => 'color',
'default' => ''
),
'enable_tab' => array(
'label' => esc_html__('Connect as Tabs', 'magone'),
'description' => esc_html__('All consecutive blocks which were enabled this option will be grouped into a tab', 'magone'),
'type' => 'checkbox',
'default' => false
),
'count' => array(
'label' => esc_html__('Count', 'magone'),
'description' => esc_html__('Number of posts will be loaded', 'magone'),
'type' => 'number',
'default' => 6
),
'orderby' => array(
'label' => esc_html__('Content Orderby', 'magone'),
'type' => 'select',
'choices' => array(
'latest' => esc_html__('Latest', 'magone'),
'random' => esc_html__('Random', 'magone'),
'comment' => esc_html__('Most Commented', 'magone'),
'popular' => esc_html__('Popular (Most Viewed)', 'magone'),
'latest-review' => esc_html__('Latest Reviews', 'magone'),
'random-review' => esc_html__('Random Reviews', 'magone'),
'popular-review' => esc_html__('Popular (Highest) Reviews', 'magone'),
),
'default' => 'latest'
),
'duration' => array(
'label' => esc_html__('Date Range', 'magone'),
'description' => esc_html__('Date range limit to load post from base on publish date', 'magone'),
'type' => 'select',
'choices' => array(
'all' => esc_html__('All Time', 'magone'),
'year' => esc_html__('Last 365 days', 'magone'),
'month' => esc_html__('Last 30 days', 'magone'),
'week' => esc_html__('Last 7 days', 'magone'),
),
'default' => 'all'
),
'show_view_all' => array(
'label' => esc_html__('Show View All', 'magone'),
'description' => esc_html__('Show View All button. Uncheck to hide', 'magone'),
'type' => 'checkbox',
'default' => true
),
'item_title' => array(
'label' => esc_html__('Item Title', 'magone'),
'type' => 'select',
'choices' => array(
'in' => esc_html__('In Thumbnail', 'magone'),
'out' => esc_html__('Out of Thumbnail', 'magone'),
'none' => esc_html__('Not Display', 'magone'),
),
'default' => 'in'
),
'cates' => array(
'label' => esc_html__('Load from Categories', 'magone'),
'description' => esc_html__('The categories that will be loaded posts from. Leave blank to load from all', 'magone'),
'type' => 'categories'
),
'cate_scenario' => array(
'label' => esc_html__('Category Scenario', 'magone'),
'description' => esc_html__('If you choose many categories to load, what relation between them?', 'magone'),
'type' => 'select',
'default' => 'combination',
'choices' => array(
// 'separate' => esc_html__('Separate (will display category list to switch)', 'magone'),
'combination' => esc_html__('Combination (posts has one OR more above categories)', 'magone'),
'intersection' => esc_html__('Intersection (posts has ALL above categories)', 'magone'),
),
),
'exclude_cates' => array(
'label' => esc_html__('Exclude Categories', 'magone'),
'description' => esc_html__('The categories that will not be loaded posts from. Leave blank to load from all', 'magone'),
'type' => 'categories'
),
'authors' => array(
'label' => esc_html__('Load from Authors', 'magone'),
'description' => esc_html__('The authors that will be loaded posts from. Leave blank to load from all', 'magone'),
'type' => 'users'
),
'exclude_authors' => array(
'label' => esc_html__('Exclude Authors', 'magone'),
'description' => esc_html__('The authors that will not be loaded posts from. Leave blank to load from all', 'magone'),
'type' => 'users'
),
'tags' => array(
'label' => esc_html__('Load from Tags', 'magone'),
'description' => esc_html__('The tags that will be loaded posts from. Leave blank to load from all', 'magone'),
'type' => 'tags'
),
'ignore_sticky_posts' => array(
'label' => esc_html__('Ignore Sticky Posts', 'magone'),
'description' => esc_html__('Do not move sticky posts to the start of the set', 'magone'),
'type' => 'checkbox',
'default' => true
),
'exclude_loaded_posts' => array(
'label' => esc_html__('Exclude Loaded Posts', 'magone'),
'description' => esc_html__('Do not get the loaded posts from previous blocks', 'magone'),
'type' => 'checkbox',
'default' => false
),
'show_comment' => array(
'label' => esc_html__('Show Comment', 'magone'),
'description' => esc_html__('Show comment number. Uncheck to hide', 'magone'),
'type' => 'checkbox',
'default' => true
),
'show_readmore' => array(
'label' => esc_html__('Show Read More', 'magone'),
'description' => esc_html__('Show readmore link. Uncheck to hide', 'magone'),
'type' => 'checkbox',
'default' => true
),
'show_author' => array(
'label' => esc_html__('Show Author', 'magone'),
'description' => esc_html__('Show / hide author name in item detail', 'magone'),
'type' => 'select',
'default' => 'icon',
'choices' => array(
'none' => esc_html__('Not show', 'magone'),
'name' => esc_html__('Show name only', 'magone'),
'icon' => esc_html__('Show name with icon', 'magone'),
'avatar' => esc_html__('Show name with avatar', 'magone')
),
),
'show_date' => array(
'label' => esc_html__('Show Date', 'magone'),
'description' => esc_html__('Show / hide date / time in item detail. The format will follow the site date time format', 'magone'),
'type' => 'select',
'default' => 'date',
'choices' => array(
'none' => esc_html__('Not Show', 'magone'),
'full' => esc_html__('Date and Time', 'magone'),
'date' => esc_html__('Only Date', 'magone'),
'time' => esc_html__('Only Time', 'magone'),
'short' => esc_html__('Short Date Time', 'magone'),
'pretty' => esc_html__('Pretty Date Time', 'magone')
)
),
'meta_item_order' => array(
'label' => esc_html__('Meta Item Order', 'magone'),
'description' => esc_html__('Pick order for meta items: comment, date, author', 'magone'),
'type' => 'select',
'default' => 'a_c_d',
'choices' => array(
'c_d_a' => esc_html__('Comment - Date - Author', 'magone'),
'c_a_d' => esc_html__('Comment - Author - Date', 'magone'),
'a_c_d' => esc_html__('Author - Comment - Date', 'magone'),
'a_d_c' => esc_html__('Author - Date - Comment', 'magone'),
'd_a_c' => esc_html__('Date - Author - Comment', 'magone'),
'd_c_a' => esc_html__('Date - Comment - Author', 'magone'),
)
),
'show_format_icon' => array(
'label' => esc_html__('Show Format Icon', 'magone'),
'description' => esc_html__('Show format icon when mouse hover an item of box', 'magone'),
'type' => 'checkbox',
'default' => false
),
'show_review_score' => array(
'label' => esc_html__('Show Review Score', 'magone'),
'description' => esc_html__('Show review score if have', 'magone'),
'type' => 'checkbox',
'default' => false
),
'show_view_count' => array(
'label' => esc_html__('Show View Count', 'magone'),
'description' => esc_html__('Show view count', 'magone'),
'type' => 'checkbox',
'default' => false
),
'number_cates' => array(
'label' => esc_html__('Number Categories', 'magone'),
'description' => esc_html__('Number categories name will be displayed in each item. Set to 0 to hide', 'magone'),
'type' => 'range',
'max' => 4,
'default' => 1
),
'snippet_length' => array(
'label' => esc_html__('Snippet Length', 'magone'),
'description' => esc_html__('Snippet / excerpt length. Input 0 to hide', 'magone'),
'type' => 'range',
'max' => 500,
'default' => 150
),
'thumbnail_height' => array(
'label' => esc_html__('Thumbnail Height', 'magone'),
'description' => esc_html__('Thumbnail image height. Set to 0 and the box will show image as natural height without cropping', 'magone'),
'type' => 'range',
'max' => 800,
'default' => 150
),
'pagination' => array(
'label' => esc_html__('Pagination', 'magone'),
'description' => esc_html__('Will not show if you did not ignore sticky posts', 'magone'),
'type' => 'select',
'choices' => array(
'' => esc_html__('None', 'magone'),
'number' => esc_html__('Number', 'magone'),
'loadmore' => esc_html__('Loadmore', 'magone'),
'nextprev' => esc_html__('Next / Previous', 'magone')
),
'default' => '',
),
'rainbow_thumb_bg' => array(
'label' => esc_html__('Show Rainbow Thumbnail Background Color', 'magone'),
'description' => esc_html__('Regardless the Thumbnail Background Color option, just using random colors instead', 'magone'),
'type' => 'checkbox',
'default' => false
),
);
global $MagOne_Article_Fields;
$MagOne_Article_Fields = array();
// slider
$MagOne_Article_Fields['slider'] = $MagOne_Article_Common_Fields;
$MagOne_Article_Fields['slider']['number_cates']['default'] = 0;
$MagOne_Article_Fields['slider']['snippet_length']['default'] = 0;
$MagOne_Article_Fields['slider']['show_nav'] = array(
'label' => esc_html__('Show Navigate Buttons', 'magone'),
'description' => esc_html__('The arrow buttons which allow user navigate slides', 'magone'),
'type' => 'checkbox',
'default' => true
);
$MagOne_Article_Fields['slider']['show_dots'] = array(
'label' => esc_html__('Show Dot Buttons', 'magone'),
'description' => esc_html__('The dot buttons which allow user navigate slides', 'magone'),
'type' => 'checkbox',
'default' => true
);
$MagOne_Article_Fields['slider']['speed'] = array(
'label' => esc_html__('Speed', 'magone'),
'description' => esc_html__('The animate speed in miliseconds', 'magone'),
'type' => 'number',
'default' => 5000
);
unset($MagOne_Article_Fields['slider']['rainbow_thumb_bg']);
unset($MagOne_Article_Fields['slider']['pagination']);
unset($MagOne_Article_Fields['slider']['item_title']);
$MagOne_Article_Fields['slider']['thumbnail_height']['default'] = 400;
$MagOne_Article_Fields['slider']['thumbnail_height']['min'] = 50;
$MagOne_Article_Fields['slider']['thumbnail_height']['description'] = esc_html__('Thumbnail Image Height. If the image not fit in thumbnail window, it will be cropped', 'magone');
// carousel
$MagOne_Article_Fields['carousel'] = $MagOne_Article_Fields['slider'];
$MagOne_Article_Fields['carousel']['column'] = array(
'label' => esc_html__('Number Column', 'magone'),
'description' => esc_html__('Number column of carousel', 'magone'),
'type' => 'range',
'min' => 1,
'max' => 10,
'default' => 2
);
$MagOne_Article_Fields['carousel']['thumbnail_height']['default'] = 215;
unset($MagOne_Article_Fields['carousel']['snippet_length']);
unset($MagOne_Article_Fields['carousel']['item_title']);
// ticker
$MagOne_Article_Fields['ticker'] = $MagOne_Article_Fields['carousel'];
$MagOne_Article_Fields['ticker']['thumbnail_height']['default'] = 50;
$MagOne_Article_Fields['ticker']['column']['default'] = 4;
unset($MagOne_Article_Fields['ticker']['show_dots']);
unset($MagOne_Article_Fields['ticker']['item_title']);
unset($MagOne_Article_Fields['ticker']['meta_item_order']);
unset($MagOne_Article_Fields['ticker']['show_comment']);
unset($MagOne_Article_Fields['ticker']['show_readmore']);
unset($MagOne_Article_Fields['ticker']['show_author']);
unset($MagOne_Article_Fields['ticker']['show_date']);
unset($MagOne_Article_Fields['ticker']['show_view_count']);
// sticky
$MagOne_Article_Fields['sticky'] = $MagOne_Article_Common_Fields;
$MagOne_Article_Fields['sticky']['thumbnail_height']['default'] = 310;
$MagOne_Article_Fields['sticky']['count']['default'] = 4;
unset($MagOne_Article_Fields['sticky']['pagination']);
// complex
$MagOne_Article_Fields['complex'] = $MagOne_Article_Common_Fields;
$MagOne_Article_Fields['complex']['thumbnail_height']['default'] = 189;
$MagOne_Article_Fields['complex']['count']['default'] = 4;
unset($MagOne_Article_Fields['complex']['pagination']);
// one
$MagOne_Article_Fields['one'] = $MagOne_Article_Common_Fields;
$MagOne_Article_Fields['one']['thumbnail_height']['default'] = 370;
// two
$MagOne_Article_Fields['two'] = $MagOne_Article_Common_Fields;
$MagOne_Article_Fields['two']['thumbnail_height']['default'] = 300;
$MagOne_Article_Fields['two']['no_spacing'] = array(
'label' => esc_html__('No Spacing', 'magone'),
'description' => esc_html__('Disable Spacing Between Items', 'magone'),
'type' => 'checkbox',
'default' => false
);
// three
$MagOne_Article_Fields['three'] = $MagOne_Article_Common_Fields;
$MagOne_Article_Fields['three']['no_spacing'] = array(
'label' => esc_html__('No Spacing', 'magone'),
'description' => esc_html__('Disable Spacing Between Items', 'magone'),
'type' => 'checkbox',
'default' => false
);
// blogging
$MagOne_Article_Fields['blogging'] = $MagOne_Article_Common_Fields;
$MagOne_Article_Fields['blogging']['thumbnail_height']['default'] = 180;
unset($MagOne_Article_Fields['blogging']['item_title']);
// simple-one
$MagOne_Article_Fields['simple-one'] = $MagOne_Article_Common_Fields;
$MagOne_Article_Fields['simple-one']['thumbnail_height']['default'] = 200;
unset($MagOne_Article_Fields['simple-one']['pagination']);
// list
$MagOne_Article_Fields['list'] = $MagOne_Article_Common_Fields;
unset($MagOne_Article_Fields['list']['thumbnail_height']);
unset($MagOne_Article_Fields['list']['snippet_length']);
unset($MagOne_Article_Fields['list']['number_cates']);
unset($MagOne_Article_Fields['list']['thumb_bg_color']);
unset($MagOne_Article_Fields['list']['rainbow_thumb_bg']);
unset($MagOne_Article_Fields['list']['show_format_icon']);
unset($MagOne_Article_Fields['list']['item_title']);
$MagOne_Article_Fields['list']['show_index'] = array(
'label' => esc_html__('Show Index', 'magone'),
'description' => esc_html__('Show index number before each item', 'magone'),
'type' => 'checkbox',
'default' => false
);
// grid
$MagOne_Article_Fields['grid'] = $MagOne_Article_Common_Fields;
$MagOne_Article_Fields['grid']['count']['default'] = 4;
$MagOne_Article_Fields['grid']['thumbnail_height']['default'] = 400;
$MagOne_Article_Fields['grid']['number_cates']['default'] = 0;
$MagOne_Article_Fields['grid']['show_author']['default'] = '';
$MagOne_Article_Fields['grid']['show_comment']['default'] = '';
$MagOne_Article_Fields['grid']['show_date']['default'] = '';
$MagOne_Article_Fields['grid']['snippet_length']['default'] = 0;
$MagOne_Article_Fields['grid']['show_readmore']['default'] = '';
unset($MagOne_Article_Fields['grid']['item_title']);
global $Rainbow_Colors;
$Rainbow_Colors = array('#292484,#DC4225', '#81AF59,#A83279', '#417711,#DC4225', '#E0BE00,#FD340F', '#D38312,#002F4B', '#A83279,#292484', '#002F4B,#417711');
// use this class inside LOOP only
class MagOne_Article_Item {
var $id;
var $link;
var $title;
var $title_attr;
var $date;
var $time;
var $format;
var $args;
var $has_thumbnail;
var $author_name;
/* THIS FUNCTION RUN WHEN CREATE CLASS VARIABLE
* we will use this to get some basic thing that will be use in every methods
*/
function __construct($args = array()) {
$this->id = get_the_ID();
$this->link = get_permalink();
$this->title = get_the_title();
$this->title_attr = esc_attr($this->title);
$this->date = get_the_date();
$this->time = get_the_time();
$this->format = get_post_format();
$this->args = $args;
$this->has_thumbnail = magone_get_post_img_src();
// remake arguments
if (!isset($this->args['show_date']) || !$this->args['show_date'] || $this->args['show_date'] == 'none') {
$this->args['show_date'] = false;
}
if (!isset($this->args['show_author']) || !$this->args['show_author'] || $this->args['show_author'] == 'none') {
$this->args['show_author'] = false;
}
if (!isset($this->args['meta_item_order'])) {
$this->args['meta_item_order'] = 'a-c-d';
}
$this->args['show_review_score'] = (isset($this->args['show_review_score']) && $this->args['show_review_score']);
$this->args['show_view_count'] = (isset($this->args['show_view_count']) && $this->args['show_view_count']);
$this->args['show_comment'] = (isset($this->args['show_comment']) && $this->args['show_comment'] && comments_open());
$this->args['show_meta'] = ($this->args['show_date'] || $this->args['show_author'] || $this->args['show_comment']) || $this->args['show_view_count'];
$this->args['show_format_icon'] = (isset($this->args['show_format_icon']) && $this->args['show_format_icon']);
if (!isset($this->args['snippet_length']) || !is_numeric($this->args['snippet_length'])) {
$this->args['snippet_length'] = 150;
}
$this->args['snippet_length'] = (int) $this->args['snippet_length'];
$this->args['show_readmore'] = (!empty($this->args['show_readmore']));
}
function snippet($length = -1, $wrap = 'div', $hellip = '[...]') {
if ($length = -1) {
$length = 150;
if (isset($this->args['snippet_length']) && is_numeric($this->args['snippet_length'])) {
$length = (int) $this->args['snippet_length'];
}
}
if ($length == 0) {
return '';
}
$hellip = apply_filters('magone_article_item_snippet_hellip', $hellip);
return '<'.$wrap.' class="item-snippet">'. esc_html( magone_get_the_snippet( $length, $hellip ) ) . '</'.$wrap.'>';
}
function format_icon($format = '') {
$ret = '';
if ($format == '') {
$format = $this->format;
}
$ret .= ' <i class="fa post-format-icon fa-';
switch ($format) {
case 'aside':
$ret .= 'plus-circle';
break;
case 'gallery':
$ret .= 'picture-o';
break;
case 'link':
$ret .= 'link';
break;
case 'image':
$ret .= 'camera';
break;
case 'quote':
$ret .= 'quote-left';
break;
case 'status':
$ret .= 'send-o';
break;
case 'video':
$ret .= 'film';
break;
case 'audio':
$ret .= 'music';
break;
case 'chat':
$ret .= 'commenting';
break;
default:
// standard format
$ret .= 'newspaper-o';
break;
}
$ret .= '"></i>';
return $ret;
}
/* size: thumbnail/medium/large/full, natural_thumbnail/medium/large/full
* link_wrap: true mean wrap by link, false mean image only
* format_icon: true: add post format icon, false: not add.
*/
function thumbnail($size = 'thumbnail', $inner = false, $default = true) {
$natural = false;
if (strpos($size, 'natural-') !== false) {
$size = str_replace('natural-', '', $size);
$natural = true;
}
$style = '';
if (isset($this->args['thumbnail_height']) && $this->args['thumbnail_height'] &&
is_numeric($this->args['thumbnail_height'])) {
$style = 'sty'.'le="height: '.$this->args['thumbnail_height'].'px"';
}
if (magone_is_gpsi()) {
$size = 'thumbnail';
}
// fix size of thumbnail to full from version 2.6
// optimizer will work to display rigth image
$size = 'full';
$thumbnail = magone_get_post_image(
$this->id,
$size,
array(
'alt' => $this->title_attr,
'title' => $this->title_attr
),
$default
);
if (!$thumbnail) {
if ($default) {
$thumbnail = '<img src="'.esc_url(get_theme_mod('default_post_thumbnail')).'" alt="'.esc_attr($this->title_attr).'" title="'.esc_attr($this->title_attr).'"/>';
} else {
return '';
}
}
$ret = '<a '.$style.' href="'.esc_url($this->link).'" class="thumbnail '.($natural ? 'natural' : 'item').'-thumbnail">';
$ret .= $thumbnail;
if ($inner && $this->args['show_format_icon']) {
$ret .= '<span class="item-icon"><span class="item-icon-inner">'.$this->format_icon().'</span></span>';
}
// // thumbnail background
if (isset($this->args['rainbow_thumb_bg']) && ($this->args['rainbow_thumb_bg'])) {
global $Rainbow_Colors;
$color = $Rainbow_Colors[rand ( 0 , count($Rainbow_Colors) -1)];
$colors = explode(',', $color);
$first_color = $colors[0];
$style = 'sty'.'le="background-color: '.$first_color.';'.
'background-image: -webkit-linear-gradient(135deg,'.$color.');'.
'background-image: -moz-linear-gradient(135deg,'.$color.');'.
'background-image: -o-linear-gradient(135deg,'.$color.');'.
'background-image: linear-gradient(135deg,'.$color.');"';
$ret .= '<span '.$style.' class="thumbnail-overlay"></span>';
} else if (isset($this->args['thumb_bg_color']) && $this->args['thumb_bg_color'] && $this->args['thumb_bg_color'] != '#000000') {
$ret .= '<span class="thumbnail-overlay"></span>';
}
$ret .= '</a>';
if (!$inner && $this->args['show_format_icon']) {
$ret .= '<a href="'.esc_url($this->link).'" class="item-icon"><span class="item-icon-inner">'.$this->format_icon().'</span></a>';
}
return $ret;
}
// $wrap_tag = blank to unwrap by heading tags
// $class only affect if has tag
function title($wrap_tag = 'h3', $class = 'item-title') {
$ret = '';
if ($wrap_tag && $wrap_tag != 'a') {
$ret .= '<'.$wrap_tag.' class="'.esc_attr($class).'">';
}
$ret .= '<a href="'.esc_url($this->link).'" title="'. esc_attr($this->title_attr).'"';
if ($wrap_tag == '' || $wrap_tag == 'a') {
$ret .= ' class="'.esc_attr($class).'"';
}
$ret .= '>'.
$this->review_score(). wp_kses($this->title, array()) .
'</a>';
if ($wrap_tag && $wrap_tag != 'a') {
$ret .= '</'.$wrap_tag.'>';
}
return $ret;
}
function cate($class = '', $current_cate_id = 1) {
$ret = '';
if (!$this->args['show_category']) {
return $ret;
}
if ($current_cate_id == 1 && is_numeric($this->args['category'])) {
$current_cate_id = (int) $this->args['category'];
}
$class = 'cate '.$class;
$categories = get_the_category();
if($categories){
foreach($categories as $category) {
// to make sure has as least 1 cat
if ($ret == '') {
$ret = '<a class="'.$class.'" href="'.esc_url(get_category_link( $category->term_id )).'" title="' . esc_attr($category->cat_name) . '">' .
esc_html( $category->cat_name) .
'</a>';
}
// if has a cat different with box title cat, pick it
if (((int) $category->term_id) != ((int)$current_cate_id)) {
$ret = '<a class="'.esc_attr($class).'" href="'.esc_url(get_category_link( $category->term_id )).'" title="' . esc_attr($category->cat_name) . '">' .
esc_html( $category->cat_name ) .
'</a>';
break;
}
}
}
if (!$ret) {
$ret = $backup_ret;
}
return $ret;
}
function cates($cate_class = 'cate-item') {
$ret = '';
if (!isset($this->args['number_cates'])) {
return '';
}
if (!$this->args['number_cates']) {
return '';
}
if (!is_numeric($this->args['number_cates'])) {
return '';
}
$cate_count = (int) $this->args['number_cates'];
$categories = get_the_category();
if (empty($categories)) {
return $ret;
}
$current_cate_ids = $this->args['current_cate_ids'];
if (!is_array($current_cate_ids)) {
$current_cate_ids = array();
}
// show categories that not in current cates
$count = 0;
for ($i = 0; $i < count($categories) && $count < $cate_count; $i++) {
$cate = $categories[$i];
if (!in_array($cate->term_id, $current_cate_ids)) {
continue;
}
$count++;
if ($ret) {
$ret .= '<span>, </span>';
}
$ret .= '<a href="'.esc_url(get_category_link( $cate->term_id )).'">' .
esc_html( $cate->name ) .
'</a>';
}
// if not enough, add current cate to
if ($count < $cate_count) {
for ($i = 0; $i < count($categories) && $count < $cate_count; $i++) {
$cate = $categories[$i];
if (in_array($cate->term_id, $current_cate_ids)) {
continue;
}
$count++;
if ($ret) {
$ret .= '<span>, </span>';
}
$ret .= '<a href="'.esc_url(get_category_link( $cate->term_id )).'">' .
esc_html( $cate->name ) .
'</a>';
}
}
if ($ret) {
$ret = '<div class="bg item-labels">'.$ret.'</div>';
}
return $ret;
}
function review_score() {
$ret = '';
if (!$this->args['show_review_score']) {
return $ret;
}
$post_id = $this->id;
$post_review_average_scale_score = get_post_meta($post_id, MAGONE_META_KEY_POST_REVIEW_AVERAGE, true);
$post_review_type = get_post_meta($post_id, 'post-review-type', true);
if (!$post_review_average_scale_score || !$post_review_type) {
return $ret;
}
// backward scale
$ret = '<span class="item-review"><i class="color fa fa-';
if ('star' == $post_review_type) {
$post_review_average_score = $post_review_average_scale_score * 5 / 100;
$ret .= 'star';
} else if ('point' == $post_review_type) {
$post_review_average_score = $post_review_average_scale_score * 10 / 100;
$ret .= 'circle';
} else {
$post_review_average_score = $post_review_average_scale_score;
$ret .= 'circle';
}
$ret .= '"></i> <b>'. number_format($post_review_average_score, 1).'</b></span>';
return $ret;
}
function views() {
$ret = '';
if (empty($this->args['show_view_count'])) {
return $ret;
}
$key = MAGONE_META_KEY_VIEWS;
if (get_theme_mod('view_count_key')) {
$key = get_theme_mod('view_count_key');
}
$views = get_post_meta($this->id, $key, true);
if ($views) {
$ret = ' <span class="meta-item meta-item-views"><i class="fa fa-eye"></i> <span>'.$views.'</span></span>';
}
return $ret;
}
function author() {
$ret = '';
if (!$this->args['show_author']) {
return '';
}
$id = get_the_author_meta('ID');
$name = get_the_author_meta( 'display_name' );
$avatar = get_avatar($id, 16, '', sprintf(esc_attr__("%s 's Author avatar", 'magone'), $name));
if ($this->args['show_author'] == 'avatar' && $avatar) {
$ret .= $avatar;// avatar from database
} else if ($this->args['show_author'] == 'icon') {
$ret .= '<i class="fa fa-pencil-square-o"></i>';
}
$ret .= ' <span>' . esc_html( $name ) . '</span>';
return ('<a href="'.esc_url(get_author_posts_url($id)).'" target="_blank" class="meta-item meta-item-author">'.$ret.'</a>');
}
function comments() {
if (!$this->args['show_comment']) {
return '';
}
global $primary_comment_system;
if ('wordpress' != $primary_comment_system) {
add_filter('get_comments_number', 'magone_get_comments_number', 1, 2);
}
$comment_number = get_comments_number();
remove_filter('get_comments_number', 'magone_get_comments_number', 1);
return '<a class="meta-item meta-item-comment-number" href="'.esc_url(get_comments_link()).'"><i class="fa fa-comment-o"></i> <span>' .$comment_number. '</span></a>';
}
/* type: date/short_date/time/date_time
*/
function date_time() {
if (!$this->args['show_date']) {
return '';
}
$ret = '<a class="meta-item meta-item-date" href="'.esc_url($this->link).'"><i class="fa fa-clock-o"></i> <span>';
switch ($this->args['show_date']) {
case 'pretty':
$ret .= sprintf( esc_html__( '%s ago', 'magone' ), human_time_diff( get_the_time( 'U' ), current_time( 'timestamp' ) ) );
break;
case 'short':
if (get_option('date_format')) {
$ret .= get_the_date(str_replace('F', 'M', get_option('date_format')));
}
break;
case 'time':
$ret .= $this->time;
break;
case 'date':
$ret .= $this->date;
break;
default:
$ret .= $this->date.' '.$this->time;
break;
}
$ret .= '</span></a>';
return $ret;
}
function meta() {
$ret = '';
if (!$this->args['show_meta']) {
return '';
}
$ret = explode(',', str_replace(array('_', '-'), ',', $this->args['meta_item_order']));
for ($i = 0; $i < count($ret); $i++) {
if ($ret[$i] == 'a') {
$ret[$i] = $this->author();
} else if ($ret[$i] == 'c') {
$ret[$i] = $this->comments();
} else if ($ret[$i] == 'd') {
$ret[$i] = $this->date_time();
}
}
return ('<div class="meta-items">'. implode('', $ret) . $this->views().'</div>');
}
function readmore() {
if ($this->args['show_readmore']) {
return '<div class="item-readmore-wrapper"><a class="item-readmore" href="'.esc_url($this->link).'#more">'.esc_html__('Read More', 'magone').'</a></div>';
}
return '';
}
function item_class ($i = 0, $extra = '') {
$item_class = 'shad item item-'.$i;
if ($i % 2 == 0) {
$item_class .= ' item-two';
}
if ($i % 3 == 0) {
$item_class .= ' item-three';
}
if ($i % 4 == 0) {
$item_class .= ' item-four';
}
for ($j = 1; $j <= $i; $j++) {
$item_class .= ' than-'.($j-1);
}
return (' class="'.$item_class.$extra.'"');
}
}
// show article boxes
global $MagOne_Article_Box_Loaded_Posts;
$MagOne_Article_Box_Loaded_Posts = array();
function magone_article_box_content($widget_id, $type = '', $atts = array(), $content = '', $cate_ids = array(), $cates = array()) {
$atts['current_cate_ids'] = $cate_ids;
if ($widget_id != 'magone-archive-blog-rolls') {
$query_args = array();
global $MagOne_Article_Box_Loaded_Posts;
// Preparing query arguments to load
$query_args['post_type'] = 'post';
$query_args['post_status'] = 'publish';
$query_args['posts_per_page'] = (int) $atts['count'];
if (isset($atts['paged'])) {
$query_args['paged'] = (int) $atts['paged'];
}
if ($atts['ignore_sticky_posts']) {
$query_args['ignore_sticky_posts'] = true;
}
if ($widget_id != 'ajax') {
if ($atts['exclude_loaded_posts'] && count($MagOne_Article_Box_Loaded_Posts)) {
$query_args['post__not_in'] = $MagOne_Article_Box_Loaded_Posts;
}
} else {
if ($atts['exclude_loaded_posts'] && isset($atts['post__not_in'])) {
$query_args['post__not_in'] = $atts['post__not_in'];
}
}
/* arguments for categories */
if (count($cate_ids)) {
if ($atts['cate_scenario'] == 'combination') {
$query_args['category__in'] = $cate_ids;
} else if ($atts['cate_scenario'] == 'intersection') {
$query_args['category__and'] = $cate_ids;
} else {
$query_args['cat'] = $cate_ids[0];
}
}
if ($atts['exclude_cates']) {
if (is_string($atts['exclude_cates'])) {
$atts['exclude_cates'] = explode(',', $atts['exclude_cates']);
foreach ($atts['exclude_cates'] as $key => $value) {
$atts['exclude_cates'][$key] = (int) $value;
}
}
$query_args['category__not_in'] = $atts['exclude_cates'];
}
$view_meta_key = get_theme_mod('view_count_meta_key_name', MAGONE_META_KEY_VIEWS);
if ('popular' == $atts['orderby']) {
$query_args['meta_key'] = $view_meta_key;
$query_args['orderby'] = 'meta_value_num';
}
elseif ('comment' == $atts['orderby']) {
$query_args['orderby'] = 'comment_count';
}
elseif ('random' == $atts['orderby']) {
$query_args['orderby'] = 'rand';
}
elseif ('latest-review' == $atts['orderby']) {
$query_args['meta_key'] = MAGONE_META_KEY_POST_REVIEW_AVERAGE;
}
elseif ('random-review' == $atts['orderby']) {
$query_args['meta_key'] = MAGONE_META_KEY_POST_REVIEW_AVERAGE;
$query_args['orderby'] = 'rand';
}
elseif ('popular-review' == $atts['orderby']) {
$query_args['meta_key'] = MAGONE_META_KEY_POST_REVIEW_AVERAGE;
$query_args['orderby'] = 'meta_value_num';
}
if ($atts['tags']) {
if (is_string($atts['tags'])) {
$atts['tags'] = explode(',', $atts['tags']);
}
$query_args['tag__in'] = $atts['tags'];
}
if ($atts['authors']) {
if (is_string($atts['authors'])) {
$atts['authors'] = explode(',', $atts['authors']);
}
$query_args['author__in'] = $atts['authors'];
}
if ($atts['exclude_authors']) {
if (is_string($atts['exclude_authors'])) {
$atts['exclude_authors'] = explode(',', $atts['exclude_authors']);
}
$query_args['author__not_in'] = $atts['exclude_authors'];
}
// since 3.3
if (isset($atts['duration'])) {
if ('year' == $atts['duration']) {//1 year ago
$query_args['date_query'] = array(
array(
'column' => 'post_date_gmt',
'after' => '1 year ago',
)
);
} else if ('month' == $atts['duration']) {//1 month ago
$query_args['date_query'] = array(
array(
'column' => 'post_date_gmt',
'after' => '1 month ago',
)
);
} else if ('week' == $atts['duration']) {//1 week ago
$query_args['date_query'] = array(
array(
'column' => 'post_date_gmt',
'after' => '1 week ago',
)
);
}
}
// loading entries
$entries = new WP_Query( $query_args );
}
// if this is archive page, use global query
else {
global $wp_query;
$entries = $wp_query;
}
if ($widget_id != 'ajax' && isset($atts['pagination']) && $atts['pagination']) {
$atts['max_num_pages'] = $entries->max_num_pages;
$atts['found_posts'] = $entries->found_posts;
if ($atts['exclude_loaded_posts'] && count($MagOne_Article_Box_Loaded_Posts)) {
$atts['post__not_in'] = $MagOne_Article_Box_Loaded_Posts;
}
wp_localize_script( 'magone-main', 'Atts_'.$widget_id, $atts);
}
$entry_length = 0;
if (isset($entries->posts) && is_array($entries->posts)) {
$entry_length = count($entries->posts);
}
// widget content
$ret = '';
$ret_0 = '';
$ret_1 = '';
$ret_2 = '';
$ret_3 = '';
$page_total = 1;
$page_first = $entry_length;
$page_other = 0;
$ret_mobile = '';
if ($type == 'grid') {
// find page information for GRID widget
if ($entry_length > 5) {
$page_total = ceil($entry_length / 5);
for ($page_other = 5; $page_other >= 1; $page_other-=1) { // use this if want other pages always crowder than first page
$page_first = $entry_length - ($page_total - 1) * $page_other;
if (abs($page_first - $page_other) <= 2) {
break;
}
}
}
if ($page_other > 5) {
$page_other = 5;
$page_first = $entry_length - $page_total * $page_other;
}
}
if ( ! isset( $atts['item_title'] ) || ! $atts['item_title'] ) {
$atts['item_title'] = 'in';
}
// fill widget content with items
$i = 0;
if ($entries->have_posts()) :
while ( $entries->have_posts() ) : $entries->the_post();
$e = new MagOne_Article_Item($atts);
global $MagOne_Article_Box_Loaded_Posts;
if ($MagOne_Article_Box_Loaded_Posts == null) {
$MagOne_Article_Box_Loaded_Posts = array();
}
if (is_array($MagOne_Article_Box_Loaded_Posts)) {
array_push($MagOne_Article_Box_Loaded_Posts, $e->id);
}
$thumb_size = 'full';
switch ($type) {
case 'slider':
$slider_item = '<div class="item slider-item slider-item-'.$i.'"><div class="slider-item-inner">'
. $e->thumbnail('full')
. '<div class="slider-item-content">'
. $e->cates()
. $e->meta()
. $e->title();
if ($e->args['snippet_length'] || $e->args['show_readmore']) {
$slider_item .= '<div class="slider-item-sub">'
. $e->snippet(-1, 'span')
. $e->readmore()
. '</div>';
}
$slider_item .= ''
. '</div>' /*slider-item-content*/
. '</div></div>';/* slide-item and inner */
if ( is_rtl() ) {
$ret = $slider_item . $ret;
}
else {
$ret .= $slider_item;
}
break;
case 'sticky':
if ($i != 1 && $i != 2 && $i != 3 && isset($e->args['thumbnail_height']) && ($e->args['thumbnail_height'] == 'auto' || $e->args['thumbnail_height'] == 0)) {
$thumb_size = 'natural-medium';
}
if ($i == 4) {
$ret .= '<div class="clear"></div>';
}
$ret .= '<div '.$e->item_class($i, ($i >= 4)?' item-extra':'').'>'
. '<div class="item-main">'
. $e->thumbnail($thumb_size)
. '<div class="item-content'. ( $atts['item_title'] == 'in' ? ' gradident' : '' ) . '">'
. $e->cates()
. ( $atts['item_title'] == 'in' ? $e->title() : '' )
. '</div>'
. '</div>';
if ( $i == 0 &&
( $e->args['snippet_length'] ||
$e->args['show_meta']
) ||
$atts['item_title'] == 'out'
) {
$ret .= '<div class="item-sub bg">' .
( $atts['item_title'] == 'out' ? $e->title() : '' ) .
( $i == 0 ? $e->snippet() : '' ).
( $i == 0 ? $e->meta() : '' ) .
'</div>';
}
$ret .= '</div>';
break;
case 'complex':
if ($i == 0 && isset($e->args['thumbnail_height']) && ($e->args['thumbnail_height'] == 'auto' || $e->args['thumbnail_height'] == 0)) {
$thumb_size = 'natural-medium';
}
if ($i % 2 == 0 && $i >= 4) {
$ret .= '<div class="clear"></div>';
}
$ret .= '<div '.$e->item_class($i, ($i >= 4)?' item-extra':'').'>'
. '<div class="item-main">'
. ($i == 0? $e->thumbnail($thumb_size) : '')
. '<div class="item-content'. ( 0 == $i && $atts['item_title'] == 'in' ?' gradient':'').'">'
. $e->cates()
. ( $i || 'in' == $atts['item_title'] ? $e->title() : '' )
. '</div>'
. '</div>';
if ($i == 0 && ($e->args['snippet_length'] || $e->args['show_meta'] || 'out' == $atts['item_title'])) {
$ret .= '<div class="item-sub">' .
( 'out' == $atts['item_title'] ? $e->title() : '' ) .
$e->snippet() . $e->readmore(). $e->meta() . '</div>';
}
$ret .= '</div>';
break;
case 'simple-one':
if (isset($e->args['thumbnail_height']) && ($e->args['thumbnail_height'] == 'auto' || $e->args['thumbnail_height'] == '0')) {
$thumb_size = 'natural-medium';
}
$ret .= '<div '.$e->item_class($i, $i>0?' item-extra': '').'>'
. '<div class="item-main">'
. ($i==0?$e->thumbnail($thumb_size):'')
. '<div class="item-content'. ( 0 == $i && $atts['item_title'] == 'in' ?' gradient':'').'">'
. $e->cates()
. ( $i || 'in' == $atts['item_title'] ? $e->title() : '' )
. '</div>'
. '</div>';
if ($i == 0 && ($e->args['snippet_length'] || $e->args['show_meta'] || 'out' == $atts['item_title'])) {
$ret .= '<div class="item-sub">'
. ( 'out' == $atts['item_title'] ? $e->title() : '' )
. $e->snippet() . $e->readmore() . $e->meta()
. '</div>'
. '<div class="clear"></div>';
}
$ret .= '</div>';// end item
break;
case 'carousel':
$carousel_item = '<div class="item carousel-item carousel-item-' . $i . '"><div class="carousel-item-inner">'
. $e->thumbnail('full')
. '<div class="carousel-item-content">'
. $e->cates()
. $e->title()
. $e->meta()
. '</div>' /*carousel-item-content*/
. '</div></div>';/* carousel-item and inner */
if ( is_rtl() ) {
$ret = $carousel_item . $ret;
}
else {
$ret .= $carousel_item;
}
break;
case 'blogging':
$e->has_thumbnail = magone_get_post_img_src( $e->id, 'thumbnail' );
$thumb_size = 'full';
if ($i == 0 && isset($e->args['thumbnail_height']) && ($e->args['thumbnail_height'] == 'auto' || $e->args['thumbnail_height'] == 0)) {
$thumb_size = 'natural-medium';
}
$ret .= '<div '.$e->item_class($i, (!$e->has_thumbnail)?' no-thumbnail': '').'>'
. (($e->has_thumbnail)? $e->thumbnail($thumb_size, true):'')
. '<div class="item-content">'
. $e->cates()
. $e->title()
. $e->meta()
. '<div class="item-sub">' . $e->snippet() . $e->readmore() . '</div>'
. '<div class="clear"></div>'
. '</div><div class="clear"></div>'/*end item content*/
. '</div>'; // end item
break;
case 'one':
if (isset($e->args['thumbnail_height']) && ($e->args['thumbnail_height'] == 'auto' || $e->args['thumbnail_height'] == 0)) {
$thumb_size = 'natural-full';
}
$ret .= '<div '.$e->item_class($i).'>'
. '<div class="item-main">'
. $e->thumbnail($thumb_size)
. '<div class="item-content'. ( $atts['item_title'] == 'in' ? ' gradident' : '' ) . '">'
. $e->cates()
. ( $atts['item_title'] == 'in' ? $e->title() : '' )
. '</div>'
. '</div>';
if ( $e->args['snippet_length'] ||
$e->args['show_meta'] ||
$e->args['show_readmore'] ||
'out' == $atts['item_title'] ) {
$ret .= '<div class="item-sub">' .
( 'out' == $atts['item_title'] ? $e->title() : '' )
. $e->meta() . $e->snippet() . $e->readmore()
. '</div>'
. '<div class="clear"></div>';
}
$ret .= '</div>';// end item
break;
case 'two':
if (isset($e->args['thumbnail_height']) && ($e->args['thumbnail_height'] == 'auto' || $e->args['thumbnail_height'] == '0')) {
$thumb_size = 'natural-medium';
}
$ret = '<div '.$e->item_class($i).'>'
. '<div class="item-main">'
. $e->thumbnail($thumb_size)
. '<div class="item-content'. ( $atts['item_title'] == 'in' ? ' gradident' : '' ) . '">'
. $e->cates()
. ( $atts['item_title'] == 'in' ? $e->title() : '' )
. '</div>'
. '</div>';
if ( $e->args['snippet_length'] ||
$e->args['show_date'] ||
$e->args['show_comment'] ||
$e->args['show_readmore'] ||
'out' == $atts['item_title'] ) {
$ret .= '<div class="item-sub">' .
( 'out' == $atts['item_title'] ? $e->title() : '' )
. $e->snippet() . $e->readmore() . $e->meta()
. '</div>'
. '<div class="clear"></div>';
}
$ret .= '</div>';// end item
if ($i % 2) {
$ret_2 .= $ret;
} else {
$ret_1 .= $ret;
}
$ret_mobile .= $ret;
$ret_0 .= $ret;
if ($i % 2 == 1) {
$ret_0 .= '<div class="clear"></div>';
}
break;
case 'three':
if ($e->args['thumbnail_height'] == 'auto' || $e->args['thumbnail_height'] == 0) {
$thumb_size = 'natural-medium';
}
$ret = '<div '.$e->item_class($i).'>'
. '<div class="item-main">'
. $e->thumbnail($thumb_size)
. '<div class="item-content'. ( $atts['item_title'] == 'in' ? ' gradident' : '' ) . '">'
. $e->cates()
. ( $atts['item_title'] == 'in' ? $e->title() : '' )
. '</div>'
. '</div>';
if ($e->args['snippet_length'] || $e->args['show_meta'] || $e->args['show_readmore'] || 'out' == $atts['item_title']) {
$ret .= '<div class="item-sub">' . ( 'out' == $atts['item_title'] ? $e->title() : '' ) . $e->snippet() . $e->readmore() . $e->meta() . '</div>';
}
$ret .= '</div>';
if ($i % 3 == 0) {
$ret_1 .= $ret;
} else if ($i % 3 == 1) {
$ret_2 .= $ret;
} else {
$ret_3 .= $ret;
}
$ret_mobile .= $ret;
$ret_0 .= $ret;
if ($i % 3 == 2) {
$ret_0 .= '<div class="clear"></div>';
}
break;
case 'ticker':
if (isset($e->args['thumbnail_height']) && ($e->args['thumbnail_height'] == 'auto' || $e->args['thumbnail_height'] == '0')) {
$thumb_size = 'natural-thumbnail';
}
$ticker_item = '<div class="ticker-item carousel-item-'.$i.'"><div class="ticker-item-inner">'
. $e->thumbnail($thumb_size)
. '<div class="ticker-item-content">'
. $e->cates()
. $e->title()
. '</div>' /*ticker-item-content*/
. '</div><div class="clear"></div></div>';/* ticker-item and inner */
if ( is_rtl() ) {
$ret = $ticker_item . $ret;
}
else {
$ret .= $ticker_item;
}
break;
case 'grid':
$page_current = 0;
if ($i >= $page_first) {
$page_current = ceil(($i + 1 - $page_first) / $page_other);
}
$start_index = 0;
if ($page_current >= 1) {
$start_index = ($page_current - 1) * $page_other + $page_first;
}
$page_layout = ($page_current == 0 ? $page_first : $page_other);
$page_type = ($page_current % 2 ? 'odd' : 'even');
$start_next_sub_index = ($page_type == 'even' ? ($start_index + 1) : ($start_index + $page_layout - 1));
if ($i == $start_index) {
// close previous page and its end sub
if ($i > 0) {
$ret .= '<div class="clear"></div></div><div class="clear"></div></div>';
}
// and open a new page
$ret .= '<div class="grid-page">';
// also open the first sub page
$sub_style = '';
if (isset($e->args['thumbnail_height']) && is_numeric($e->args['thumbnail_height'])) {
$sub_style .= ' sty'.'le="height:'.$e->args['thumbnail_height'].'px"';
}
$ret .= '<div class="grid-sub grid-sub-'.($entry_length == 1? 'full' : ($page_type == 'even' ? 'wide' : 'narrow')).' grid-sub-'.($page_type == 'even' ? 1 : ($page_layout - 1)).'"'.$sub_style.'>';
}
// determine if it's started of next sub-page
$start_sub_index = $start_index;
if ($i == $start_next_sub_index) {
$ret .= '<div class="clear"></div></div>';
// start new sub
$sub_style = '';
if (isset($e->args['thumbnail_height']) && is_numeric($e->args['thumbnail_height'])) {
$sub_style .= ' st'.'yle="height:'.$e->args['thumbnail_height'].'px"';
}
$ret .= '<div class="grid-sub grid-sub-'.($entry_length == 1? 'full' : ($page_type == 'even' ? 'narrow' : 'wide')).' grid-sub-'.($page_type == 'even' ? ($page_layout - 1) : 1).'"'.$sub_style.'>';
}
if ($i >= $start_next_sub_index) {
$start_sub_index = $start_next_sub_index;
}
// add item to grid page
$ret .= '<div class="item grid-item grid-item-'.$i.' grid-sub-item-'.($i - $start_sub_index).'"><div class="grid-item-inner">'
. $e->thumbnail('full')
. '<div class="grid-item-content item-content gradient">'
. $e->cates()
. $e->meta()
. $e->title()
. $e->snippet()
. $e->readmore()
. '</div>' /*grid-item-content*/
. '</div></div>';/* grid-item and inner */
if ($i == $entry_length - 1) {
// close sub-page and last page
$ret .= '<div class="clear"></div></div><div class="clear"></div></div>';
}
break;
case 'list':
$ret .= '<div '.$e->item_class($i, ' table').'>'.
'<div class="tr">'.
($e->args['show_index']? '<div class="td item-index">'.($i+1).'.</div>':'').
'<div class="td">'.
'<h3 class="item-title">'.
($e->args['show_author']? $e->author(). ': ' : '') .
'<a href="'.esc_url($e->link).'"><span class="title-name">'.$e->review_score(). wp_kses($e->title, array()).'</span></a>'.
($e->args['show_comment']? ' <a class="meta-item meta-item-comment-number" href="'.esc_url(get_comments_link()).'"><i class="fa fa-comment-o color"></i> <span class="color">' .get_comments_number(). '</span></a>': ''). $e->views() .
'</h3>'.
($e->args['show_date']? ('<span class="meta-item meta-item-date">'.$e->date_time().'</span>'):'').
'</div>'.
($e->args['show_readmore']?
'<div class="td item-readmore">'.
'<a href="'.esc_url($e->link).'#more"><i class="fa fa-angle-right"></i></a>'.
'</div>':'').
'</div>'.
'</div><div class="clear"></div>';
break;
default:
break;
}
$i++;
if ($widget_id != 'magone-archive-blog-rolls' && $i >= (int) $atts['count']) {
break;
}
endwhile;
// pre-made content
if ($type == 'two') :
if (isset($atts['thumbnail_height']) && !$atts['thumbnail_height']) {
$ret = '<div class="two-col two-col-left col-1">'. $ret_1 . '</div>'
. '<div class="two-col two-col-right col-2">' . $ret_2 . '</div>'
. '<div class="two-col-mobile mobile">'. $ret_mobile . '</div>';
} else {
$ret = $ret_0;
}
endif;
if ($type == 'three') :
if (isset($atts['thumbnail_height']) && !$e->args['thumbnail_height']) {
$ret = '<div class="three-col col-1">'. $ret_1 . '</div>'
. '<div class="three-col col-2">'. $ret_2 . '</div>'
. '<div class="three-col col-3">'. $ret_3 . '</div>'
. '<div class="three-col-mobile mobile">'. $ret_mobile . '</div>';
} else {
$ret = $ret_0;
}
endif;
else:
$ret = esc_html__('Not found any post', 'magone');
endif;
wp_reset_postdata();
return $ret;
}
function magone_article_box_style($widget_id, $type = '', $atts = array(), $content = '') {
$style = '';
$wid = '#'.$widget_id;
if (isset($atts['main_color']) && $atts['main_color'] && $atts['main_color'] != 'false') {
// common style
$style .=
$wid.' a,'.
$wid.' .slider-item .meta-item .fa,'.
$wid.' .color {color: '.$atts['main_color'].'}'.
$wid.' .border,'.
$wid.' a.feed-widget-pagination-button:hover {color: white}'.
$wid.' a.feed-widget-pagination-button.active:hover {color: '.$atts['main_color'].'}'.
$wid.' .bg,'.
$wid.'.box-title h2.widget-title,'.
($type=='slider'? $wid.' .slider-item .item-readmore:hover,': '').
($type=='grid'? $wid.' .grid-item .item-readmore:hover,': '').
$wid.' .owl-dot.active {background: '.$atts['main_color'].'}'.
$wid.'.box-title h2.widget-title a,'.
$wid.' .item-labels a,'.
$wid.' .item-title a,'.
$wid.' .meta-item,'.
$wid.' .feed-widget-labels a'.
($type=='slider'? ', '.$wid.' .slider-item .item-readmore': '').
($type=='grid'? ', '.$wid.' .grid-item .item-readmore': '').
' {color:white}'.
($type=='slider'? $wid.' .slider-item .meta-item .fa {color: '.$atts['main_color'].'}': '').
($type == 'grid' ? $wid.' .grid-item .meta-item .fa {color: '.$atts['main_color'].'}':'').
($type == 'list' ? $wid.'.list .meta-item {color: '.$atts['main_color'].'}':'').
($type == 'two' ? $wid.'.two .meta-items .meta-item {color: #333':'').
($type == 'three' ? $wid.'.three .meta-items .meta-item {color: #000':'').
($type=='complex'? $wid.'.complex .than-0 .item-labels {background: none}': '').
($type=='blogging'? $wid.'.blogging .item-labels {background: none}': '').
($type=='left'? $wid.'.left .item-extra .item-labels {background: none}': '').
($type=='right'? $wid.'.right .item-extra .item-labels {background: none}': '').
($type=='simple-one'? $wid.'.simple-one .item-extra .item-labels {background: none}': '').
($type=='ticker'? $wid.'.ticker .item-labels {background: none}': '').
($type=='complex'? $wid.'.complex .than-0 .item-labels a,'.$wid.'.complex .item-sub .meta-item {color: '.$atts['main_color'].'}': '').
($type=='blogging'? $wid.'.blogging .item-labels a {color: '.$atts['main_color'].'}': '').
($type=='left'? $wid.'.left .item-extra .item-labels a {color: '.$atts['main_color'].'}': '').
($type=='right'? $wid.'.right .item-extra .item-labels a {color: '.$atts['main_color'].'}': '').
($type=='simple-one'? $wid.'.simple-one .item-extra .item-labels a {color: '.$atts['main_color'].'}': '').
($type=='ticker'? $wid.'.ticker .item-labels a {color: '.$atts['main_color'].'}': '').
($type=='complex'? $wid.'.complex .than-0 .item-title a {color: black}': '').
($type=='blogging'? $wid.'.blogging .item-title a {color: black}': '').
($type=='one'? $wid.'.one .meta-item {color: black}': '').
($type=='left'? $wid.'.left .item-extra .item-title a {color: black}': '').
($type=='right'? $wid.'.right .item-extra .item-title a {color: black}': '').
($type=='simple-one'? $wid.'.simple-one .item-extra .item-title a {color: black}': '').
($type=='ticker'? $wid.'.ticker .item-title a {color: black}': '').
($type == 'list' ? $wid.'.list .item-title a {color: '.$atts['main_color'].'}':'').
($type=='blogging'? $wid.'.blogging .meta-item {color: #666}': '').
($type=='left'? $wid.'.left .item-sub .meta-item {color: #666}': '').
($type=='right'? $wid.'.right .item-sub .meta-item {color: #666}': '').
($type=='simple-one'? $wid.'.simple-one .item-sub .meta-item {color: #666}': '');
}
if (isset($atts['thumb_bg_color']) && $atts['thumb_bg_color'] && $atts['thumb_bg_color'] != '#000000' &&
(!isset($atts['rainbow_thumb_bg']) || !$atts['rainbow_thumb_bg'])) {
$style .= $wid.' .thumbnail-overlay {
background-color: '.$atts['thumb_bg_color'].';
background-image: -webkit-linear-gradient(135deg,'.$atts['thumb_bg_color'].',#000);
background-image: -moz-linear-gradient(135deg,'.$atts['thumb_bg_color'].',#000);
background-image: -o-linear-gradient(135deg,'.$atts['thumb_bg_color'].',#000);
background-image: linear-gradient(135deg,'.$atts['thumb_bg_color'].',#000);
}';
}
if ($style) {
$style = '<sty'.'le type="t'.'ext/c'.'ss" scoped>'.$style.'</style>';
}
return $style;
}
global $widget_id;
$widget_id = 0;
function magone_article_box($type = '', $atts = array(), $content = '', $label_widget_id = '') {
/* included sticky will change behaves of pagination */
if (isset($atts['ignore_sticky_posts']) && !$atts['ignore_sticky_posts']) {
$atts['pagination'] = false;
}
// extract data
global $MagOne_Article_Fields;
if ($type) {
foreach ($MagOne_Article_Fields[$type] as $key => $value) {
if (!isset($atts[$key])) {
if (isset($value['default'])) {
$atts[$key] = $value['default'];
} else {
$atts[$key] = '';
}
}
}
}
$html = '';
$hh_1 = '';
$hh_2 = '';
$hh_3 = '';
if (!$label_widget_id) {
global $widget_id;
$widget_id++;
$label_widget_id = 'Label'.$widget_id;
}
$cate_ids = array();
$cates = array();
if ($atts['cates']) {
if (is_string($atts['cates'])) {
$cate_ids = explode(',', $atts['cates']);
} else if ($atts['cates']) {
$cate_ids = $atts['cates'];
}
if (count($cate_ids)) {
foreach ($cate_ids as $index => $id) {
$cate_ids[$index] = (int) $id;
$cates[$index] = get_category((int) $id);
if (is_object($cates[$index])) {
$cates[$index]->link = get_category_link((int) $id);
}
}
}
}
// create widget header
$title_icon = '';
if ($atts['title_icon']) {
$title_icon = apply_filters('sneeit_get_font_awesome_tag', $atts['title_icon']) .' ';
}
if ($atts['title']) {
$title_style = '';
if (isset($atts['title_border_bottom_color']) && $atts['title_border_bottom_color'] != '' &&
(!isset($atts['title_bg_color']) || $atts['title_border_bottom_color'] != $atts['title_bg_color'])) {
$title_style = 'border-bottom: 2px solid '.$atts['title_border_bottom_color'] . '; margin-bottom: 10px;';
}
$text_color = '';
if (isset($atts['title_text_color']) && $atts['title_text_color'] != '') {
$title_style .= 'color: '.$atts['title_text_color'] . ';';
$text_color = ' styl'.'e="'.$title_style. '"';
}
$hh_1 .= '<h2 class="widget-title feed-widget-title';
if (isset($atts['title_bg_color']) && $atts['title_bg_color'] != '') {
$hh_1 .= ' box-title';
$title_style .= 'background: '.$atts['title_bg_color'] . ';';
}
if ($title_style) {
$title_style = ' styl'.'e="'.$title_style. '"';
}
$hh_1 .= '"'.$title_style.'>';
if (count($cates) == 1) {
// target to first label if has only 1 label
if ($atts['title_url']) {
$hh_1 .= '<a href="'. esc_url($atts['title_url']) .'"'.$text_color.'>'.$title_icon.$atts['title'].'</a>';
} else if ($atts['orderby'] == 'latest' && $atts['tags'] == '' && $atts['authors'] == '') {
$hh_1 .= '<a href="'. esc_url($cates[0]->link) .'"'.$text_color.'>'.$title_icon.$atts['title'].'</a>';
} else {
$hh_1 .= '<span'.$text_color.'>'.$title_icon.$atts['title'].'</span>';
}
if ($atts['show_view_all'] && $atts['orderby'] == 'latest' && $atts['tags'] == '' && $atts['authors'] == '') {
$hh_3 .= '<div class="feed-widget-viewall"><a href="'.esc_url($cates[0]->link).'"><span>'.esc_html__('VIEW ALL', 'magone').'</span> <i class="fa fa-chevron-right"></i></a></div>';
}
} else if (count($cates) == 0) { // leave blank, load all
// target to latest posts if user selected all labels
if ($atts['title_url']) {
$hh_1 .= '<a href="'. esc_url($atts['title_url']) .'"'.$text_color.'>'.$title_icon.$atts['title'].'</a>';
} else if ($atts['orderby'] == 'latest' && $atts['tags'] == '' && $atts['authors'] == '') {
$hh_1 .= '<a href="'. esc_url(get_home_url()).'/?s="'.$text_color.'>'.$title_icon.$atts['title'].'</a>';
} else {
$hh_1 .= '<span'.$text_color.'>'.$title_icon.$atts['title'].'</span>';
}
if ($atts['show_view_all'] && $atts['orderby'] == 'latest' && $atts['tags'] == '' && $atts['authors'] == '') {
$hh_3 .= '<div class="feed-widget-viewall"><a href="'. esc_url(get_home_url()).'/?s=">'.esc_html__('VIEW ALL', 'magone').' <i class="fa fa-chevron-right"></i></a></div>';
}
} else {
// in other case show plain text only
if ($atts['title_url']) {
$hh_1 .= '<a href="'. esc_url($atts['title_url']) .'"'.$text_color.'>'.$title_icon.$atts['title'].'</a>';
} else {
$hh_1 .= '<span'.$text_color.'>'.$title_icon.$atts['title'].'</span>';
}
}
$hh_1 .= '</h2>';
}
// the list of labels (disabling)
if (count($cates) > 1 && 0) {
$hh_2 .= '<div class="feed-widget-labels">';
$hh_2 .= '<ul class="bg">';
for ($i = 0; $i < count($cates); $i++) {
$hh_2 .= '<li><a href="javascript: void(0)" '.(($i==0)?'class="active" ':'').'data-id="'.esc_attr($cate_ids[$i]).'"><span class="check"><i class="fa fa-check"></i></span> '.$cates[$i]->category_nicename.' <span class="down"><i class="fa fa-angle-down"></i></span></a></li>';
}
$hh_2 .= '</ul>';
$hh_2 .= '</div>';
}
if ($hh_1 || $hh_2 || $hh_3) {
$html .= '<div class="feed-widget-header"';
if (!empty($atts['title_border_bottom_color']) && empty($atts['title_bg_color']) && $atts['title_bg_color'] == $atts['title_border_bottom_color']) {
$html .= ' sty'.'le="border-bottom: 2px solid '.$atts['title_border_bottom_color'] . '; margin-bottom: 10px;"';
}
$html .= '>'.$hh_1.$hh_2.$hh_3.'<div class="clear"></div></div>';
}
// widget content
$html .= '<div class="widget-content feed-widget-content widget-content-'.$label_widget_id.'" id="widget-content-'.$label_widget_id.'">';
$html .= magone_article_box_content($label_widget_id, $type, $atts, $content, $cate_ids, $cates);
$html .= '</div><div class="clear"></div>';
// pagination holder
if (isset($atts['pagination']) && $atts['pagination']) {
$html .= '<div class="clear"></div><div class="feed-widget-pagination feed-widget-pagination-'.$atts['pagination'].'" data-widget_id="'.$label_widget_id.'" data-type="'.$type.'"></div><div class="clear"></div>';
}
// data for owl
$ret_data = '';
if ($type == 'slider' || $type == 'carousel' || $type == 'ticker') :
$ret_data .= '<span class="hide widget-data" data-type="'.$type.'">';
if (isset($atts['column']) && is_numeric($atts['column']) && ((int) $atts['column'] >= 1)) {
$ret_data .= '<span class="data-item data-column">'.$atts['column'].'</span>';
}
if (isset($atts['speed']) && is_numeric($atts['speed']) && ((int) $atts['speed'] > 1)) {
$ret_data .= '<span class="data-item data-speed">'.$atts['speed'].'</span>';
}
if (isset($atts['show_dots']) && $atts['show_dots']) {
$ret_data .= '<span class="data-item data-show_dots">'.$atts['show_dots'].'</span>';
}
if (isset($atts['show_nav']) && $atts['show_nav']) {
$ret_data .= '<span class="data-item data-show_nav">'.$atts['show_nav'].'</span>';
}
$ret_data .= '</span>';
endif;
// wrap widget with html
$html = '<div class="widget Label '.
$type.
' label feed '.
(isset($atts['enable_tab']) && $atts['enable_tab']? 'tab ':'').
(isset($atts['padding_thumbnail']) && !$atts['padding_thumbnail']? 'padding-thumb ':'').
(isset($atts['show_index']) && !$atts['show_index']? 'show-index ':'').
(isset($atts['title']) && !$atts['title']? 'no-title ':'has-title ').
(isset($atts['thumbnail_height']) && !$atts['thumbnail_height']? 'auto-height ':'fix-height ').
(isset($atts['no_spacing']) && $atts['no_spacing']? 'no-spacing ':'').
(isset($atts['show_format_icon']) && !$atts['show_format_icon']? 'none-icon ':'').'" id="'.$label_widget_id.'">'.$html.$ret_data.'</div>';
// style to widget
$html .= magone_article_box_style($label_widget_id, $type, $atts, $content);
// add clear bar to protect layout
if ($type == 'left') {
$html = '<div class="clear"></div>' . $html;
} else if ($type == 'right') {
$html .= '<div class="clear"></div>';
} else {
$html = '<div class="clear"></div>' . $html . '<div class="clear"></div>';
}
return $html.$ret_data;
}