. * * @package ReduxFramework * @subpackage Field_slides * @author Luciano "WebCaos" Ubertini * @author Daniel J Griffiths (Ghost1227) * @author Dovy Paukstys * @version 3.0.0 */ // Exit if accessed directly if (!defined('ABSPATH')) exit; // Don't duplicate me! if (!class_exists('ReduxFramework_slides_search')) { /** * Main ReduxFramework_slides_product_scroller class * * @since 1.0.0 */ class ReduxFramework_slides_search extends widget_handler{ var $titles = array(); var $field_id = ""; /** * Field Constructor. * * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function * * @since 1.0.0 * @access public * @param array $field * @param string $value * @param $parent * @return \ReduxFramework_slides_search */ function __construct( $field = array(), $value ='', $parent ) { parent::__construct($field,$value,$parent); $this->field_id = $this->field['id']; $default_titles = array( "add_slider" => "Add Slider", "add_slide" => "Add Slide", "remove_slider" => "Delete Slider", "remove_slide" => "Delete Slide", "new_slide" => "New item", ); if(!isset($this->field['titles']) || !is_array($this->field['titles'])) $this->field['titles'] = array(); $this->titles = wp_parse_args($this->field['titles'],$default_titles); $this->enqueue(); } public function blank_slider(){ $this->widget_field(widget_handler::$category_selector,true,array("multi"=>true,"sortable"=>false,"width"=>"80",'title'=>"Products","class"=>"select2")); } /** * Field Render Function. * * Takes the vars and outputs the HTML for the field in the settings * * @since 1.0.0 * @access public * @param bool $hidden * @return void */ public function render($hidden = false) { $this->blank_slider(); $x = 0; if(!isset($this->value['items']) || empty($this->value['items'])){ $this->value['items'] = array('1'=>array()); }else if(isset($this->value['items']['_blank'])) unset($this->value['items']['_blank']); $filed_name = $this->field['name']; echo '
'; $this->field['name']=$filed_name.'[slides]'; if (isset($this->value['slides']) && is_array($this->value['slides']) && !$hidden) { $slides = $this->value['slides']; foreach ($slides as $slide) { if ( empty( $slide ) ) { continue; } $defaults = array( 'title' => '', 'click_action' => '', 'sort' => '', 'products'=>'', 'click_action_value' => '', 'image' => '', 'thumb' => '', 'attachment_id' => '', 'height' => '', 'width' => '', 'select' => array(), ); $slide = wp_parse_args( $slide, $defaults ); echo '

' . $slide['title'] . '

'; echo '
    '; $placeholder = (isset($this->field['placeholder']['title'])) ? esc_attr($this->field['placeholder']['title']) : __( 'Title', 'redux-framework' ); echo '
  • '; $action_value = is_array($slide['click_action_value'])?implode(",",$slide['click_action_value']):''; echo ''; // echo '
  • '; // $this->widget_field(widget_handler::$category_selector,false,array("multi"=>true,"sortable"=>false,"width"=>"80","name"=>$this->field['name'] . '[' . $x . '][products]',"id"=>$this->field['id'] . '-' . $x . '-click_action_value','title'=>"Products","class"=>"select2"),$slide['products']); // echo '
  • '; echo '
  • '; echo '
  • ' . __($this->titles['remove_slider'], 'redux-framework') . '
  • '; echo '
'; $x++; } } if ($x == 0) { echo '

'. __($this->titles['new_slide'], 'redux-framework').'

'; echo '
    '; $placeholder = (isset($this->field['placeholder']['title'])) ? esc_attr($this->field['placeholder']['title']) : __( 'Title', 'redux-framework' ); echo '
  • '; echo ''; // echo '
  • '; // $this->widget_field(widget_handler::$category_selector,false,array("multi"=>true,"sortable"=>false,"width"=>"80","name"=>$this->field['name'] . '[' . $x . '][products]',"id"=>$this->field['id'] . '-' . $x . '-click_action_value','title'=>"Products","class"=>"select2")); // echo '
  • '; echo '
  • '; echo '
  • '. __($this->titles['remove_slider'], 'redux-framework').'
  • '; echo '
'; } echo '
' . __($this->titles['add_slider'], 'redux-framework') . '
'; } /** * Enqueue Function. * * If this field requires any scripts, or css define this function and register/enqueue the scripts/css * * @since 1.0.0 * @access public * @return void */ public function enqueue() { wp_enqueue_script( 'redux-field-media-js', ReduxFramework::$_url . 'inc/fields/media/field_media.js', array( 'jquery' ), time(), true ); wp_enqueue_style( 'redux-field-media-css', ReduxFramework::$_url . 'inc/fields/media/field_media.css', time(), true ); wp_enqueue_script( 'redux-field-slideshow-js', plugins_url('field_slides.js',__FILE__), array('jquery', 'jquery-ui-core', 'jquery-ui-accordion', 'wp-color-picker'), time(), true ); wp_enqueue_style( 'redux-field-slideshow-css', plugins_url('field_slides.css',__FILE__), time(), true ); /* wp_enqueue_script( 'select2-js', ReduxFramework::$_url . 'assets/js/vendor/select2/select2.js', array( ), time(), true ); wp_enqueue_script( 'select2-sortable-js', ReduxFramework::$_url . 'assets/js/vendor/select2.sortable.js', array( ), time(), true ); */ Redux_CDN::enqueue_script( 'select2-js', '//cdn.jsdelivr.net/select2/3.5.2/select2.min.js', array( 'jquery', 'redux-select2-sortable-js' ), '3.5.2', true ); wp_enqueue_script( 'field-select-js', ReduxFramework::$_url . 'inc/fields/select/field_select.js', array( ), time(), true ); parent::enqueue(); } } }