????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 18.191.89.23 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/www.astacus.eu/wp-content/plugins/fusion-builder/shortcodes/ |
Upload File : |
<?php /** * Shortcode class. * * @package fusion-builder * @since 1.0 */ class FusionSC_Toggle { /** * Counter for accordians. * * @access private * @since 1.0 * @var int */ private $accordian_counter = 1; /** * Counter for collapsed items. * * @access private * @since 1.0 * @var int */ private $collapse_counter = 1; /** * The ID of the collapsed item. * * @access private * @since 1.0 * @var string */ private $collapse_id; /** * Parent SC arguments. * * @static * @access public * @since 1.0 * @var array */ public static $parent_args; /** * Child SC arguments. * * @static * @access public * @since 1.0 * @var array */ public static $child_args; /** * Constructor. * * @access public * @since 1.0 */ public function __construct() { add_filter( 'fusion_attr_toggle-shortcode', array( $this, 'attr' ) ); add_filter( 'fusion_attr_toggle-shortcode-panelgroup', array( $this, 'panelgroup_attr' ) ); add_filter( 'fusion_attr_toggle-shortcode-panel', array( $this, 'panel_attr' ) ); add_filter( 'fusion_attr_toggle-shortcode-fa-icon', array( $this, 'fa_icon_attr' ) ); add_filter( 'fusion_attr_toggle-shortcode-data-toggle', array( $this, 'data_toggle_attr' ) ); add_filter( 'fusion_attr_toggle-shortcode-collapse', array( $this, 'collapse_attr' ) ); add_shortcode( 'fusion_accordion', array( $this, 'render_parent' ) ); add_shortcode( 'fusion_toggle', array( $this, 'render_child' ) ); } /** * Render the parent shortcode * * @param array $args Shortcode parameters. * @param string $content Content between shortcode. * @return string HTML output. */ function render_parent( $args, $content = '' ) { $defaults = FusionBuilder::set_shortcode_defaults( array( 'hide_on_mobile' => fusion_builder_default_visibility( 'string' ), 'divider_line' => FusionBuilder::get_theme_option( 'accordion_divider_line' ), 'class' => '', 'id' => '', ), $args ); extract( $defaults ); self::$parent_args = $defaults; $html = sprintf( '<div %s><div %s>%s</div></div>', FusionBuilder::attributes( 'toggle-shortcode' ), FusionBuilder::attributes( 'toggle-shortcode-panelgroup' ), do_shortcode( $content ) ); $this->accordian_counter++; return $html; } /** * Builds the attributes array. * * @access public * @since 1.0 * @return array */ public function attr() { $attr = fusion_builder_visibility_atts( self::$parent_args['hide_on_mobile'], array( 'class' => 'accordian fusion-accordian', ) ); if ( self::$parent_args['class'] ) { $attr['class'] .= ' ' . self::$parent_args['class']; } if ( self::$parent_args['id'] ) { $attr['id'] = self::$parent_args['id']; } return $attr; } /** * Builds the panel-group attributes. * * @access public * @since 1.0 * @return array */ public function panelgroup_attr() { return array( 'class' => 'panel-group', 'id' => 'accordion-' . get_the_ID() . '-' . $this->accordian_counter, ); } /** * Render the child shortcode. * * @access public * @since 1.0 * @param array $args Shortcode parameters. * @param string $content Content between shortcode. * @return string HTML output. */ public function render_child( $args, $content = '' ) { $defaults = FusionBuilder::set_shortcode_defaults( array( 'open' => 'no', 'title' => '', ), $args ); extract( $defaults ); self::$child_args = $defaults; self::$child_args['toggle_class'] = ''; if ( 'yes' == $open ) { self::$child_args['toggle_class'] = 'in'; } $this->collapse_id = substr( md5( sprintf( 'collapse-%s-%s-%s', get_the_ID(), $this->accordian_counter, $this->collapse_counter ) ), 15 ); $html = sprintf( '<div %s><div %s><h4 %s><a %s><div %s><i %s></i></div><div %s>%s</div></a></h4></div><div %s><div %s>%s</div></div></div>', FusionBuilder::attributes( 'toggle-shortcode-panel' ), FusionBuilder::attributes( 'panel-heading' ), FusionBuilder::attributes( 'panel-title toggle' ), FusionBuilder::attributes( 'toggle-shortcode-data-toggle' ), FusionBuilder::attributes( 'fusion-toggle-icon-wrapper' ), FusionBuilder::attributes( 'toggle-shortcode-fa-icon' ), FusionBuilder::attributes( 'fusion-toggle-heading' ), $title, FusionBuilder::attributes( 'toggle-shortcode-collapse' ), FusionBuilder::attributes( 'panel-body toggle-content' ), do_shortcode( $content ) ); $this->collapse_counter++; return $html; } /** * Builds the panel attributes. * * @access public * @since 1.0 * @return array */ public function panel_attr() { $attr = array( 'class' => 'fusion-panel panel-default', ); if ( '0' == self::$parent_args['divider_line'] || 'no' == self::$parent_args['divider_line'] ) { $attr['class'] .= ' fusion-toggle-no-divider'; } return $attr; } /** * Builds the font-awesome icon attributes. * * @access public * @since 1.0 * @return array */ public function fa_icon_attr() { return array( 'class' => 'fa-fusion-box', ); } /** * Builds the data-toggle attributes. * * @access public * @since 1.0 * @return array */ public function data_toggle_attr() { $attr = array(); if ( 'yes' == self::$child_args['open'] ) { $attr['class'] = 'active'; } $attr['data-toggle'] = 'collapse'; $attr['data-parent'] = sprintf( '#accordion-%s-%s', get_the_ID(), $this->accordian_counter ); $attr['data-target'] = '#' . $this->collapse_id; $attr['href'] = '#' . $this->collapse_id; return $attr; } /** * Builds the collapse attributes. * * @access public * @since 1.0 * @return array */ public function collapse_attr() { return array( 'id' => $this->collapse_id, 'class' => 'panel-collapse collapse ' . self::$child_args['toggle_class'], ); } } new FusionSC_Toggle(); /** * Map shortcode to Fusion Builder. * * @since 1.0 */ function fusion_element_accordion() { fusion_builder_map( array( 'name' => esc_attr__( 'Toggles', 'fusion-builder' ), 'shortcode' => 'fusion_accordion', 'multi' => 'multi_element_parent', 'element_child' => 'fusion_toggle', 'icon' => 'fusiona-expand-alt', 'preview' => FUSION_BUILDER_PLUGIN_DIR . 'js/previews/fusion-toggles-preview.php', 'preview_id' => 'fusion-builder-block-module-toggles-preview-template', 'params' => array( array( 'type' => 'tinymce', 'heading' => esc_attr__( 'Content', 'fusion-builder' ), 'description' => esc_attr__( 'Enter some content for this contentbox.', 'fusion-builder' ), 'param_name' => 'element_content', 'value' => '[fusion_toggle title="Your Content Goes Here" open="no" ]Your Content Goes Here[/fusion_toggle]', ), array( 'type' => 'radio_button_set', 'heading' => esc_attr__( 'Divider Line', 'fusion-builder' ), 'description' => esc_attr__( 'Choose to display a divider line between each item.', 'fusion-builder' ), 'param_name' => 'divider_line', 'value' => array( esc_attr__( 'Default', 'fusion-builder' ) => '', esc_attr__( 'Yes', 'fusion-builder' ) => 'yes', esc_attr__( 'No', 'fusion-builder' ) => 'no', ), 'default' => '', ), array( 'type' => 'checkbox_button_set', 'heading' => esc_attr__( 'Element Visibility', 'fusion-builder' ), 'param_name' => 'hide_on_mobile', 'value' => fusion_builder_visibility_options( 'full' ), 'default' => fusion_builder_default_visibility( 'array' ), 'description' => esc_attr__( 'Choose to show or hide the element on small, medium or large screens. You can choose more than one at a time.', 'fusion-builder' ), ), array( 'type' => 'textfield', 'heading' => esc_attr__( 'CSS Class', 'fusion-builder' ), 'description' => esc_attr__( 'Add a class to the wrapping HTML element.', 'fusion-builder' ), 'param_name' => 'class', 'value' => '', 'group' => esc_attr__( 'General', 'fusion-builder' ), ), array( 'type' => 'textfield', 'heading' => esc_attr__( 'CSS ID', 'fusion-builder' ), 'description' => esc_attr__( 'Add an ID to the wrapping HTML element.', 'fusion-builder' ), 'param_name' => 'id', 'value' => '', 'group' => esc_attr__( 'General', 'fusion-builder' ), ), ), ) ); } add_action( 'fusion_builder_before_init', 'fusion_element_accordion' ); /** * Map shortcode to Fusion Builder. * * @since 1.0 */ function fusion_element_toggle() { fusion_builder_map( array( 'name' => esc_attr__( 'Toggle', 'fusion-builder' ), 'shortcode' => 'fusion_toggle', 'hide_from_builder' => true, 'allow_generator' => true, 'params' => array( array( 'type' => 'textfield', 'heading' => esc_attr__( 'Title', 'fusion-builder' ), 'description' => esc_attr__( 'Insert the toggle title.', 'fusion-builder' ), 'param_name' => 'title', 'value' => 'Your Content Goes Here', 'placeholder' => true, ), array( 'type' => 'radio_button_set', 'heading' => esc_attr__( 'Open by Default', 'fusion-builder' ), 'description' => esc_attr__( 'Choose to have the toggle open when page loads.', 'fusion-builder' ), 'param_name' => 'open', 'value' => array( esc_attr__( 'No', 'fusion-builder' ) => 'no', esc_attr__( 'Yes', 'fusion-builder' ) => 'yes', ), 'default' => 'no', ), array( 'type' => 'tinymce', 'heading' => esc_attr__( 'Toggle Content', 'fusion-builder' ), 'description' => esc_attr__( 'Insert the toggle content.', 'fusion-builder' ), 'param_name' => 'element_content', 'value' => 'Your Content Goes Here', 'placeholder' => true, ), ), ) ); } add_action( 'fusion_builder_before_init', 'fusion_element_toggle' );