PATH:
home
/
letacommog
/
supportleta
/
wp-content
/
plugins
/
js_composer
/
include
/
params
/
sorted_list
<?php if ( ! defined( 'ABSPATH' ) ) { die( '-1' ); } /** * @param $settings * @param $value * * @since 4.2 * @return string */ function vc_sorted_list_form_field( $settings, $value ) { return '<div class="vc_sorted-list">' . '<input name="' . $settings['param_name'] . '" class="wpb_vc_param_value ' . $settings['param_name'] . ' ' . $settings['type'] . '_field" type="hidden" value="' . $value . '" />' . '<div class="vc_sorted-list-toolbar">' . vc_sorted_list_parts_list( $settings['options'] ) . '</div>' . '<ul class="vc_sorted-list-container"></ul>' . '</div>'; } /** * Teaser box meta box generator for post's edit page. * @since 4.2 * The instance of this class is called from */ class Vc_Teaser_Box { /** * @since 4.2 * @var string */ protected static $meta_data_name = 'vc_teaser'; /** * @since 4.4 (code inspection) * @var bool */ public $teaser_data = false; /** * Add action hook to create Meta box. On admin_init jsComposerEditPage method is called. * @since 4.2 */ public function init() { add_action( 'admin_init', array( $this, 'jsComposerEditPage' ), 6 ); } /** * Calls add_meta_box function for generating * @since 4.2 */ public function jsComposerEditPage() { $pt_array = vc_editor_post_types(); foreach ( $pt_array as $pt ) { add_meta_box( 'vc_teaser', __( 'VC: Custom Teaser', 'js_composer' ), array( $this, 'outputTeaser', ), $pt, 'side' ); } add_action( 'save_post', array( $this, 'saveTeaserMetaBox' ) ); } /** * Get teaser box data from database. * * @param $name * @param bool $id * * @since 4.2 * @return string */ public function getTeaserData( $name, $id = false ) { if ( false === $id ) { $id = get_the_ID(); } $this->teaser_data = get_post_meta( $id, self::$meta_data_name, true ); return isset( $this->teaser_data[ $name ] ) ? $this->teaser_data[ $name ] : ''; } /** * Outputs teaser box html content. * * @since 4.2 */ public function outputTeaser() { wp_enqueue_script( 'wpb_jscomposer_teaser_js' ); wp_localize_script( 'wpb_jscomposer_teaser_js', 'i18nVcTeaser', array( 'empty_title' => __( 'Empty title', 'js_composer' ), 'text_label' => __( 'Text', 'js_composer' ), 'image_label' => __( 'Image', 'js_composer' ), 'title_label' => __( 'Title', 'js_composer' ), 'link_label' => __( 'Link', 'js_composer' ), 'text_text' => __( 'Text', 'js_composer' ), 'text_excerpt' => __( 'Excerpt', 'js_composer' ), 'text_custom' => __( 'Custom', 'js_composer' ), 'image_featured' => __( 'Featered', 'js_composer' ), 'image_custom' => __( 'Custom', 'js_composer' ), 'link_label_text' => __( 'Link text', 'js_composer' ), 'no_link' => __( 'No link', 'js_composer' ), 'link_post' => __( 'Link to post', 'js_composer' ), 'link_big_image' => __( 'Link to big image', 'js_composer' ), 'add_custom_image' => __( 'Add custom image', 'js_composer' ), ) ); $output = '<div class="vc_teaser-switch"><label><input type="checkbox" name="' . self::$meta_data_name . '[enable]" value="1" id="vc_teaser-checkbox"' . ( '1' === $this->getTeaserData( 'enable' ) ? ' checked="true"' : '' ) . '> ' . __( 'Enable custom teaser', 'js_composer' ) . '</label></div>'; $output .= '<input type="hidden" name="' . self::$meta_data_name . '[data]" class="vc_teaser-data-field" value="' . htmlspecialchars( $this->getTeaserData( 'data' ) ) . '">'; $output .= '<div class="vc_teaser-constructor-hint">'; $output .= '<p>' . __( 'Customize teaser block design to overwrite default settings used in "Carousel" content element.', 'js_composer' ) . '</p>'; $output .= '</div>'; $output .= '<div class="vc_teaser-constructor">'; $output .= '<div class="vc_toolbar"></div>'; $output .= '<div class="clear vc_teaser-list"></div>'; $output .= '<div class="vc_teaser_loading_block" style="display: none;">'; $output .= '<img src="' . get_site_url() . '/wp-admin/images/wpspin_light.gif" /></div>'; $output .= '<div class="vc_teaser-footer"><label>Background color</label><br/><input type="text" name="' . self::$meta_data_name . '[bgcolor]" value="' . htmlspecialchars( $this->getTeaserData( 'bgcolor' ) ) . '" class="vc_teaser-bgcolor"></div>'; $output .= '</div>'; require_once vc_path_dir( 'TEMPLATES_DIR', 'teaser.html.php' ); echo $output; } /** * @param $post_id * * @since 4.2 */ public function saveTeaserMetaBox( $post_id ) { if ( isset( $_POST[ self::$meta_data_name ] ) ) { $options = isset( $_POST[ self::$meta_data_name ] ) ? $_POST[ self::$meta_data_name ] : ''; update_post_meta( (int) $post_id, self::$meta_data_name, $options ); } } } /** * @param $list * * @since 4.2 * @return string */ function vc_sorted_list_parts_list( $list ) { $output = ''; foreach ( $list as $control ) { $output .= '<div class="vc_sorted-list-checkbox"><label><input type="checkbox" name="vc_sorted_list_element" value="' . $control[0] . '" data-element="' . $control[0] . '" data-subcontrol="' . ( count( $control ) > 1 ? htmlspecialchars( json_encode( array_slice( $control, 2 ) ) ) : '' ) . '"> <span>' . htmlspecialchars( $control[1] ) . '</span></label></div>'; } return $output; } /** * @param $value * * @since 4.2 * @return array */ function vc_sorted_list_parse_value( $value ) { $data = array(); $split = preg_split( '/\,/', $value ); foreach ( $split as $v ) { $v_split = array_map( 'rawurldecode', preg_split( '/\|/', $v ) ); if ( count( $v_split ) > 0 ) { $data[] = array( $v_split[0], count( $v_split ) > 1 ? array_slice( $v_split, 1 ) : array() ); } } return $data; } global $vc_teaser_box; $vc_teaser_box = new Vc_Teaser_Box(); /** * @param $attributes * * @since 4.2 * @return mixed */ function vc_add_teaser_box_generator( $attributes ) { global $vc_teaser_box; $vc_teaser_box->init(); return $attributes; } add_filter( 'vc_mapper_attribute_sorted_list', 'vc_add_teaser_box_generator' );
[+]
..
[-] sorted_list.php
[edit]