Forum Replies Created
Viewing 2 posts - 1 through 2 (of 2 total)
-
AuthorPosts
-
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; } } }
-
AuthorPosts
Viewing 2 posts - 1 through 2 (of 2 total)