Current File : /home/kelaby89/public_html/wp/wp-content/plugins/trx_addons/components/widgets/widgets.php |
<?php
/**
* ThemeREX Widgets
*
* @package ThemeREX Addons
* @since v1.1
*/
// Don't load directly
if ( ! defined( 'TRX_ADDONS_VERSION' ) ) {
exit;
}
// Define list with widgets
if (!function_exists('trx_addons_widgets_setup')) {
add_action( 'after_setup_theme', 'trx_addons_widgets_setup', 2 );
function trx_addons_widgets_setup() {
static $loaded = false;
if ($loaded) return;
$loaded = true;
global $TRX_ADDONS_STORAGE;
$TRX_ADDONS_STORAGE['widgets_list'] = apply_filters('trx_addons_widgets_list', array(
'aboutme' => array(
'title' => __('About Me', 'trx_addons')
),
'audio' => array(
'title' => __('Audio player', 'trx_addons')
),
'banner' => array(
'title' => __('Banner', 'trx_addons')
),
'calendar' => array(
'title' => __('Calendar', 'trx_addons')
),
'categories_list' => array(
'title' => __('Categories list', 'trx_addons'),
'layouts_sc' => array(
1 => esc_html__('Style 1'),
2 => esc_html__('Style 2'),
3 => esc_html__('Style 3'),
4 => esc_html__('Style 4'),
)
),
'contacts' => array(
'title' => __('Contacts', 'trx_addons')
),
'custom_links' => array(
'title' => __('Custom links', 'trx_addons')
),
'flickr' => array(
'title' => __('Flickr', 'trx_addons')
),
'instagram' => array(
'title' => __('Instagram', 'trx_addons'),
'layouts_sc' => array(
'default' => esc_html__('Default', 'trx_addons'),
),
),
'popular_posts' => array(
'title' => __('Popular posts', 'trx_addons')
),
'recent_news' => array(
'title' => __('Recent news', 'trx_addons'),
'layouts_sc' => array(
'news-announce' => esc_html__('Announcement', 'trx_addons'),
'news-excerpt' => esc_html__('Excerpt', 'trx_addons'),
'news-magazine' => esc_html__('Magazine', 'trx_addons'),
'news-portfolio'=> esc_html__('Portfolio', 'trx_addons')
)
),
'recent_posts' => array(
'title' => __('Recent posts', 'trx_addons')
),
'slider' => array(
'title' => __('Slider', 'trx_addons'),
'layouts_sc' => array(
'default' => esc_html__('Default', 'trx_addons'),
'modern' => esc_html__('Modern', 'trx_addons')
),
// Always enabled!!!
'std' => 1,
'hidden' => false
),
'socials' => array(
'title' => __('Social icons', 'trx_addons')
),
'twitter' => array(
'title' => __('Twitter feed', 'trx_addons'),
'layouts_sc' => array(
'list' => esc_html__('List', 'trx_addons'),
'default' => esc_html__('Default', 'trx_addons')
)
),
'video' => array(
'title' => __('Video player', 'trx_addons'),
// Always enabled!!!
'std' => 1,
'hidden' => false
),
'video_list' => array(
'title' => __('Video list', 'trx_addons'),
)
)
);
}
}
// Include files with widgets
if (!function_exists('trx_addons_widgets_load')) {
add_action( 'after_setup_theme', 'trx_addons_widgets_load', 6 );
function trx_addons_widgets_load() {
static $loaded = false;
if ($loaded) return;
$loaded = true;
// Get theme-specific widget's args (if need)
global $TRX_ADDONS_STORAGE;
$TRX_ADDONS_STORAGE['widgets_args'] = apply_filters('trx_addons_widgets_args', $TRX_ADDONS_STORAGE['widgets_args']);
if (is_array($TRX_ADDONS_STORAGE['widgets_list']) && count($TRX_ADDONS_STORAGE['widgets_list']) > 0) {
foreach ($TRX_ADDONS_STORAGE['widgets_list'] as $w=>$params) {
if (trx_addons_components_is_allowed('widgets', $w)
&& ($fdir = trx_addons_get_file_dir(TRX_ADDONS_PLUGIN_WIDGETS . "{$w}/{$w}.php")) != '') {
include_once $fdir;
trx_addons_widgets_is_loaded($w, true);
}
}
}
}
}
// Disable a new Widgets block editor
if (!function_exists('trx_addons_widgets_disable_block_editor')) {
add_action( 'after_setup_theme', 'trx_addons_widgets_disable_block_editor' );
function trx_addons_widgets_disable_block_editor() {
if ( (int)trx_addons_get_option( 'disable_widgets_block_editor', 0 ) > 0 ) {
remove_theme_support( 'widgets-block-editor' );
}
}
}
// Return true if component is loaded
if (!function_exists('trx_addons_widgets_is_loaded')) {
function trx_addons_widgets_is_loaded($slug, $set=-1) {
return trx_addons_components_is_loaded('widgets', $slug, $set);
}
}
// Add 'Widgets' block in the ThemeREX Addons Components
if (!function_exists('trx_addons_widgets_components')) {
add_filter( 'trx_addons_filter_components_blocks', 'trx_addons_widgets_components');
function trx_addons_widgets_components($blocks=array()) {
$blocks['widgets'] = __('Widgets', 'trx_addons');
return $blocks;
}
}
/* Widgets utilities
------------------------------------------------------------------------------------- */
// Prepare widgets args - substitute id and class in parameter 'before_widget'
// And add numeric suffix to the same widgets used on page
if (!function_exists('trx_addons_prepare_widgets_args')) {
function trx_addons_prepare_widgets_args($id, $class, $args=false) {
global $TRX_ADDONS_STORAGE;
static $widgets = array();
$widgets[$id] = ( ! isset( $widgets[$id] ) ? 0 : $widgets[$id] ) + 1;
$args = $args === false
? $TRX_ADDONS_STORAGE['widgets_args']
: trx_addons_array_merge($args, $TRX_ADDONS_STORAGE['widgets_args']);
if (!empty($args['widget_id'])) {
$id .= $widgets[$id] > 1 ? sprintf('-%d', $widgets[$args['widget_id']]) : '';
$args['widget_id'] = $id;
}
if (!empty($args['before_widget'])) {
$args['before_widget'] = str_replace(array('%1$s', '%2$s'), array($id, $class), $args['before_widget']);
}
return $args;
}
}
// Custom Widgets areas
//--------------------------------------------------------------------
// Add Form to register a new custom widgets area
if (!function_exists('trx_addons_widgets_add_form')) {
add_action('widgets_admin_page', 'trx_addons_widgets_add_form');
function trx_addons_widgets_add_form() {
?><div class="trx_addons_widgets_form_wrap">
<h2 class="trx_addons_widgets_form_title"><?php esc_html_e('Add custom widgets area', 'trx_addons'); ?></h2>
<form class="trx_addons_widgets_form" method="post">
<?php wp_nonce_field( 'trx_addons_action_create_widgets_area', 'trx_addons_widgets_wpnonce' ); ?>
<div class="trx_addons_widgets_area_name">
<div class="trx_addons_widgets_area_label"><?php esc_html_e('Name (required):', 'trx_addons'); ?></div>
<div class="trx_addons_widgets_area_field"><input name="trx_addons_widgets_area_name" value="" type="text"></div>
</div>
<div class="trx_addons_widgets_area_description">
<div class="trx_addons_widgets_area_label"><?php esc_html_e('Description:', 'trx_addons'); ?></div>
<div class="trx_addons_widgets_area_field"><input name="trx_addons_widgets_area_description" value="" type="text"></div>
</div>
<div class="trx_addons_widgets_area_submit">
<div class="trx_addons_widgets_area_field">
<input value="<?php esc_html_e('Add', 'trx_addons'); ?>" class="trx_addons_widgets_area_button trx_addons_widgets_area_add button-primary" type="submit" title="<?php esc_html_e('To create new widgets area specify it name (required) and description (optional) and press this button', 'trx_addons'); ?>">
<input value="<?php esc_html_e('Delete', 'trx_addons'); ?>" class="trx_addons_widgets_area_button trx_addons_widgets_area_delete button" name="trx_addons_widgets_area_delete" type="submit" title="<?php esc_html_e('To delete custom widgets area specify it name (required) and press this button', 'trx_addons'); ?>">
</div>
</div>
</form>
</div><?php
}
}
// Create/Delete a custom widgets area
if (!function_exists('trx_addons_widgets_create_sidebar')) {
add_action('widgets_init', 'trx_addons_widgets_create_sidebar', 2);
function trx_addons_widgets_create_sidebar() {
if ( ! empty( $_POST['trx_addons_widgets_area_name'] ) ) {
if ( is_admin() && current_user_can('manage_options')
&& (
( trx_addons_get_value_gp( 'trx_addons_widgets_wpnonce' ) != '' && check_admin_referer( 'trx_addons_action_create_widgets_area', 'trx_addons_widgets_wpnonce' ) )
||
( trx_addons_get_value_gp( 'trx_addons_widgets_area_nonce' ) != '' && wp_verify_nonce( trx_addons_get_value_gp( 'trx_addons_widgets_area_nonce' ), admin_url( 'admin-ajax.php' ) ) )
)
) {
$name = trim(trx_addons_get_value_gp('trx_addons_widgets_area_name'));
$sidebars = get_option('trx_addons_widgets_areas', false);
if ( $sidebars === false ) {
$sidebars = array();
}
if ( ! empty( $_POST['trx_addons_widgets_area_delete'] ) ) {
foreach ( $sidebars as $i => $sb ) {
if ( $sidebars[ $i ]['name'] == $name ) {
unset( $sidebars[ $i ] );
break;
}
}
} else {
// Detect next id
$id = 0;
foreach ( $sidebars as $sb ) {
if ( $sb['id'] > $id ) {
$id = $sb['id'];
}
}
$id++;
// Add new sidebar
$sidebars[] = array(
'id' => $id,
'name' => $name,
'description' => trim(trx_addons_get_value_gp('trx_addons_widgets_area_description'))
);
}
update_option('trx_addons_widgets_areas', $sidebars);
}
}
}
}
// Register custom widgets areas after the theme's areas
if (!function_exists('trx_addons_widgets_register_sidebars')) {
add_action('widgets_init', 'trx_addons_widgets_register_sidebars', 11);
function trx_addons_widgets_register_sidebars() {
global $TRX_ADDONS_STORAGE;
// Load previously created sidebars
$sidebars = get_option('trx_addons_widgets_areas', false);
if (is_array($sidebars) && count($sidebars) > 0) {
foreach ($sidebars as $sb) {
register_sidebar( apply_filters( 'trx_addons_filter_register_sidebar', array(
'name' => $sb['name'],
'description' => $sb['description'],
'id' => 'custom_widgets_'.intval($sb['id']),
'before_widget' => $TRX_ADDONS_STORAGE['widgets_args']['before_widget'],
'after_widget' => $TRX_ADDONS_STORAGE['widgets_args']['after_widget'],
'before_title' => $TRX_ADDONS_STORAGE['widgets_args']['before_title'],
'after_title' => $TRX_ADDONS_STORAGE['widgets_args']['after_title']
) )
);
}
}
}
}
// Widget class
//--------------------------------------------------------------------
if (!class_exists('TRX_Addons_Widget')) {
class TRX_Addons_Widget extends WP_Widget {
function __construct($class, $title, $params) {
$params = array_merge(
array(
'customize_selective_refresh' => true,
'show_instance_in_rest' => true,
),
$params
);
parent::__construct($class, $title, $params);
}
// Show one field in the widget's form
function show_field($params=array()) {
$params = array_merge(
array(
'type' => 'text', // Field's type
'name' => '', // Field's name
'title' => '', // Title
'description' => '', // Description
'class' => '', // Additional classes
'class_button' => '', // Additional classes for button in mediamanager
'multiple' => false, // Allow select multiple images
'rows' => 5, // Number of rows in textarea
'options' => array(), // Options for select, checklist, radio, switch
'params' => array(), // Additional params for icons, etc.
'dependency' => array(),// Current field dependencies
'label' => '', // Alternative label for checkbox
'value' => '' // Field's value
),
$params
);
?><div class="widget_field_type_<?php echo esc_attr($params['type']);
if (!empty($params['dir'])) echo ' widget_field_dir_'.esc_attr($params['dir']);
?>"><?php
if (!empty($params['title'])) {
?><label class="widget_field_title"<?php if ($params['type']!='info') echo ' for="'.esc_attr($this->get_field_id($params['name'])).'"'; ?>><?php
echo wp_kses_data($params['title']);
?></label><?php
}
if (!empty($params['description'])) {
?><div class="widget_field_description"><?php echo wp_kses($params['description'], 'trx_addons_kses_content'); ?></div>
<?php
}
$dependencies = !empty($params['dependency']) ? json_encode($params['dependency']) : '';
if ( $params['type'] == 'select' ) {
?><select id="<?php echo esc_attr( $this->get_field_id( $params['name'] ) ); ?>"
name="<?php echo esc_attr( $this->get_field_name( $params['name'] ) . ( ! empty( $params['multiple'] ) ? '[]' : '' ) ); ?>"
class="widgets_param_fullwidth<?php
if ( ! empty( $params['class'] ) ) echo ' ' . esc_attr( $params['class'] );
?>"
<?php
if ( ! empty( $params['multiple'] ) ) {
?> multiple="multiple"<?php
}
if ( ! empty( $params['size'] ) || ! empty( $params['multiple'] ) ) {
?> size="<?php echo esc_attr( ! empty( $params['size'] ) ? max( 1, $params['size'] ) : 8 ); ?>"<?php
}
?>
data-param-name="<?php echo esc_attr( $params['name'] ); ?>"
data-param-dependency="<?php echo esc_attr( $dependencies ); ?>"
><?php
if ( is_array( $params['options'] ) && count( $params['options'] ) > 0 ) {
foreach ( $params['options'] as $slug => $name ) {
echo '<option value="' . esc_attr( $slug ) . '"'
. ( ( is_array( $params['value'] ) ? in_array( $slug, $params['value'] ) : $slug==$params['value'] )
? ' selected="selected"'
: ''
)
.'>'
. wp_kses( $name, 'trx_addons_kses_content' )
. '</option>';
}
}
?></select><?php
} else if ( in_array( $params['type'], array('radio') ) ) {
if ( is_array( $params['options'] ) && count( $params['options'] ) > 0 ) {
?><div class="widgets_param_box<?php
if ( ! empty( $params['class'] ) ) echo ' class="' . esc_attr( $params['class'] ) . '"';
?>"><?php
foreach ( $params['options'] as $slug => $name ) {
?><label><input type="radio"
id="<?php echo esc_attr( $this->get_field_id( $params['name'] ) . '_' . $slug ); ?>"
name="<?php echo esc_attr( $this->get_field_name( $params['name'] ) ); ?>"
data-param-name="<?php echo esc_attr( $params['name'] ); ?>"
data-param-dependency="<?php echo esc_attr( $dependencies ); ?>"
value="<?php echo esc_attr( $slug ); ?>"
<?php if ( $params['value'] == $slug ) echo ' checked="checked"'; ?> />
<?php echo wp_kses( $name, 'trx_addons_kses_content' ); ?></label> <?php
}
?></div><?php
}
} else if ($params['type'] == 'checkbox') {
?><label<?php if ( ! empty( $params['class'] ) ) echo ' class="' . esc_attr( $params['class'] ) . '"'; ?>><?php
?><input type="checkbox" id="<?php echo esc_attr( $this->get_field_id( $params['name'] ) ); ?>"
name="<?php echo esc_attr( $this->get_field_name( $params['name'] ) ); ?>"
data-param-name="<?php echo esc_attr( $params['name'] ); ?>"
data-param-dependency="<?php echo esc_attr( $dependencies ); ?>"
value="1" <?php echo ( 1 == $params['value'] ? ' checked="checked"' : '' ); ?> /><?php
echo wp_kses( ! empty( $params['label'] ) ? $params['label'] : $params['title'], 'trx_addons_kses_content' );
?></label><?php
} else if ( $params['type'] == 'checklist' ) {
?><span class="widgets_param_box<?php
if ( ! empty( $params['class'] ) ) echo ' ' . esc_attr( $params['class'] );
?>"
data-field_name="<?php echo esc_attr( $this->get_field_name( $params['name'] ) ); ?>[]">
<?php
foreach ( $params['options'] as $slug => $name ) {
?><label><input type="checkbox"
value="<?php echo esc_attr( $slug ); ?>"
name="<?php echo esc_attr( $this->get_field_name( $params['name'] ) ); ?>[]"
data-param-name="<?php echo esc_attr( $params['name'] ); ?>"
data-param-dependency="<?php echo esc_attr( $dependencies ); ?>"
<?php
if ( strpos( ',' . ( is_array( $params['value'] ) ? join( ',', $params['value'] ) : $params['value'] ) . ',', ','.$slug.',' ) !== false ) echo ' checked="checked"';
?>><?php
echo wp_kses( $name, 'trx_addons_kses_content' );
?></label><?php
}
?></span><?php
} else if ( $params['type'] == 'color' ) {
?><input type="text"
id="<?php echo esc_attr( $this->get_field_id( $params['name'] ) ); ?>"
name="<?php echo esc_attr( $this->get_field_name( $params['name'] ) ); ?>"
data-param-name="<?php echo esc_attr( $params['name'] ); ?>"
data-param-dependency="<?php echo esc_attr( $dependencies ); ?>"
value="<?php echo esc_attr( $params['value'] ); ?>"
class="trx_addons_color_selector<?php if ( ! empty( $params['class'] ) ) echo ' ' . esc_attr( $params['class'] ); ?>" /><?php
} else if ( in_array( $params['type'], array( 'image', 'media', 'video', 'audio' ) ) ) {
?><input type="hidden"
id="<?php echo esc_attr( $this->get_field_id( $params['name'] ) ); ?>"
name="<?php echo esc_attr( $this->get_field_name( $params['name'] ) ); ?>"
data-param-name="<?php echo esc_attr( $params['name'] ); ?>"
data-param-dependency="<?php echo esc_attr( $dependencies ); ?>"
<?php if (!empty($params['class'])) echo ' class="' . esc_attr( $params['class'] ) . '"'; ?>
value="<?php echo esc_attr( $params['value'] ); ?>" /><?php
trx_addons_show_layout( trx_addons_options_show_custom_field(
$this->get_field_id( $params['name'] ) . '_button',
array(
'type' => 'mediamanager',
'multiple' => ! empty( $params['multiple'] ),
'data_type' => $params['type'],
'class_field' => ! empty( $params['class_button'] ) ? ' ' . esc_attr( $params['class_button'] ) : '',
'linked_field_id' => $this->get_field_id( $params['name'] )
),
$params['value']
) );
} else if ( $params['type'] == 'icons' ) {
?><input type="hidden"
id="<?php echo esc_attr( $this->get_field_id( $params['name'] ) ); ?>"
name="<?php echo esc_attr( $this->get_field_name( $params['name'] ) ); ?>"
data-param-name="<?php echo esc_attr( $params['name'] ); ?>"
data-param-dependency="<?php echo esc_attr( $dependencies ); ?>"
value="<?php echo esc_attr( $params['value'] ); ?>" /><?php
trx_addons_show_layout( trx_addons_options_show_custom_field(
'trx_addons_options_field_' . esc_attr( $this->get_field_id( $params['name'] ) ),
array_merge( $params, $params['params'] ),
$params['value']
) );
} else if ( $params['type'] == 'textarea' ) {
?><textarea id="<?php echo esc_attr( $this->get_field_id( $params['name'] ) ); ?>"
name="<?php echo esc_attr( $this->get_field_name( $params['name'] ) ); ?>"
data-param-name="<?php echo esc_attr( $params['name'] ); ?>"
data-param-dependency="<?php echo esc_attr( $dependencies ); ?>"
rows="<?php echo esc_attr( $params['rows'] ); ?>"
class="widgets_param_fullwidth<?php if ( ! empty( $params['class'] ) ) echo ' ' . esc_attr( $params['class'] ); ?>"
><?php
echo esc_html( $params['value'] );
?></textarea><?php
} else if ( $params['type'] == 'text' ) {
?><input type="text"
id="<?php echo esc_attr( $this->get_field_id( $params['name'] ) ); ?>"
name="<?php echo esc_attr( $this->get_field_name( $params['name'] ) ); ?>"
data-param-name="<?php echo esc_attr( $params['name'] ); ?>"
data-param-dependency="<?php echo esc_attr( $dependencies ); ?>"
value="<?php echo esc_attr( $params['value'] ); ?>"
class="widgets_param_fullwidth<?php if ( ! empty( $params['class'] ) ) echo ' ' . esc_attr( $params['class'] ); ?>" /><?php
}
?>
</div><?php
}
// Display widget's common params
//---------------------------------------------------------
// Show ID, Class
function show_fields_id_param($instance, $group=false) {
if ($group===false)
$group = __('ID & Class', 'trx_addons');
if (!empty($group))
$this->show_field(array('title' => $group,
'type' => 'info'));
$this->show_field(array('name' => 'id',
'title' => __('Element ID:', 'trx_addons'),
'value' => $instance['id'],
'type' => 'text'));
$this->show_field(array('name' => 'class',
'title' => __('Element CSS class:', 'trx_addons'),
'value' => $instance['class'],
'type' => 'text'));
}
// Show slider params
function show_fields_slider_param($instance, $group=false, $add_params=array()) {
if ($group===false) {
$group = __('Slider', 'trx_addons');
}
if (!empty($group)) {
$this->show_field(array('title' => $group,
'type' => 'info'));
}
$this->show_field(array('name' => 'slider',
'title' => '',
'label' => __('Slider', 'trx_addons'),
'value' => (int) $instance['slider'],
'type' => 'checkbox'));
$this->show_field(array('name' => 'slider_effect',
'title' => __('Slider effect:', 'trx_addons'),
'value' => ! empty( $instance['slider_effect'] ) ? $instance['slider_effect'] : 'slide',
'options' => trx_addons_get_list_sc_slider_effects(),
'dependency' => array(
'slider' => array( '1' )
),
'type' => 'select'));
$this->show_field(array('name' => 'slides_space',
'title' => __('Space between slides:', 'trx_addons'),
'value' => (int) $instance['slides_space'],
'dependency' => array(
'slider' => array( '1' ),
),
'type' => 'text'));
$this->show_field(array('name' => 'slider_controls',
'title' => __('Slider controls:', 'trx_addons'),
'value' => $instance['slider_controls'],
'options' => trx_addons_get_list_sc_slider_controls(),
'dependency' => array(
'slider' => array( '1' ),
),
'type' => 'radio'));
$this->show_field(array('name' => 'slider_pagination',
'title' => __('Slider pagination:', 'trx_addons'),
'value' => $instance['slider_pagination'],
'options' => trx_addons_get_list_sc_slider_paginations(),
'dependency' => array(
'slider' => array( '1' ),
),
'type' => 'radio'));
$this->show_field(array('name' => 'slides_centered',
'title' => '',
'label' => __('Slides centered', 'trx_addons'),
'value' => empty( $instance['slides_centered'] ) ? 0 : (int) $instance['slides_centered'],
'dependency' => array(
'slider' => array( '1' ),
),
'type' => 'checkbox'));
$this->show_field(array('name' => 'slides_overflow',
'title' => '',
'label' => __('Slides overflow visible', 'trx_addons'),
'value' => empty( $instance['slides_overflow'] ) ? 0 : (int) $instance['slides_overflow'],
'dependency' => array(
'slider' => array( '1' ),
),
'type' => 'checkbox'));
$this->show_field(array('name' => 'slider_mouse_wheel',
'title' => '',
'label' => __('Enable mouse wheel', 'trx_addons'),
'value' => empty( $instance['slider_mouse_wheel'] ) ? 0 : (int) $instance['slider_mouse_wheel'],
'dependency' => array(
'slider' => array( '1' ),
),
'type' => 'checkbox'));
$this->show_field(array('name' => 'slider_autoplay',
'title' => '',
'label' => __('Enable autoplay', 'trx_addons'),
'value' => empty( $instance['slider_autoplay'] ) ? 0 : (int) $instance['slider_autoplay'],
'dependency' => array(
'slider' => array( '1' ),
),
'type' => 'checkbox'));
$this->show_field(array('name' => 'slider_loop',
'title' => '',
'label' => __('Enable loop_mode', 'trx_addons'),
'value' => empty( $instance['slider_loop'] ) ? 0 : (int) $instance['slider_loop'],
'dependency' => array(
'slider' => array( '1' )
),
'type' => 'checkbox'));
$this->show_field(array('name' => 'slider_free_mode',
'title' => '',
'label' => __('Enable free mode', 'trx_addons'),
'value' => empty( $instance['slider_free_mode'] ) ? 0 : (int) $instance['slider_free_mode'],
'dependency' => array(
'slider' => array( '1' ),
),
'type' => 'checkbox'));
// Additional params
if (is_array($add_params) && count($add_params) > 0) {
foreach ($add_params as $v)
$this->show_field($v);
}
}
// Show title params
function show_fields_title_param($instance, $group=false, $button=true) {
if ($group===false)
$group = __('Titles', 'trx_addons');
if (!empty($group))
$this->show_field(array('title' => $group,
'type' => 'info'));
$this->show_field(array('name' => 'title_style',
'title' => __('Title style:', 'trx_addons'),
'value' => $instance['title_style'],
'options' => apply_filters('trx_addons_sc_type', trx_addons_components_get_allowed_layouts('sc', 'title'), 'trx_sc_title' ),
'type' => 'radio'));
$this->show_field(array('name' => 'title_tag',
'title' => __('Title tag:', 'trx_addons'),
'value' => $instance['title_tag'],
'options' => trx_addons_get_list_sc_title_tags(),
'type' => 'select'));
$this->show_field(array('name' => 'title_align',
'title' => __('Title alignment:', 'trx_addons'),
'value' => $instance['title_align'],
'options' => trx_addons_get_list_sc_aligns(),
'type' => 'radio'));
$this->show_field(array('name' => 'title_color',
'title' => __('Title color:', 'trx_addons'),
'value' => $instance['title_color'],
'type' => 'color'));
$this->show_field(array('name' => 'title_color2',
'title' => __('Title color 2:', 'trx_addons'),
'value' => $instance['title_color2'],
'dependency' => array(
'title_tag' => array( 'gradient' ),
),
'type' => 'color'));
$this->show_field(array('name' => 'gradient_fill',
'title' => __('Gradient fill:', 'trx_addons'),
'options' => trx_addons_get_list_sc_title_gradient_fills(),
'value' => $instance['gradient_fill'],
'type' => 'select'));
$this->show_field(array('name' => 'gradient_direction',
'title' => __('Gradient direction (0-360):', 'trx_addons'),
'value' => $instance['gradient_direction'],
'dependency' => array(
'title_tag' => array( 'gradient' ),
),
'type' => 'text'));
$this->show_field(array('name' => 'title',
'title' => __('Title:', 'trx_addons'),
'value' => $instance['title'],
'type' => 'text'));
$this->show_field(array('name' => 'subtitle',
'title' => __('Subtitle:', 'trx_addons'),
'value' => $instance['subtitle'],
'type' => 'text'));
$this->show_field(array('name' => 'subtitle_align',
'title' => __('Subtitle align:', 'trx_addons'),
'options' => trx_addons_get_list_sc_aligns(),
'value' => $instance['subtitle_align'],
'type' => 'select'));
$this->show_field(array('name' => 'subtitle_position',
'title' => __('Subtitle position:', 'trx_addons'),
'options' => trx_addons_get_list_sc_subtitle_positions(),
'value' => $instance['subtitle_position'],
'type' => 'select'));
$this->show_field(array('name' => 'description',
'title' => __('Description:', 'trx_addons'),
'value' => $instance['description'],
'type' => 'textarea'));
// Add button's params
if ($button) {
$this->show_field(array('name' => 'link',
'title' => __('Button URL:', 'trx_addons'),
'value' => $instance['link'],
'type' => 'text'));
$this->show_field(array('name' => 'link_text',
'title' => __('Button text:', 'trx_addons'),
'value' => $instance['link_text'],
'type' => 'text'));
$this->show_field(array('name' => 'link_style',
'title' => __('Button style:', 'trx_addons'),
'value' => $instance['link_style'],
'options' => apply_filters('trx_addons_sc_type', trx_addons_components_get_allowed_layouts('sc', 'button'), 'trx_sc_button'),
'type' => 'select'));
$this->show_field(array('name' => 'link_image',
'title' => __('Background image for the button:', 'trx_addons'),
'value' => $instance['link_image'],
'type' => 'image'));
}
}
// Show query params
function show_fields_query_param($instance, $group=false, $add_params=array()) {
if ($group===false) {
$group = __('Query', 'trx_addons');
}
if (!empty($group)) {
$this->show_field(array('title' => $group,
'type' => 'info'));
}
if ( ! isset( $add_params['ids'] ) || ! empty( $add_params['ids'] ) ) {
$this->show_field(array('name' => 'ids',
'title' => __('IDs to show (comma-separated list):', 'trx_addons'),
'value' => $instance['ids'],
'type' => 'text'));
}
if ( ! isset( $add_params['count'] ) || ! empty( $add_params['count'] ) ) {
$this->show_field(array('name' => 'count',
'title' => __('Count:', 'trx_addons'),
'value' => (int) $instance['count'],
'dependency' => array(
'ids' => array( 'is_empty' ),
),
'type' => 'text'));
}
if ( ! isset( $add_params['columns'] ) || ! empty( $add_params['columns'] ) ) {
$this->show_field(array('name' => 'columns',
'title' => __('Columns:', 'trx_addons'),
'value' => (int) $instance['columns'],
'type' => 'text'));
}
if ( ! isset( $add_params['offset'] ) || ! empty( $add_params['offset'] ) ) {
$this->show_field(array('name' => 'offset',
'title' => __('Offset:', 'trx_addons'),
'value' => (int) $instance['offset'],
'dependency' => array(
'ids' => array( 'is_empty' ),
),
'type' => 'text'));
}
if ( ! isset( $add_params['orderby'] ) || ! empty( $add_params['orderby'] ) ) {
$this->show_field(array('name' => 'orderby',
'title' => __('Order by:', 'trx_addons'),
'value' => $instance['orderby'],
'options' => trx_addons_get_list_sc_query_orderby('', 'date,price,title'),
'type' => 'select'));
}
if ( ! isset( $add_params['order'] ) || ! empty( $add_params['order'] ) ) {
$this->show_field(array('name' => 'order',
'title' => __('Order:', 'trx_addons'),
'value' => $instance['order'],
'options' => trx_addons_get_list_sc_query_orders(),
'type' => 'radio'));
}
// Additional params
if (is_array($add_params) && count($add_params) > 0) {
foreach ($add_params as $v) {
if ( ! empty($v) ) {
$this->show_field($v);
}
}
}
}
// Show icon params
function show_fields_icon_param($instance, $group=false, $only_socials=false) {
if ($group===false)
$group = __('Icons', 'trx_addons');
if (!empty($group))
$this->show_field(array('title' => $group,
'type' => 'info'));
// Internal popup with icons list
$style = $only_socials ? trx_addons_get_setting('socials_type') : trx_addons_get_setting('icons_type');
$this->show_field(array('name' => 'icon',
'title' => __('Icon:', 'trx_addons'),
'value' => $instance['icon'],
'style' => $style,
'options' => trx_addons_get_list_icons($style),
'type' => 'icons'));
}
}
}