Current Path : /storage/v11800/affypharma/public_html/wp-content/plugins/auxin-elements/includes/elementor/widgets/ |
Linux v11800 5.3.0-1023-aws #25~18.04.1-Ubuntu SMP Fri Jun 5 15:19:18 UTC 2020 aarch64
|
Current File : /storage/v11800/affypharma/public_html/wp-content/plugins/auxin-elements/includes/elementor/widgets/recent-comments.php |
<?php
namespace Auxin\Plugin\CoreElements\Elementor\Elements;
use Elementor\Plugin;
use Elementor\Widget_Base;
use Elementor\Controls_Manager;
use Elementor\Group_Control_Typography;
use Elementor\Core\Schemes\Typography;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
/**
* Elementor 'RecentComments' widget.
*
* Elementor widget that displays an 'RecentComments' with lightbox.
*
* @since 1.0.0
*/
class RecentComments extends Widget_Base {
/**
* Get widget name.
*
* Retrieve 'RecentComments' widget name.
*
* @since 1.0.0
* @access public
*
* @return string Widget name.
*/
public function get_name() {
return 'aux_recentcomments';
}
/**
* Get widget title.
*
* Retrieve 'RecentComments' widget title.
*
* @since 1.0.0
* @access public
*
* @return string Widget title.
*/
public function get_title() {
return __('Recent Commented Posts', 'auxin-elements' );
}
/**
* Get widget icon.
*
* Retrieve 'RecentComments' widget icon.
*
* @since 1.0.0
* @access public
*
* @return string Widget icon.
*/
public function get_icon() {
return 'eicon-comments auxin-badge';
}
/**
* Get recent comments.
*
* Retrieve 'RecentComments' widget query.
*
* @since 1.0.0
* @access public
*
* @return array Query.
*/
public function get_post_types( $args = array() ) {
// Result variable
$result = array( 'all' => __( 'All Post Types', 'auxin-elements' ) );
// Get all public post types
$get_post_types = get_post_types( array(
'public' => true,
'exclude_from_search' => false
)
);
foreach ( $get_post_types as $key => $value ) {
$result[ $key ] = ucfirst( $value );
}
return $result;
}
/**
* Get widget categories.
*
* Retrieve 'RecentComments' widget icon.
*
* @since 1.0.0
* @access public
*
* @return string Widget icon.
*/
public function get_categories() {
return array( 'auxin-core' );
}
/**
* Register 'RecentComments' widget controls.
*
* Adds different input fields to allow the user to change and customize the widget settings.
*
* @since 1.0.0
* @access protected
*/
protected function register_controls() {
/*-----------------------------------------------------------------------------------*/
/* Content TAB
/*-----------------------------------------------------------------------------------*/
$this->start_controls_section(
'general',
array(
'label' => __('General', 'auxin-elements' ),
)
);
$this->add_control(
'post_types',
array(
'label' => __( 'Post Types', 'auxin-elements' ),
'label_block' => true,
'type' => Controls_Manager::SELECT,
'default' => 0,
'options' => $this->get_post_types()
)
);
$this->add_control(
'number',
array(
'label' => __('Number of comments to show', 'auxin-elements'),
'label_block' => true,
'type' => Controls_Manager::NUMBER,
'default' => '8',
'min' => 1,
'step' => 1
)
);
$this->add_control(
'show_info',
array(
'label' => __('Display info','auxin-elements' ),
'type' => Controls_Manager::SWITCHER,
'label_on' => __( 'On', 'auxin-elements' ),
'label_off' => __( 'Off', 'auxin-elements' ),
'return_value' => 'yes',
'default' => 'yes'
)
);
$this->end_controls_section();
/*-----------------------------------------------------------------------------------*/
/* title_style_section
/*-----------------------------------------------------------------------------------*/
$this->start_controls_section(
'title_style_section',
array(
'label' => __( 'Title', 'auxin-elements' ),
'tab' => Controls_Manager::TAB_STYLE
)
);
$this->start_controls_tabs( 'title_colors' );
$this->start_controls_tab(
'title_color_normal',
array(
'label' => __( 'Normal' , 'auxin-elements' )
)
);
$this->add_control(
'title_color',
array(
'label' => __( 'Color', 'auxin-elements' ),
'type' => Controls_Manager::COLOR,
'selectors' => array(
'{{WRAPPER}} .entry-title a' => 'color: {{VALUE}};',
)
)
);
$this->end_controls_tab();
$this->start_controls_tab(
'title_color_hover',
array(
'label' => __( 'Hover' , 'auxin-elements' )
)
);
$this->add_control(
'title_hover_color',
array(
'label' => __( 'Color', 'auxin-elements' ),
'type' => Controls_Manager::COLOR,
'selectors' => array(
'{{WRAPPER}} .entry-title a:hover' => 'color: {{VALUE}};',
)
)
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_group_control(
Group_Control_Typography::get_type(),
array(
'name' => 'title_typography',
'scheme' => Typography::TYPOGRAPHY_1,
'selector' => '{{WRAPPER}} .entry-title'
)
);
$this->add_responsive_control(
'title_margin_bottom',
array(
'label' => __( 'Bottom space', 'auxin-elements' ),
'type' => Controls_Manager::SLIDER,
'range' => array(
'px' => array(
'max' => 100,
),
),
'selectors' => array(
'{{WRAPPER}} .entry-title' => 'margin-bottom: {{SIZE}}{{UNIT}};',
)
)
);
$this->end_controls_section();
/*-----------------------------------------------------------------------------------*/
/* info_style_section
/*-----------------------------------------------------------------------------------*/
$this->start_controls_section(
'info_style_section',
array(
'label' => __( 'Meta Info', 'auxin-elements' ),
'tab' => Controls_Manager::TAB_STYLE
)
);
$this->start_controls_tabs( 'info_colors' );
$this->start_controls_tab(
'info_color_normal',
array(
'label' => __( 'Normal' , 'auxin-elements' )
)
);
$this->add_control(
'info_color',
array(
'label' => __( 'Color', 'auxin-elements' ),
'type' => Controls_Manager::COLOR,
'selectors' => array(
'{{WRAPPER}} .entry-info a, {{WRAPPER}} .entry-info' => 'color: {{VALUE}};',
)
)
);
$this->end_controls_tab();
$this->start_controls_tab(
'info_color_hover',
array(
'label' => __( 'Hover' , 'auxin-elements' )
)
);
$this->add_control(
'info_hover_color',
array(
'label' => __( 'Color', 'auxin-elements' ),
'type' => Controls_Manager::COLOR,
'selectors' => array(
'{{WRAPPER}} .entry-info a:hover' => 'color: {{VALUE}};',
)
)
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_group_control(
Group_Control_Typography::get_type(),
array(
'name' => 'info_typography',
'scheme' => Typography::TYPOGRAPHY_1,
'selector' => '{{WRAPPER}} .entry-info, {{WRAPPER}} .entry-info a'
)
);
$this->add_responsive_control(
'info_margin_bottom',
array(
'label' => __( 'Bottom space', 'auxin-elements' ),
'type' => Controls_Manager::SLIDER,
'range' => array(
'px' => array(
'max' => 100
)
),
'selectors' => array(
'{{WRAPPER}} .entry-info' => 'margin-bottom: {{SIZE}}{{UNIT}};'
)
)
);
$this->add_responsive_control(
'info_spacing_between',
array(
'label' => __( 'Space between metas', 'auxin-elements' ),
'type' => Controls_Manager::SLIDER,
'range' => array(
'px' => array(
'max' => 30
)
),
'selectors' => array(
'{{WRAPPER}} .entry-info [class^="entry-"] + [class^="entry-"]:before, {{WRAPPER}} .entry-info .entry-tax a:after' =>
'margin-right: {{SIZE}}{{UNIT}}; margin-left: {{SIZE}}{{UNIT}};'
)
)
);
$this->end_controls_section();
}
/**
* Get recent comments.
*
* Retrieve 'RecentComments' widget query.
*
* @since 1.0.0
* @access public
*
* @return array Query.
*/
public function get_comments( $args = array() ) {
// The Query
$comments_query = new WP_Comment_Query;
$comments = $comments_query->query( $args );
return $comments;
}
/**
* Render recentcomments widget output on the frontend.
*
* Written in PHP and used to generate the final HTML.
*
* @since 1.0.0
* @access protected
*/
protected function render() {
$settings = $this->get_settings_for_display();
$query_args = array();
if( $settings['post_types'] !== 'all' ){
$query_args['post_type'] = $settings['post_types'];
}
if( isset( $settings['number'] ) ){
$query_args['number'] = $settings['number'];
}
$comments = auxin_get_comments( $query_args );
// Defining default attributes
$default_atts = array(
'title' => '',
'direction' => 'horizontal',
'size' => 'medium',
'extra_classes' => '',
'custom_el_id' => '',
'base_class' => 'aux-widget-recent-comments'
);
$result = auxin_get_widget_scafold( array(), $default_atts );
extract( $result['parsed_atts'] );
// widget header ------------------------------
echo wp_kses_post( $result['widget_header'] );
echo wp_kses_post( $result['widget_title'] );
if( empty( $comments ) ){
echo sprintf( '<p>%s<p>', esc_html__( 'No comments found!', 'auxin-elements' ) );
} else {
// widget output -----------------------
ob_start();
foreach ( $comments as $key => $comment ):
?>
<div id="aux-comment-<?php echo esc_attr( $comment->comment_ID ); ?>" class="aux-comment">
<div class="entry-header">
<h3 class="entry-title aux-h3">
<a href="<?php echo esc_url( get_comment_link( $comment->comment_ID ) ); ?>" title="<?php echo esc_attr( get_the_title( $comment->comment_post_ID ) ); ?>">
<?php echo wp_kses_post( get_the_title( $comment->comment_post_ID ) ); ?>
</a>
</h3>
</div>
<?php if( isset( $settings['show_info'] ) && auxin_is_true( $settings['show_info'] ) ) : ?>
<div class="entry-info">
<div class="entry-date">
<?php echo human_time_diff( strtotime( $comment->comment_date_gmt ) ) . ' ' . esc_html__( 'Ago', 'auxin-elements' ); ?>
</div>
<div class="entry-author">
<span class="meta-sep"><?php echo esc_html__( 'By', 'auxin-elements' ); ?></span>
<span class="author vcard"><?php echo esc_html( $comment->comment_author ); ?></span>
</div>
</div>
<?php endif; ?>
</div>
<?php
endforeach;
echo ob_get_clean();
}
// widget footer ------------------------------
echo wp_kses_post( $result['widget_footer'] );
}
}