Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #1478020
    Abstrakt Marketing
    Guest

    Hello, my name is Nathaniel and I am a web developer for Abstrakt Marketing groups. We manage about 350 sites. I have developed almost 2 dozen private custom elements for Enfold. Version 7 has rendered them inoperable. I hope to find a solution as hundreds of sites use these elements.

    #1478031

    Hey Abstrakt Marketing,

    Did you check the changelog to see if any changes might be affecting your code?

    Best regards,
    Rikard

    #1478043

    I have looked it several times and nothing stands out that would render my elements completely ignored.
    I’ve attached one of the elements so you can see it.

    <?php
    /**
     * AMG Tabs and tabs
     *
     * Creates tabs or accordions
     */
    if( ! defined( 'ABSPATH' ) ) {  exit;  }    // Exit if accessed directly
    
    if( ! class_exists( 'amg_sc_cards', false ) )
    {
        class amg_sc_cards extends aviaShortcodeTemplate
        {
            use \aviaBuilder\traits\scNamedColors;
            use \aviaBuilder\traits\scButtonStyles;
            /**
             *
             * @var int
             */
            static protected $toggle_id = 1;
    
            /**
             *
             * @var int
             */
            static protected $counter = 1;
    
            /**
             *
             * @var int
             */
            static protected $initial = 0;
    
            /**
             *
             * @var array
             */
            static protected $tags = array();
    
            /**
             * Google search only accepts 1 Tag “FAQPage”
             *
             * @since 5.0
             * @var int
             */
            static protected $total = 0;
    
            /**
             *
             * @since 4.8.8
             * @var boolean
             */
            protected $in_sc_exec;
    
            /**
             *
             * @since 4.9
             * @var string
             */
            protected $heading_tag;
    
            /**
             *
             * @since 4.9
             * @var string
             */
            protected $heading_class;
    
            /**
             *
             * @since 4.5.5
             * @param AviaBuilder $builder
             */
            public function __construct( $builder )
            {
                $this->in_sc_exec = false;
                $this->heading_tag = '';
                $this->heading_class = '';
    
                parent::__construct( $builder );
    
                $this->_construct_scNamedColors();
                $this->_construct_scButtonStyles();
            }
    
            /**
             * @since 4.5.5
             */
            public function __destruct()
            {
                $this->_destruct_scNamedColors();
                $this->_destruct_scButtonStyles();
                parent::__destruct();
            }
    
            /**
             * Create the config array for the shortcode button
             */
            protected function shortcode_insert_button()
            {
                $this->config['version']		= '1.0';
                $this->config['self_closing']	= 'no';
                $this->config['base_element']	= 'yes';
    
                $this->config['name']			= __( 'Cards', 'avia_framework' );
                $this->config['tab']			= __( 'AMG Elements', 'avia_framework' );
                $this->config['icon']			= AviaBuilder::$path['imagesURL'] . 'sc-contentslider.png';
                $this->config['order']			= 270;
                $this->config['target']			= 'avia-target-insert';
                $this->config['shortcode']		= 'amg_card_container';
                $this->config['shortcode_nested'] = array( 'amg_card' );
                $this->config['tooltip']		= __( 'Creates a new Cards Layout Group', 'avia_framework' );
                $this->config['tinyMCE']		= array( 'tiny_always' => true );
                $this->config['preview']		= true;
                $this->config['disabling_allowed'] = true;
                $this->config['id_name']		= 'id';
                $this->config['id_show']		= 'yes';
                $this->config['alb_desc_id']	= 'alb_description';
                $this->config['name_item']		= __( 'AMG Card Item', 'avia_framework' );
                $this->config['tooltip_item']	= __( 'An AMG Card Item', 'avia_framework' );
            }
    
            protected function admin_assets()
            {
                $ver = AbstraktEnfoldExtensions::get_plugin_version();
                $developMode = AbstraktEnfoldExtensions::developMode();
                $lastmodtime = $developMode ? rand(1, 999999999) : $ver;
                //load css
                wp_enqueue_style( 'amg-cards', plugin_dir_url(__FILE__) . "cards.min.css", array( 'avia-layout' ), $lastmodtime );
                wp_enqueue_script( 'amg-cards', plugin_dir_url(__FILE__) . "cards.min.js", array( 'avia-shortcodes' ), $lastmodtime, true );
    
            }
    
            protected function extra_assets()
            {
    
                $ver = AbstraktEnfoldExtensions::get_plugin_version();
                $developMode = AbstraktEnfoldExtensions::developMode();
                $lastmodtime = $developMode ? rand(1, 999999999) : $ver;
                //load css
                wp_enqueue_style( 'amg-cards', plugin_dir_url(__FILE__) . "cards.css", array( 'avia-layout' ), $lastmodtime );
                wp_enqueue_script( 'amg-cards', plugin_dir_url(__FILE__) . "cards.js", array( 'avia-shortcodes' ), $lastmodtime, true );
            }
    
            /**
             * Popup Elements
             *
             * If this function is defined in a child class the element automatically gets an edit button, that, when pressed
             * opens a modal window that allows to edit the element properties
             *
             * @return void
             */
            protected function popup_elements()
            {
                $this->elements = array(
    
                    array(
                        'type' 	=> 'tab_container',
                        'nodescription' => true
                    ),
    
                    array(
                        'type' 	=> 'tab',
                        'name'  => __( 'Content', 'avia_framework' ),
                        'nodescription' => true
                    ),
    
                    array(
                        'type'			=> 'template',
                        'template_id'	=> 'toggle_container',
                        'templates_include'	=> array(
                            $this->popup_key( 'content_amg_card' )
                        ),
                        'nodescription' => true
                    ),
    
                    array(
                        'type' 	=> 'tab_close',
                        'nodescription' => true
                    ),
    
                    array(
                        'type' 	=> 'tab',
                        'name'  => __( 'Automation', 'avia_framework' ),
                        'nodescription' => true
                    ),
    
                    array(
                        'type'			=> 'template',
                        'template_id'	=> 'toggle_container',
                        'templates_include'	=> array(
                            $this->popup_key( 'behavior_intro' ),
                            $this->popup_key( 'style_behavior' )
                        ),
                        'nodescription' => true
                    ),
    
                    array(
                        'type' 	=> 'tab_close',
                        'nodescription' => true
                    ),
    
                    array(
                        'type' 	=> 'tab',
                        'name'  => __( 'Styling', 'avia_framework' ),
                        'nodescription' => true
                    ),
    
                    array(
                        'type'			=> 'template',
                        'template_id'	=> 'toggle_container',
                        'templates_include'	=> array(
                            $this->popup_key( 'styling_card_dimensions' ),
                            $this->popup_key( 'styling_colors' ),
                            $this->popup_key( 'styling_font_sizes' )
                        ),
                        'nodescription' => true
                    ),
    
                    array(
                        'type' 	=> 'tab_close',
                        'nodescription' => true
                    ),
    
                    array(
                        'type' 	=> 'tab',
                        'name'  => __( 'Advanced', 'avia_framework' ),
                        'nodescription' => true
                    ),
    
                    array(
                        'type' 	=> 'toggle_container',
                        'nodescription' => true
                    ),
    
                    array(
                        'type'			=> 'template',
                        'template_id'	=> $this->popup_key( 'advanced_heading' ),
                        'nodescription' => true
                    ),
    
                    array(
                        'type'			=> 'template',
                        'template_id'	=> 'screen_options_toggle',
                        'lockable'		=> true
                    ),
    
                    array(
                        'type'			=> 'template',
                        'template_id'	=> 'developer_options_toggle',
                        'args'			=> array( 'sc' => $this )
                    ),
    
                    array(
                        'type' 	=> 'toggle_container_close',
                        'nodescription' => true
                    ),
    
                    array(
                        'type' 	=> 'tab_close',
                        'nodescription' => true
                    ),
    
                    array(
                        'type'			=> 'template',
                        'template_id'	=> 'element_template_selection_tab',
                        'args'			=> array( 'sc' => $this )
                    ),
    
                    array(
                        'type' 	=> 'tab_container_close',
                        'nodescription' => true
                    )
    
                );
    
            }
    
            /**
             * Create and register templates for easier maintainance
             *
             * @since 4.6.4
             */
            protected function register_dynamic_templates()
            {
    
                $this->register_modal_group_templates();
    
                /**
                 * Content Tab
                 * ===========
                 */
    
                $c = array(
                    array(
                        'name'			=> __( 'Add/Edit Card', 'avia_framework' ),
                        'desc'			=> __( 'Here you can add, remove and edit the tabs you want to display.', 'avia_framework' ),
                        'type'			=> 'modal_group',
                        'id'			=> 'content',
                        'modal_title'	=> __( 'Edit Card Element', 'avia_framework' ),
                        'editable_item'	=> true,
                        'lockable'		=> true,
                        'tmpl_set_default'	=> false,
                        'std'			=> array(
                            array( 'title' => __( 'Card 1', 'avia_framework' ), 'tags' => '' ),
                            array( 'title' => __( 'Card 2', 'avia_framework' ), 'tags' => '' ),
                        ),
                        'subelements'	=> $this->create_modal()
                    ),
    
                    array(
                        'name' 	=> __( 'Title Position', 'avia_framework' ),
                        'desc' 	=> __( 'Select one of the 4 choices', 'avia_framework' ),
                        'id' 	=> 'title_position',
                        'type' 	=> 'select',
                        'std' 	=> 'bottom',
                        'lockable'	=> true,
                        'subtype'	=> array(
                            __( 'Top', 'avia_framework' )	    => 'top',
                            __( 'Bottom', 'avia_framework' )	=> 'bottom',
                            __( 'Full', 'avia_framework' )	    => 'full',
                            __( 'None', 'avia_framework' )	    => 'none',
                        )
                    )
                );
    
                $template = array(
                    array(
                        'type'			=> 'template',
                        'template_id'	=> 'toggle',
                        'title'			=> __( 'Cards', 'avia_framework' ),
                        'content'		=> $c
                    ),
                );
    
                AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'content_amg_card' ), $template );
    
                $c = array(
    
                    array(
                        'name' 	=> __( 'Hover Animation', 'avia_framework' ),
                        'desc' 	=> __( 'Select the style of hover animation', 'avia_framework' ),
                        'id' 	=> 'animation',
                        'type' 	=> 'select',
                        'std' 	=> 'up',
                        'lockable'	=> true,
                        'subtype'	=> array(
                            __( 'Up', 'avia_framework' )	=> 'up',
                            __( 'Down', 'avia_framework' )	=> 'down',
                            __( 'Fade', 'avia_framework' )	=> 'fade',
                            __( 'Flip', 'avia_framework' )	=> 'flip',
                        )
                    ),
                    array(
                        'name' 	=> __( 'Column Order', 'avia_framework' ),
                        'desc' 	=> __( 'Select the column order', 'avia_framework' ),
                        'id' 	=> 'column',
                        'type' 	=> 'select',
                        'std' 	=> 'row',
                        'lockable'	=> true,
                        'subtype'	=> array(
                            __( 'Forward', 'avia_framework' )	=> 'row',
                            __( 'Reverse', 'avia_framework' )	=> 'row-reverse',
                        )
                    )
                );
    
                $template = array(
                    array(
                        'type'			=> 'template',
                        'template_id'	=> 'toggle',
                        'title'			=> __( 'Hover', 'avia_framework' ),
                        'content'		=> $c
                    ),
                );
    
                AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'style_behavior' ), $template );
    
                $c = array(
                    array(
                        'name' 	=> __( 'Intro', 'avia_framework' ),
                        'desc' 	=> __( 'Choose to use active style class', 'avia_framework' ),
                        'id' 	=> 'intro',
                        'type' 	=> 'select',
                        'std' 	=> '',
                        'lockable'	=> true,
                        'subtype'	=> AbstraktEnfoldExtensions::get_intro_animations()
                    ),
                    array(
                        'name' 	=> __( 'Duration', 'avia_framework' ),
                        'desc' 	=> __( 'Select duration of time this animation will run', 'avia_framework' ),
                        'id' 	=> 'duration',
                        'type' 	=> 'select',
                        'std' 	=> 's100',
                        'lockable'	=> true,
                        'required' => array( 'intro', 'not', '' ),
                        'subtype'	=> AbstraktEnfoldExtensions::get_duration_times()
                    ),
    
                );
                $template = array(
                    array(
                        'type'			=> 'template',
                        'template_id'	=> 'toggle',
                        'title'			=> __( 'Intro', 'avia_framework' ),
                        'content'		=> $c
                    ),
                );
    
                AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'behavior_intro' ), $template );
    
                /**
                 * Styling Tab
                 * ===========
                 */
                $c =  array(
                    array(
                        'name' 	=> __( 'Container Layout', 'avia_framework' ),
                        'desc' 	=> __( 'Either use the widget default colors or apply some custom ones', 'avia_framework' ),
                        'id' 	=> 'card_layout',
                        'type' 	=> 'select',
                        'std' 	=> '',
                        'lockable'	=> true,
                        'subtype'	=> array(
                            __( 'Default', 'avia_framework' )				=> '',
                            __( 'Define Custom layout', 'avia_framework' )	=> 'custom'
                        ),
                    ),
                    array(
                        'name' 	=> __( 'Container Max Width', 'avia_framework' ),
                        'desc' 	=> __( 'Enter your minimum height for each glow in pixels', 'avia_framework' ),
                        'id' 	=> 'max_width',
                        'type' 	=> 'input',
                        'std' 	=> '1400px',
                        'lockable'	=> true,
                        'required'	=> array( 'card_layout', 'equals', 'custom' )
                    ),
                    array(
                        'name' 	=> __( 'Container Min Height', 'avia_framework' ),
                        'desc' 	=> __( 'Enter your minimum height for each card in pixels', 'avia_framework' ),
                        'id' 	=> 'min_height',
                        'type' 	=> 'input',
                        'std' 	=> '580px',
                        'lockable'	=> true,
                        'required'	=> array( 'card_layout', 'equals', 'custom' )
                    ),
                    array(
                        'name' 	=> __( 'Column Count', 'avia_framework' ),
                        'desc' 	=> __( 'This number will be the maximum number of cards per row.', 'avia_framework' ),
                        'id' 	=> 'flex',
                        'type' 	=> 'select',
                        'std' 	=> '0 1 33.33%',
                        'lockable'	=> true,
                        'subtype'	=> array(
                            __( '1', 'avia_framework' )     => '0 1 100%',
                            __( '2', 'avia_framework' )	    => '0 1 50%',
                            __( '3', 'avia_framework' )	    => '0 1 33.33%',
                            __( '4', 'avia_framework' )	    => '0 1 25%',
                            __( '5', 'avia_framework' )	    => '0 1 20%'
                        ),
                        'required'	=> array( 'card_layout', 'equals', 'custom' )
                    ),
                    array(
                        'name' 	=> __( 'Box Shadow', 'avia_framework' ),
                        'desc' 	=> __( 'Either use the card default box shadow or apply a custom one', 'avia_framework' ),
                        'id' 	=> 'box',
                        'type' 	=> 'select',
                        'std' 	=> '',
                        'lockable'	=> true,
                        'subtype'	=> array(
                            __( 'Default', 'avia_framework' )		    => '',
                            __( 'Define Box Shadow', 'avia_framework' )	=> 'custom'
                        )
                    ),
                    array(
                        'name' 	=> __( 'Box Shadow', 'avia_framework' ),
                        'desc' 	=> __( 'Enter your custom box-shadow using standard CSS Syntax', 'avia_framework' ),
                        'id' 	=> 'box-shadow',
                        'type' 	=> 'input',
                        'std' 	=> '0 0 3px #ccc',
                        'rgba' 	=> true,
                        'lockable'	=> true,
                        'required'	=> array( 'box', 'equals', 'custom' ),
                    ),
                    array(
                        'name'		=> __( 'Border Radius', 'avia_framework' ),
                        'desc'		=> __( 'Set the border radius of the column', 'avia_framework' ),
                        'id'		=> 'border_radius',
                        'type'		=> 'multi_input',
                        'sync'		=> true,
                        'std'		=> '',
                        'lockable'	=> true,
                        'multi'		=> array(
                            'top'		=> __( 'Top-Left-Radius', 'avia_framework' ),
                            'right'		=> __( 'Top-Right-Radius', 'avia_framework' ),
                            'bottom'	=> __( 'Bottom-Right-Radius', 'avia_framework' ),
                            'left'		=> __( 'Bottom-Left-Radius', 'avia_framework' )
                        )
                    ),
                    array(
                        'name'	    => __( 'Folded Corner', 'avia_framework' ),
                        'desc'	    => __( 'Set the border radius of the column', 'avia_framework' ),
                        'id'	    => 'corner',
                        'type' 	    => 'select',
                        'std' 	    => '',
                        'lockable'	=> true,
                        'subtype'	=> array(
                            __( 'Yes', 'avia_framework' )   => 'yes',
                            __( 'No', 'avia_framework' )	=> 'no'
                        )
                    ),
    
                );
                $template = array(
                    array(
                        'type'			=> 'template',
                        'template_id'	=> 'toggle',
                        'title'			=> __( 'Container', 'avia_framework' ),
                        'content'		=> $c
                    ),
                );
    
                AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'styling_card_dimensions' ), $template );
    
                $c = array(
                    array(
                        'name' 	=> __( 'Colors', 'avia_framework' ),
                        'desc' 	=> __( 'Either use the themes default colors or apply some custom ones', 'avia_framework' ),
                        'id' 	=> 'colors',
                        'type' 	=> 'select',
                        'std' 	=> '',
                        'lockable'	=> true,
                        'subtype'	=> array(
                            __( 'Default', 'avia_framework' )				=> '',
                            __( 'Define Custom Colors', 'avia_framework' )	=> 'custom'
                        )
                    ),
    
                    array(
                        'name' 	=> __( 'Title Font Color', 'avia_framework' ),
                        'desc' 	=> __( 'Select a custom color for the toggle icon. Leave empty to use default', 'avia_framework' ),
                        'id' 	=> 'title_font_color',
                        'type' 	=> 'colorpicker',
                        'std' 	=> '',
                        'rgba' 	=> true,
                        'lockable'	=> true,
                        'required'	=> array( 'colors', 'equals', 'custom' ),
                        'container_class'	=> 'av_third av_third_first',
                    ),
                    array(
                        'name' 	=> __( 'Title Background Color', 'avia_framework' ),
                        'desc' 	=> __( 'Select a custom color for the toggle icon. Leave empty to use default', 'avia_framework' ),
                        'id' 	=> 'title_bg_color',
                        'type' 	=> 'colorpicker',
                        'std' 	=> '',
                        'rgba' 	=> true,
                        'lockable'	=> true,
                        'required'	=> array( 'colors', 'equals', 'custom' ),
                        'container_class'	=> 'av_third av_third_last',
                    ),
    
                    array(
                        'name' 	=> __( 'Content Font Color', 'avia_framework' ),
                        'desc' 	=> __( 'Select a custom font color. Leave empty to use the default', 'avia_framework' ),
                        'id' 	=> 'font_color',
                        'type' 	=> 'colorpicker',
                        'std' 	=> '',
                        'rgba' 	=> true,
                        'lockable'	=> true,
                        'required'	=> array( 'colors', 'equals', 'custom' ),
                        'container_class'	=> 'av_third av_third_first'
                    ),
    
                    array(
                        'name' 	=> __( 'Background Color', 'avia_framework' ),
                        'desc' 	=> __( 'Select a custom background color. Leave empty to use the default', 'avia_framework' ),
                        'id' 	=> 'background_color',
                        'type' 	=> 'colorpicker',
                        'std' 	=> '',
                        'rgba' 	=> true,
                        'lockable'	=> true,
                        'required'	=> array( 'colors', 'equals', 'custom' ),
                        'container_class'	=> 'av_third',
                    )
                );
    
                $template = array(
                    array(
                        'type'			=> 'template',
                        'template_id'	=> 'toggle',
                        'title'			=> __( 'Colors', 'avia_framework' ),
                        'content'		=> $c
                    ),
                );
    
                AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'styling_colors' ), $template );
    
                $c = array(
                    array(
                        'name'			=> __( 'Title Font Sizes', 'avia_framework' ),
                        'desc'			=> __( 'Select a custom font size for the toggle title. Using non default values might need CSS styling.', 'avia_framework' ),
                        'type'			=> 'template',
                        'template_id'	=> 'font_sizes_icon_switcher',
                        'lockable'		=> true,
                        'textfield'		=> true,
                        'subtype'		=> array(
                            'default'	=> AviaHtmlHelper::number_array( 10, 50, 1, array( __( 'Use Default', 'avia_framework' ) => '' ), 'px' ),
                            'desktop'	=> AviaHtmlHelper::number_array( 10, 50, 1, array( __( 'Use Default', 'avia_framework' ) => '' ), 'px' ),
                            'medium'	=> AviaHtmlHelper::number_array( 10, 40, 1, array( __( 'Use Default', 'avia_framework' ) => '', __( 'Hidden', 'avia_framework' ) => 'hidden' ), 'px' ),
                            'small'		=> AviaHtmlHelper::number_array( 10, 40, 1, array( __( 'Use Default', 'avia_framework' ) => '', __( 'Hidden', 'avia_framework' ) => 'hidden' ), 'px' ),
                            'mini'		=> AviaHtmlHelper::number_array( 10, 40, 1, array( __( 'Use Default', 'avia_framework' ) => '', __( 'Hidden', 'avia_framework' ) => 'hidden' ), 'px' )
                        ),
                        'id_sizes'		=> array(
                            'default'	=> 'size-title',
                            'desktop'	=> 'av-desktop-font-size-toggle',
                            'medium'	=> 'av-medium-font-size-toggle',
                            'small'		=> 'av-small-font-size-toggle',
                            'mini'		=> 'av-mini-font-size-toggle'
                        )
                    ),
    
                    array(
                        'name'			=> __( 'Content Font Sizes', 'avia_framework' ),
                        'desc'			=> __( 'Select a custom font size for the content.', 'avia_framework' ),
                        'type'			=> 'template',
                        'template_id'	=> 'font_sizes_icon_switcher',
                        'lockable'		=> true,
                        'textfield'		=> true,
                        'subtype'		=> array(
                            'default'	=> AviaHtmlHelper::number_array( 10, 50, 1, array( __( 'Use Default', 'avia_framework' ) => '' ), 'px' ),
                            'desktop'	=> AviaHtmlHelper::number_array( 10, 50, 1, array( __( 'Use Default', 'avia_framework' ) => '' ), 'px' ),
                            'medium'	=> AviaHtmlHelper::number_array( 10, 40, 1, array( __( 'Use Default', 'avia_framework' ) => '', __( 'Hidden', 'avia_framework' ) => 'hidden' ), 'px' ),
                            'small'		=> AviaHtmlHelper::number_array( 10, 40, 1, array( __( 'Use Default', 'avia_framework' ) => '', __( 'Hidden', 'avia_framework' ) => 'hidden' ), 'px' ),
                            'mini'		=> AviaHtmlHelper::number_array( 10, 40, 1, array( __( 'Use Default', 'avia_framework' ) => '', __( 'Hidden', 'avia_framework' ) => 'hidden' ), 'px' )
                        ),
                        'id_sizes'		=> array(
                            'default'	=> 'size-content',
                            'desktop'	=> 'av-desktop-font-size-content',
                            'medium'	=> 'av-medium-font-size-content',
                            'small'		=> 'av-small-font-size-content',
                            'mini'		=> 'av-mini-font-size-content'
                        )
                    )
    
                );
    
                $template = array(
                    array(
                        'type'			=> 'template',
                        'template_id'	=> 'toggle',
                        'title'			=> __( 'Font Sizes', 'avia_framework' ),
                        'content'		=> $c
                    ),
                );
    
                AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'styling_font_sizes' ), $template );
    
                /**
                 * Advanced Tab
                 * ============
                 */
    
                $c = array(
                    array(
                        'type'				=> 'template',
                        'template_id'		=> 'heading_tag',
                        'theme_default'		=> 'p',
                        'name'				=> __( 'Tab Title Tag (Theme Default is <%s>)', 'avia_framework' ),
                        'desc'				=> __( 'Select a html tag for the toggle titles of this element.', 'avia_framework' ),
                        'context'			=> __CLASS__,
                        'lockable'			=> true
                    ),
    
                );
    
                $template = array(
                    array(
                        'type'			=> 'template',
                        'template_id'	=> 'toggle',
                        'title'			=> __( 'Tab Titles', 'avia_framework' ),
                        'content'		=> $c
                    ),
                );
    
                AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'advanced_heading' ), $template );
    
            }
    
            /**
             * Creates the modal popup for a single entry
             *
             * @since 4.6.4
             * @return array
             */
            protected function create_modal()
            {
                $elements = array(
    
                    array(
                        'type' 	=> 'tab_container',
                        'nodescription' => true
                    ),
    
                    array(
                        'type' 	=> 'tab',
                        'name'  => __( 'Content', 'avia_framework' ),
                        'nodescription' => true
                    ),
    
                    array(
                        'type'			=> 'template',
                        'template_id'	=> 'toggle_container',
                        'templates_include'	=> array(
                            $this->popup_key( 'modal_card_title' ),
                            $this->popup_key( 'modal_card_image' ),
                            $this->popup_key( 'modal_card_content' )
                        ),
                    ),
    
                    array(
                        'type' 	=> 'tab_close',
                        'nodescription' => true
                    ),
                    /////////////////////////////   BUTTON START //////////////////////////////
    
                    array(
                        'type' => 'tab',
                        'name' => __( 'Button', 'avia_framework' ),
                        'nodescription' => true
                    ),
                    array(
                        'type' => 'template',
                        'template_id' => 'toggle_container',
                        'templates_include' => array(
                            $this->popup_key( 'modal_button' ),
                            $this->popup_key( 'modal_button_link' ),
                            $this->popup_key( 'styling_button_appearance' ),
                            $this->popup_key( 'styling_button_fonts' ),
                            $this->popup_key( 'styling_button_margin_padding' ),
                            $this->popup_key( 'styling_button_colors' ),
                            'border_toggle',
                            'box_shadow_toggle',
                            $this->popup_key( 'advanced_button_animation' )
                        ),
                        'nodescription' => true
                    ),
                    array(
                        'type' => 'tab_close',
                        'nodescription' => true
                    ),
                    /////////////////////////////   BUTTON END ////////////////////////////////
    
                    array(
                        'type' 	=> 'tab',
                        'name'  => __( 'Advanced', 'avia_framework' ),
                        'nodescription' => true
                    ),
    
                    array(
                        'type'			=> 'template',
                        'template_id'	=> 'toggle_container',
                        'templates_include'	=> array(
                            $this->popup_key( 'modal_advanced_developer' )
                        ),
                        'nodescription' => true
                    ),
    
                    array(
                        'type' 	=> 'tab_close',
                        'nodescription' => true
                    ),
    
                    array(
                        'type'			=> 'template',
                        'template_id'	=> 'element_template_selection_tab',
                        'args'			=> array(
                            'sc'			=> $this,
                            'modal_group'	=> true
                        )
                    ),
    
                    array(
                        'type' 	=> 'tab_container_close',
                        'nodescription' => true
                    )
    
                );
    
                return $elements;
            }
    
            /**
             * Register all templates for the modal group popup
             *
             * @since 4.6.4
             */
            protected function register_modal_group_templates()
            {
                /**
                 * Content Tab
                 * ===========
                 */
    
                $c = array(
                    array(
                        'name' 	=> __( 'Card Title', 'avia_framework' ),
                        'desc' 	=> __( 'Enter the card title here (Better keep it short)', 'avia_framework' ),
                        'id' 	=> 'title',
                        'type' 	=> 'input',
                        'std' 	=> 'Tab Title',
                        'lockable'	=> true,
                    )
                );
    
                $template = array(
                    array(
                        'type'			=> 'template',
                        'template_id'	=> 'toggle',
                        'title'			=> __( 'Title', 'avia_framework' ),
                        'content'		=> $c
                    ),
                );
    
                AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'modal_card_title' ), $template );
    
                $c = array(
                    array(
                        'name'		=> __( 'Card Image', 'avia_framework' ),
                        'desc'		=> __( 'Either upload a new, or choose an existing image from your media library', 'avia_framework' ),
                        'id'		=> 'src',
                        'type'		=> 'image',
                        'title'		=> __( 'Insert Image', 'avia_framework' ),
                        'button'	=> __( 'Insert', 'avia_framework' ),
                        'std'		=> AviaBuilder::$path['imagesURL'] . 'placeholder.jpg',
                        'lockable'	=> true,
                        'locked'	=> array( 'src', 'attachment', 'attachment_size' )
                    ),
                    array(
                        'name'		=> __( 'Image Position', 'avia_framework' ),
                        'desc'		=> __( 'Either upload a new, or choose an existing image from your media library', 'avia_framework' ),
                        'id'		=> 'image_position',
                        'type'		=> 'select',
                        'std'		=> 'bottom',
                        'lockable'	=> true,
                        'locked'	=> array( 'src', 'attachment', 'attachment_size' ),
                        'subtype'	=> array(
                            __( 'Top', 'avia_framework' )		=> 'top',
                            __( 'Bottom', 'avia_framework' )    => 'bottom',
                            __( 'Above', 'avia_framework' )	    => 'above',
                            __( 'Below', 'avia_framework' )	    => 'below',
                        )
                    )
                );
                $template = array(
                    array(
                        'type'			=> 'template',
                        'template_id'	=> 'toggle',
                        'title'			=> __( 'Image', 'avia_framework' ),
                        'content'		=> $c
                    ),
                );
    
                AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'modal_card_image' ), $template );
    
                $c = array(
                    array(
                        'name' 	=> __( 'Card Content', 'avia_framework' ),
                        'desc' 	=> __( 'Enter some content here', 'avia_framework' ),
                        'id' 	=> 'content',
                        'type' 	=> 'tiny_mce',
                        'std' 	=> __( 'Tab Content goes here', 'avia_framework' ),
                        'lockable'	=> true,
                    ),
                );
                $template = array(
                    array(
                        'type'			=> 'template',
                        'template_id'	=> 'toggle',
                        'title'			=> __( 'Content', 'avia_framework' ),
                        'content'		=> $c
                    ),
                );
    
                AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'modal_card_content' ), $template );
    
                /////////////////////////////   BUTTON START ////////////////////////////// BUTTON START ////////////////////////////////
    
                $template = AbstraktEnfoldExtensions::amg_enfold_section('Button');
                AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'modal_button' ), $template );
                $template = AbstraktEnfoldExtensions::amg_enfold_section('Link Settings');
                AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'modal_button_link' ), $template );
                $template = AbstraktEnfoldExtensions::amg_enfold_section('Appearance');
                AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'styling_button_appearance' ), $template );
                $template = AbstraktEnfoldExtensions::amg_enfold_section('Font Sizes');
                AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'styling_button_fonts' ), $template );
                $c = AbstraktEnfoldExtensions::amg_enfold_section('Button Margin And Padding');
                AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'styling_button_margin_padding' ), $c );
                $template = AbstraktEnfoldExtensions::amg_enfold_section('Colors');
                AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'styling_button_colors' ), $template );
                $template = AbstraktEnfoldExtensions::amg_enfold_section('Animation');
                AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'advanced_button_animation' ), $template );
    
                /////////////////////////////   BUTTON END ////////////////////////////// BUTTON END ////////////////////////////////
    
                $setting_id = Avia_Builder()->get_developer_settings( 'custom_id' );
                $class = in_array( $setting_id, array( 'deactivate', 'hide' ) ) ? 'avia-hidden' : '';
    
                $c = array(
                    array(
                        'name' 	=> __( 'For Developers: Custom Tab ID','avia_framework' ),
                        'desc' 	=> __( 'Insert a custom ID for the element here. Make sure to only use allowed characters (latin characters, underscores, dashes and numbers, no special characters can be used)','avia_framework' ),
                        'id' 	=> 'custom_id',
                        'type' 	=> 'input',
                        'std' 	=> '',
                        'container_class'	=> $class,
                    )
                );
    
                $template = array(
                    array(
                        'type'			=> 'template',
                        'template_id'	=> 'toggle',
                        'title'			=> __( 'Developer Settings', 'avia_framework' ),
                        'content'		=> $c
                    ),
                );
    
                AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'modal_advanced_developer' ), $template );
    
            }
    
            /**
             * Editor Sub Element - this function defines the visual appearance of an element that is displayed within a modal window and on click opens its own modal window
             * Works in the same way as Editor Element
             *
             * @param array $params			holds the default values for $content and $args.
             * @return array				usually holds an innerHtml key that holds item specific markup.
             */
            public function editor_sub_element( $params )
            {
                $default = array();
                $locked = array();
                $attr = $params['args'];
                Avia_Element_Templates()->set_locked_attributes( $attr, $this, $this->config['shortcode_nested'][0], $default, $locked );
    
                $template = $this->update_option_lockable( 'title', $locked );
    
                $params['innerHtml']  = '';
                $params['innerHtml'] .= "<div class='avia_title_container' {$template} data-update_element_template='yes'>{$attr['title']}</div>";
    
                return $params;
            }
    
            /**
             * Create custom stylings
             *
             * @since 4.8.4
             * @param array $args
             * @return array
             */
            protected function get_element_styles( array $args )
            {
                $result = parent::get_element_styles( $args );
    
                extract( $result );
    
                $default = array(
                    'faq_markup'		        => '',
                    'styling'			        => '',
                    'colors'			        => '',
                    'border_color'		        => '',
                    'title_font_color'	        => '',
                    'title_background_color'	=> '',
                    'font_color'		        => '',
                    'background_color'	        => '',
                    'background_title_color'	=> '',
                );
    
                $default = $this->sync_sc_defaults_array( $default, 'no_modal_item', 'no_content' );
    
                $locked = array();
                Avia_Element_Templates()->set_locked_attributes( $atts, $this, $shortcodename, $default, $locked, $content );
                Avia_Element_Templates()->add_template_class( $meta, $atts, $default );
                $meta = aviaShortcodeTemplate::set_frontend_developer_heading_tag( $atts, $meta );
    
                $this->in_sc_exec = true;
    
                $atts = shortcode_atts( $default, $atts, $this->config['shortcode'] );
                
                //	set heading tag for all titles - save global
                $default_heading = ! empty( $meta['heading_tag'] ) ? $meta['heading_tag'] : 'h3';
    
                $args = array(
                    'heading'		=> $default_heading,
                    'extra_class'	=> $meta['heading_class']
                );
    
                $extra_args = array( $this, $atts, $content, 'title' );
    
                /**
                 * @since 4.9
                 * @return array
                 */
                $args = apply_filters( 'avf_customize_heading_settings', $args, __CLASS__, $extra_args );
    
                $this->heading_tag = ! empty( $args['heading'] ) ? $args['heading'] : $default_heading;
                $this->heading_class = ! empty( $args['extra_class'] ) ? $args['extra_class'] : $meta['heading_class'];
    
                $element_styling->create_callback_styles( $atts );
    
                $classes = array(
                    'cardContainer',
                    $element_id,
                    $atts['styling']
                );
    
                $element_styling->add_classes( 'item_container', $classes );
                $element_styling->add_classes_from_array( 'item_container', $meta, 'el_class' );
                $element_styling->add_responsive_classes( 'item_container', 'hide_element', $atts );
                $element_styling->add_responsive_font_sizes( 'title', 'size-title', $atts, $this );
                $element_styling->add_responsive_font_sizes( 'title', 'size-title', $atts, $this );
                $element_styling->add_responsive_font_sizes( 'toggle-content', 'size-content', $atts, $this );
    
                if ($atts['card_layout'] == 'custom') {
                    $element_styling->add_styles( 'item_container', array(
                        'max-width'	=> $atts['max_width'],
                    ) );
                    $element_styling->add_styles( 'column', array(
                        'flex'	    => str_replace(',', ' ', $atts['flex']),
                    ) );
                    $element_styling->add_styles( 'border', array(
                        'border-radius'	=> str_replace(',', ' ', $atts['border_radius']),
                    ) );
                }
    
                if( 'custom' == $atts['colors'] )
                {
                    $element_styling->add_styles( 'content', array(
                        'color'				=> $atts['font_color'],
                    ) );
                    $element_styling->add_styles( 'title', array(
                        'color'				=> $atts['title_font_color'],
                    ));
                    $element_styling->add_styles( 'tBackground', array(
                        'background-color'	=> $atts['title_bg_color'],
                    ));
                    $element_styling->add_styles( 'flip', array(
                        'box-shadow'	=> $atts['box-shadow'],
                    ));
                }
    
                if ($atts['corner'] != 'yes') {
                    $element_styling->add_styles( 'corner', array(
                        'border-style'	=> 'none',
                    ));
                }
    
                //	#top needed when placed inside section
                $selectors = array(
                    'column'            => "#top #wrap_all .cardContainer.{$element_id} .amg-flex-box .amg-flex-column",
                    'item_container'    => "#top #wrap_all .cardContainer.{$element_id}",
                    'title'		        => "#top #wrap_all .cardContainer.{$element_id} .amg-card-container {$this->heading_tag}.amg-card-title",
                    'content'	        => "#top #wrap_all .cardContainer.{$element_id} .amg-card-container .amg-card-content",
                    'contentTitle'	    => "#top #wrap_all .cardContainer.{$element_id} .amg-card-container {$this->heading_tag}.amg-card-content-title",
                    'tBackground'	    => "#top #wrap_all .cardContainer.{$element_id} .amg-card-container .card-title-container",
                    'flip'	            => "#top #wrap_all .cardContainer.{$element_id} .amg-card-container .amg-flip-box",
                    'border'            => "#top #wrap_all .cardContainer.{$element_id} .amg-card-container .amg-flip-box,
                                            #top #wrap_all .cardContainer.{$element_id} .amg-card-container,
                                            #top #wrap_all .cardContainer.{$element_id} .amg-card-container .amg-card-content,
                                            #top #wrap_all .cardContainer.{$element_id} .amg-card-container .amg-card-image,
                                            #top #wrap_all .cardContainer.{$element_id} .amg-card-container .card-title-container",
                    'corner'            => "#top #wrap_all .cardContainer.{$element_id} .amg-card-container  .card-title-container:before "
                );
    
                $element_styling->add_selectors( $selectors );
    
                $result['default'] = $default;
                $result['atts'] = $atts;
                $result['content'] = $content;
                $result['meta'] = $meta;
                $result['element_styling'] = $element_styling;
    
                $this->parent_atts = $atts;
                amg_sc_cards::$initial = $atts['initial'];
                amg_sc_cards::$tags = array();
    
                $this->el_styling = $element_styling;
    
                return $result;
            }
    
            /**
             * Create custom stylings for items
             *
             * @since 4.8.4
             * @param array $args
             * @return array
             */
            protected function get_element_styles_item( array $args )
            {
                $result = parent::get_element_styles_item( $args );
    
                /**
                 * Fixes a problem when 3-rd party plugins call nested shortcodes without executing main shortcode  (like YOAST in wpseo-filter-shortcodes)
                 */
                if( ! $this->in_sc_exec )
                {
                    return $result;
                }
                extract( $result );
                $default = array(
                    'title'			=> '',
                    'tags'			=> '',
                    'custom_id'		=> '',
                    'custom_markup'	=> ''
                );
                $default = $this->sync_sc_defaults_array( $default, 'modal_item', 'no_content' );
                $locked = array();
                Avia_Element_Templates()->set_locked_attributes( $atts, $this, $shortcodename, $default, $locked, $content );
    
                $classes = array(
                    'card',
                    $element_id
                );
    
                $element_styling->add_classes( 'item_container', $classes );
                $element_styling->add_classes( 'item_container', $this->class_by_arguments( 'icon_select, size, position', $atts, true, 'array' ) );
                $element_styling->add_responsive_classes( 'item_container', 'hide_element', $atts );
                $element_styling->add_responsive_font_sizes( 'container', 'size-content', $atts, $this );
    
                $this->set_button_styes( $element_styling, $atts );
    
                /////////////////////////////   BUTTON START ////////////////////////////// BUTTON START ////////////////////////////////
                if( $atts['icon_select'] == 'yes' )
                {
                    $atts['icon_select'] = 'yes-left-icon';
                }
                $classes = array(
                    'avia-button',
                    $element_id
                );
    
                $element_styling->add_classes( 'container', $classes );
                $element_styling->add_classes( 'container', $this->class_by_arguments( 'button_icon_select, size, position', $atts, true, 'array' ) );
                $element_styling->add_responsive_classes( 'container', 'hide_element', $atts );
                $element_styling->add_responsive_font_sizes( 'container', 'size-text', $atts, $this );
                $element_styling->add_responsive_font_sizes( 'button_icon', 'size-button-icon', $atts, $this );
    
                $element_styling->add_classes( 'wrap', $element_id . '-wrap' );
    
                $this->set_button_styes( $element_styling, $atts );
    
                if( ! empty( $atts['css_position'] ) )
                {
                    $element_styling->add_responsive_styles( 'wrap', 'css_position', $atts, $this );
                }
    
                $element_styling->add_responsive_styles( 'container', 'margin', $atts, $this );
                $element_styling->add_responsive_styles( 'container', 'padding', $atts, $this );
    
                if( ! in_array( $atts['animation'], array( 'no-animation', '' ) ) )
                {
                    if( false !== strpos( $atts['animation'], 'curtain-reveal-' ) )
                    {
                        $classes_curtain = array(
                            'avia-curtain-reveal-overlay',
                            'av-animated-when-visible-95',
                            'animate-all-devices',
                            $atts['animation']
                        );
    
                        //	animate in preview window
                        if( is_admin() )
                        {
                            $classes_curtain[] = 'avia-animate-admin-preview';
                        }
    
                        $element_styling->add_classes( 'curtain', $classes_curtain );
                        $element_styling->add_callback_styles( 'curtain', array( 'animation' ) );
                    }
                    else
                    {
                        $wrap_classes = array(
                            'avia_animated_button',
                            'av-animated-when-visible-95',
    //										'animate-all-devices',
                            $atts['animation']
                        );
    
                        if( is_admin() )
                        {
                            $wrap_classes[] = 'avia-animate-admin-preview';
    
                            $element_styling->add_callback_styles( 'wrap', array( 'animation' ) );
                        }
                        else
                        {
                            $element_styling->add_callback_styles( 'wrap-animation', array( 'animation' ) );
                        }
    
                        $element_styling->add_classes( 'wrap', $wrap_classes );
                    }
                }
                /////////////////////////////   BUTTON END //////////////////////////////// BUTTON END //////////////////////////////////
    
                $selectors = array(
                    'item_container'	=> ".cardContainer .amg-card-container.{$element_id}",
                    'content'	        => ".cardContainer .amg-card-container.{$element_id} .amg-card-content"
                );
    
                /////////////////////////////   BUTTON START ////////////////////////////// BUTTON START ////////////////////////////////
                $selectors = AbstraktEnfoldExtensions::amg_button_append_selectors($selectors, $element_id);
                /////////////////////////////   BUTTON END //////////////////////////////// BUTTON END //////////////////////////////////
    
                $element_styling->add_selectors( $selectors );
    
                $result['default'] = $default;
                $result['atts'] = $atts;
                $result['content'] = $content;
                $result['element_styling'] = $element_styling;
    
                return $result;
            }
    
            /**
             * Frontend Shortcode Handler
             *
             * @param array $atts array of attributes
             * @param string $content text within enclosing form of shortcode element
             * @param string $shortcodename the shortcode found, when == callback name
             * @return string $output returns the modified html string
             */
            public function shortcode_handler( $atts, $content = '', $shortcodename = '', $meta = '' )
            {
                $result = $this->get_element_styles( compact( array( 'atts', 'content', 'shortcodename', 'meta' ) ) );
    
                extract( $result );
                extract( $atts );
    
                $this->subitem_inline_styles = '';
    
                amg_sc_cards::$counter = 1;
    
                $content = ShortcodeHelper::avia_remove_autop( $content, true );
    
                $style_tag = $element_styling->get_style_tag( $element_id );
                $item_tag = $element_styling->style_tag_html( $this->subitem_inline_styles, 'sub-' . $element_id );
                $container_class = $element_styling->get_class_string( 'item_container' );
                $class = $atts['animation'];
                $class .= " {$atts['title_position']}";
    
                $output  = '';
                $output .= $style_tag;
                $output .= $item_tag;
                $output .= "<div id='app' data-animated='{$atts['intro']}' data-duration='{$atts['duration']}' data-height='{$atts['min_height']}' data-mobile-height='{$atts['mobile_min_height']}' {$meta['custom_el_id']} class='{$container_class} {$class}' {$markup_faq}>";
                $output .= "<div class='amg-flex-box'>";
                $output .= $content;
                $output .= '</div>';
                $output .= '</div>';
    
                $this->in_sc_exec = false;
    
                return $output;
            }
    
            /**
             * Shortcode handler
             *
             * @param array $atts
             * @param string $content
             * @param string $shortcodename
             * @return string
             */
            public function amg_card( $atts, $content = '', $shortcodename = '' )
            {
                /**
                 * Fixes a problem when 3-rd party plugins call nested shortcodes without executing main shortcode  (like YOAST in wpseo-filter-shortcodes)
                 */
                if( ! $this->in_sc_exec )
                {
                    return '';
                }
    
                $result = $this->get_element_styles_item( compact( array( 'atts', 'content', 'shortcodename' ) ) );
    
                extract( $result );
                $toggle_atts = $atts;
    
                $this->subitem_inline_styles .= $element_styling->get_style_tag( $element_id, 'rules_only' );
    
                /////////////////////////////   BUTTON START //////////////////////////////// BUTTON START //////////////////////////////////
    
                $output  = '';
                $output .= $style_tag;
                $button = '';
    
                if( '' != $atts['color_options'] )
                {
                    if( 'custom' != $atts['btn_color_bg_hover'] && 'btn_custom_grad' != $atts['btn_color_bg'] )
                    {
                        //	must be added otherwise we get a bottom border !!!
    //					$style_hover = "style='background-color:{$atts['btn_color_bg_hover']};'";
    
                        if( $this->is_special_button_color( $atts['btn_color_bg_hover'] ) )
                        {
                            $background_hover = "<span class='avia_button_background avia-button avia-color-{$atts['btn_color_bg_hover']}' {$style_hover}></span>";
                        }
                    }
                }
    
                $style_tag = $element_styling->get_style_tag( $element_id );
                $wrap_class = $element_styling->get_class_string( 'wrap' );
                $button_container_class = $element_styling->get_class_string( 'container' );
                if ($atts['button'] == 'yes') {
                    $button = AbstraktEnfoldExtensions::amg_create_button($atts, $meta, $button_container_class, $style_tag, $wrap_class, $background_hover);
                }
    
                /////////////////////////////   BUTTON END //////////////////////////////// BUTTON END //////////////////////////////////
    
                $output .= "<div class='amg-flex-column card'>";
                $output .= '<div class="amg-card-container">';
                $output .= '<div class="amg-flip-box">';
                $output .= '<div class="amg-card-content">';
                $output .= ShortcodeHelper::avia_apply_autop( ShortcodeHelper::avia_remove_autop( $content ) );
                $output .= $button;
                $output .= '</div>';
                $output .= '<div id="' . $toggle_atts['custom_id'] . '" class="amg-card-image" id="card-image-' . $toggle_atts['custom_id'] . '"><img alt="' . $toggle_atts['title'] . '" src="' . $toggle_atts['src'] . '"></div>';
                $output .= "<div class='card-title-container'><{$this->heading_tag} class='amg-card-title'>" . $toggle_atts['title'] . "</{$this->heading_tag}></div>";;
                $output .= '</div>';
                $output .= '</div>';
                $output .= '</div>';
    
                amg_sc_cards::$counter ++;
    
                return $output;
            }
        }
    }
    
    #1478121

    Hello?

Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.