| Server IP : 77.68.64.21 / Your IP : 216.73.216.219 Web Server : Apache System : Linux hp3-wp-1011378.hostingp3.local 3.10.0-1160.144.1.el7.tuxcare.els9.x86_64 #1 SMP Fri Jul 10 17:06:31 UTC 2026 x86_64 User : csh2668128 ( 2112425) PHP Version : 8.1.34 Disable Function : shell_exec,exec,system,popen,set_time_limit MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/domains/vol4/924/3261924/user/htdocs/wp-content/themes/jannah/framework/widgets/ |
Upload File : |
<?php
if( ! class_exists( 'TIE_WIDGET_TABS' )){
/**
* Widget API: TIE_WIDGET_TABS class
*/
class TIE_WIDGET_TABS extends WP_Widget {
public function __construct(){
$widget_ops = array( 'description' => 'Most Popular, Recent posts and Comments' );
parent::__construct( 'widget_tabs', apply_filters( 'TieLabs/theme_name', 'TieLabs' ) .' - '.esc_html__( 'Tabs', TIELABS_TEXTDOMAIN) , $widget_ops );
}
/**
* Outputs the content for the widget instance.
*/
public function widget( $args, $instance ){
$posts_number = empty( $instance['posts_number'] ) ? 5 : $instance['posts_number'];
// Get the Order of tabs
$tabs_order = 'r,p,c';
if( ! empty( $instance['tabs_order'] ) ){
$tabs_order = $instance['tabs_order'];
}
$tabs_order_array = explode( ',', $tabs_order );
// Check the disabled tabs
$disabled_tabs = array(
'disable_recent' => 'r',
'disable_popular' => 'p',
'disable_comments' => 'c',
);
foreach ( $disabled_tabs as $option => $tab_id ) {
if( ! empty( $instance[ $option ] ) && ( $key = array_search( $tab_id, $tabs_order_array ) ) !== false ){
unset( $tabs_order_array[ $key ] );
}
}
// Return if all Tabs are disabled !!
if( empty( $tabs_order_array ) ){
return;
}
?>
<div class="container-wrapper tabs-container-wrapper tabs-container-<?php echo count( $tabs_order_array ) ?>">
<div class="widget tabs-widget">
<div class="widget-container">
<div class="tabs-widget">
<div class="tabs-wrapper">
<ul class="tabs">
<?php
// Widget ID
$id = explode( '-', $this->get_field_id( 'widget_id' ));
$widget_id = $id[1] .'-'. $id[2];
foreach ( $tabs_order_array as $tab ){
if( $tab == 'p' ){
echo '<li><a href="#'.$widget_id.'-popular">'. esc_html__( 'Popular', TIELABS_TEXTDOMAIN ) .'</a></li>';
}
elseif( $tab == 'r' ){
echo '<li><a href="#'.$widget_id.'-recent">'. esc_html__( 'Recent', TIELABS_TEXTDOMAIN ) .'</a></li>';
}
elseif( $tab == 'c' ){
echo '<li><a href="#'.$widget_id.'-comments">'. esc_html__( 'Comments', TIELABS_TEXTDOMAIN ) .'</a></li>';
}
}
?>
</ul><!-- ul.tabs-menu /-->
<?php
foreach ( $tabs_order_array as $tab ){
if( $tab == 'p' ): ?>
<div id="<?php echo esc_attr( $widget_id ) ?>-popular" class="tab-content tab-content-popular">
<ul class="tab-content-elements">
<?php
$popular_order = 'popular';
if( ! empty( $instance['posts_order'] ) ){
$popular_order = ( $instance['posts_order'] == 'viewed' ) ? 'views' : $instance['posts_order'];
}
tie_widget_posts( array( 'number' => $posts_number, 'order' => $popular_order ));
?>
</ul>
</div><!-- .tab-content#popular-posts-tab /-->
<?php
elseif( $tab == 'r' ): ?>
<div id="<?php echo esc_attr( $widget_id ) ?>-recent" class="tab-content tab-content-recent">
<ul class="tab-content-elements">
<?php tie_widget_posts( array( 'number' => $posts_number ));?>
</ul>
</div><!-- .tab-content#recent-posts-tab /-->
<?php
elseif( $tab == 'c' ): ?>
<div id="<?php echo esc_attr( $widget_id ) ?>-comments" class="tab-content tab-content-comments">
<ul class="tab-content-elements">
<?php tie_recent_comments( $posts_number );?>
</ul>
</div><!-- .tab-content#comments-tab /-->
<?php endif;
}
?>
</div><!-- .tabs-wrapper-animated /-->
</div><!-- .tabs-widget /-->
</div><!-- .widget-container /-->
</div><!-- .tabs-widget /-->
</div><!-- .container-wrapper /-->
<?php
}
/**
* Handles updating settings for widget instance.
*/
public function update( $new_instance, $old_instance ){
$instance = $old_instance;
$instance['posts_number'] = $new_instance['posts_number'];
$instance['posts_order'] = $new_instance['posts_order'];
$instance['tabs_order'] = $new_instance['tabs_order'];
$instance['disable_popular'] = ! empty( $new_instance['disable_popular'] ) ? 'true' : false;
$instance['disable_recent'] = ! empty( $new_instance['disable_recent'] ) ? 'true' : false;
$instance['disable_comments'] = ! empty( $new_instance['disable_comments'] ) ? 'true' : false;
return $instance;
}
/**
* Outputs the settings form for the widget.
*/
public function form( $instance ){
$id = explode( '-', $this->get_field_id( 'widget_id' ));
$defaults = array( 'posts_order' => 'popular', 'posts_number' => 5 );
$instance = wp_parse_args( (array) $instance, $defaults );
$posts_number = empty( $instance['posts_number'] ) ? 5 : $instance['posts_number'];
$posts_order = isset( $instance['posts_order'] ) ? $instance['posts_order'] : '';
$disable_popular = isset( $instance['disable_popular'] ) ? $instance['disable_popular'] : '';
$disable_recent = isset( $instance['disable_recent'] ) ? $instance['disable_recent'] : '';
$disable_comments = isset( $instance['disable_comments'] ) ? $instance['disable_comments'] : '';
?>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'posts_number' ) ); ?>"><?php esc_html_e( 'Number of items to show:', TIELABS_TEXTDOMAIN) ?></label>
<input id="<?php echo esc_attr( $this->get_field_id( 'posts_number' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'posts_number' ) ); ?>" value="<?php echo esc_attr( $posts_number ) ?>" type="number" step="1" min="1" size="3" class="tiny-text" />
</p>
<hr />
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'tabs_order' ) ); ?>"><?php esc_html_e( 'Order of tabs:', TIELABS_TEXTDOMAIN) ?></label>
</p>
<ul class="tab-sortable">
<?php
$tabs_order = ! empty( $instance['tabs_order'] ) ? $instance['tabs_order'] : 'r,p,c';
$tabs_order_array = explode( ',', $tabs_order );
foreach ( $tabs_order_array as $tab ){
if( $tab == 'p' ){
echo '<li data-tab="p">'. esc_html__( 'Popular', TIELABS_TEXTDOMAIN ) .'</li>';
}
elseif( $tab == 'r' ){
echo '<li data-tab="r">'. esc_html__( 'Recent', TIELABS_TEXTDOMAIN ) .'</li>';
}
elseif( $tab == 'c' ){
echo '<li data-tab="c">'. esc_html__( 'Comments', TIELABS_TEXTDOMAIN ) .'</li>';
}
}
?>
</ul>
<input class="stored-tabs-order" name="<?php echo esc_attr( $this->get_field_name( 'tabs_order' ) ); ?>" value="<?php if( ! empty($instance['tabs_order']) ) echo esc_attr( $instance['tabs_order'] ); ?>" type="hidden" />
<hr />
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'posts_order' ) ); ?>"><?php esc_html_e( 'Popular tab order', TIELABS_TEXTDOMAIN) ?></label>
<select id="<?php echo esc_attr( $this->get_field_id( 'posts_order' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'posts_order' ) ); ?>" class="widefat tie-posts-order-option">
<option value="popular" <?php selected( $posts_order, 'popular' ) ?>><?php esc_html_e( 'Most Commented', TIELABS_TEXTDOMAIN) ?></option>
<option value="viewed" <?php selected( $posts_order, 'viewed' ) ?>><?php esc_html_e( 'Most Viewed', TIELABS_TEXTDOMAIN) ?></option>
<option value="jetpack-7" <?php selected( $posts_order, 'jetpack-7' ) ?>><?php esc_html_e( 'Jetpack - Most Viewed for 7 days', TIELABS_TEXTDOMAIN) ?></option>
<option value="jetpack-30" <?php selected( $posts_order, 'jetpack-30' ) ?>><?php esc_html_e( 'Jetpack - Most Viewed for 30 days', TIELABS_TEXTDOMAIN) ?></option>
</select>
</p>
<div class="tie-jetpack-posts-order" <?php if( strpos( $posts_order, 'jetpack' ) !== false ) echo 'style="display:block"' ?>>
<?php
if( ! TIELABS_JETPACK_IS_ACTIVE || ! Jetpack::is_module_active( 'stats' ) ){
echo '<p class="tie-message-hint tie-message-error">'. esc_html__( 'You need to install the Jetpack plugin. in order to use the show the most viewed for 7 or 30 days.', TIELABS_TEXTDOMAIN) .'</p>';
}
else{
echo '<p class="tie-message-hint">'. esc_html__( 'Please Note that for Jetpack - Most Viewed posts it may take a few hours before views are counted. It will fallback to comments sorting type until then.', TIELABS_TEXTDOMAIN) .'</p>';
}
?>
</div>
<hr />
<p>
<input id="<?php echo esc_attr( $this->get_field_id( 'disable_popular' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'disable_popular' ) ); ?>" value="true" <?php checked( $disable_popular, 'true' ) ?> type="checkbox" />
<label for="<?php echo esc_attr( $this->get_field_id( 'disable_popular' ) ); ?>"><?php esc_html_e( 'Disable the Popular tab?', TIELABS_TEXTDOMAIN) ?></label>
</p>
<p>
<input id="<?php echo esc_attr( $this->get_field_id( 'disable_recent' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'disable_recent' ) ); ?>" value="true" <?php checked( $disable_recent, 'true' ) ?> type="checkbox" />
<label for="<?php echo esc_attr( $this->get_field_id( 'disable_recent' ) ); ?>"><?php esc_html_e( 'Disable the Recent tab?', TIELABS_TEXTDOMAIN) ?></label>
</p>
<p>
<input id="<?php echo esc_attr( $this->get_field_id( 'disable_comments' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'disable_comments' ) ); ?>" value="true" <?php checked( $disable_comments, 'true' ) ?> type="checkbox" />
<label for="<?php echo esc_attr( $this->get_field_id( 'disable_comments' ) ); ?>"><?php esc_html_e( 'Disable the Comments tab?', TIELABS_TEXTDOMAIN) ?></label>
</p>
<?php
}
}
/**
* Register the widget.
*/
add_action( 'widgets_init', 'tie_widget_tabs_register' );
function tie_widget_tabs_register(){
register_widget( 'TIE_WIDGET_TABS' );
}
}