PATH:
home
/
grupasm
/
www
/
wp-content
/
themes
/
enfold
/
config-templatebuilder
/
avia-shortcodes
/
promobox
<?php /** * Promo Box * * Creates a notification box with call to action button */ if ( ! defined( 'ABSPATH' ) ) { exit; } // Exit if accessed directly if ( ! class_exists( 'avia_sc_promobox' ) ) { class avia_sc_promobox extends aviaShortcodeTemplate { /** * Create the config array for the shortcode button */ function shortcode_insert_button() { $this->config['version'] = '1.0'; $this->config['self_closing'] = 'no'; $this->config['name'] = __( 'Promo Box', 'avia_framework' ); $this->config['tab'] = __( 'Content Elements', 'avia_framework' ); $this->config['icon'] = AviaBuilder::$path['imagesURL']. 'sc-promobox.png'; $this->config['order'] = 50; $this->config['target'] = 'avia-target-insert'; $this->config['shortcode'] = 'av_promobox'; $this->config['tooltip'] = __( 'Creates a notification box with call to action button', 'avia_framework' ); $this->config['preview'] = 'xlarge'; $this->config['disabling_allowed'] = true; $this->config['id_name'] = 'id'; $this->config['id_show'] = 'yes'; } function extra_assets() { //load css wp_enqueue_style( 'avia-module-promobox', AviaBuilder::$path['pluginUrlRoot'] . 'avia-shortcodes/promobox/promobox.css', array( 'avia-layout' ), false ); } /** * 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 */ 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_promo' ), $this->popup_key( 'content_button' ) ), '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_button' ), $this->popup_key( 'styling_colors' ) ), '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_animation' ) ), array( 'type' => 'template', 'template_id' => $this->popup_key( 'advanced_link' ) ), array( 'type' => 'template', 'template_id' => 'screen_options_toggle' ), 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' => 'tab_container_close', 'nodescription' => true ) ); } /** * Create and register templates for easier maintainance * * @since 4.6.4 */ protected function register_dynamic_templates() { /** * Content Tab * =========== */ $c = array( array( 'name' => __( 'Content', 'avia_framework' ), 'desc' => __( 'Enter some content for Promo Box', 'avia_framework' ), 'id' => 'content', 'type' => 'tiny_mce', 'std' => __( 'Welcome Stranger! This is an example Text for your fantastic Promo Box! Feel Free to delete it and replace it with your own fancy Message!', 'avia_framework' ) ), ); $template = array( array( 'type' => 'template', 'template_id' => 'toggle', 'title' => __( 'Text', 'avia_framework' ), 'content' => $c ), ); AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'content_promo' ), $template ); $c = array( array( 'name' => __( 'Promo Box Button', 'avia_framework' ), 'desc' => __( 'Do you want to display a Call to Action Button on the right side of the box?', 'avia_framework' ), 'id' => 'button', 'type' => 'select', 'std' => 'yes', 'subtype' => array( __( 'Yes', 'avia_framework' ) => 'yes', __( 'No', 'avia_framework' ) => 'no', ) ), array( 'name' => __( 'Button Label', 'avia_framework' ), 'desc' => __( 'This is the text that appears on your button.', 'avia_framework' ), 'id' => 'label', 'type' => 'input', 'required' => array( 'button', 'equals','yes' ), 'std' => __( 'Click me', 'avia_framework' ) ), array( 'name' => __( 'Button Icon', 'avia_framework' ), 'desc' => __( 'Should an icon be displayed at the left side of the button', 'avia_framework' ), 'id' => 'icon_select', 'type' => 'select', 'std' => 'no', 'required' => array( 'button', 'equals', 'yes' ), 'subtype' => array( __( 'No Icon', 'avia_framework' ) => 'no', __( 'Yes, display Icon', 'avia_framework' ) => 'yes' ) ), array( 'name' => __( 'Button Icon','avia_framework' ), 'desc' => __( 'Select an icon for your Button below','avia_framework' ), 'id' => 'icon', 'type' => 'iconfont', 'std' => '', 'required' => array( 'icon_select', 'equals', 'yes' ) ), ); $template = array( array( 'type' => 'template', 'template_id' => 'toggle', 'title' => __( 'Button', 'avia_framework' ), 'content' => $c ), ); AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'content_button' ), $template ); /** * Styling Tab * =========== */ $c = array( array( 'type' => 'template', 'template_id' => 'named_colors', 'name' => __( 'Button Color', 'avia_framework' ), 'desc' => __( 'Choose a color for your button bar here', 'avia_framework' ), 'id' => 'color', 'std' => 'theme-color', 'required' => array( 'button', 'equals', 'yes' ), 'custom' => true, 'translucent' => array() ), array( 'name' => __( 'Custom Background Color', 'avia_framework' ), 'desc' => __( 'Select a custom background color for your Button here', 'avia_framework' ), 'id' => 'custom_bg', 'type' => 'colorpicker', 'std' => '#444444', 'required' => array( 'color', 'equals', 'custom' ) ), array( 'name' => __( 'Custom Font Color', 'avia_framework' ), 'desc' => __( 'Select a custom font color for your Button here', 'avia_framework' ), 'id' => 'custom_font', 'type' => 'colorpicker', 'std' => '#ffffff', 'required' => array( 'color', 'equals', 'custom' ) ), array( 'name' => __( 'Button Size', 'avia_framework' ), 'desc' => __( 'Choose the size of your button here', 'avia_framework' ), 'id' => 'size', 'type' => 'select', 'std' => 'large', 'required' => array( 'button', 'equals', 'yes' ), 'subtype' => array( __( 'Small', 'avia_framework' ) => 'small', __( 'Medium', 'avia_framework' ) => 'medium', __( 'Large', 'avia_framework' ) => 'large', )), ); $template = array( array( 'type' => 'template', 'template_id' => 'toggle', 'title' => __( 'Button', 'avia_framework' ), 'content' => $c ), ); AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'styling_button' ), $template ); $c = array( array( 'name' => __( 'Colors', 'avia_framework' ), 'desc' => __( 'Either use the themes default colors or apply some custom ones', 'avia_framework' ), 'id' => 'box_color', 'type' => 'select', 'std' => '', 'subtype' => array( __( 'Default', 'avia_framework' ) => '', __( 'Define Custom Colors', 'avia_framework' ) => 'custom'), ), array( 'name' => __( 'Custom Font Color', 'avia_framework' ), 'desc' => __( 'Select a custom font color here', 'avia_framework' ), 'id' => 'box_custom_font', 'type' => 'colorpicker', 'std' => '#ffffff', 'required' => array( 'box_color', 'equals', 'custom' ) ), array( 'name' => __( 'Custom Background Color', 'avia_framework' ), 'desc' => __( 'Select a custom background color here', 'avia_framework' ), 'id' => 'box_custom_bg', 'type' => 'colorpicker', 'std' => '#444444', 'required' => array( 'box_color', 'equals', 'custom' ) ), array( 'name' => __( 'Custom Border Color', 'avia_framework' ), 'desc' => __( 'Select a custom border color here', 'avia_framework' ), 'id' => 'box_custom_border', 'type' => 'colorpicker', 'std' => '#333333', 'required' => array( 'box_color', 'equals', 'custom' ) ), ); $template = array( array( 'type' => 'template', 'template_id' => 'toggle', 'title' => __( 'Colors', 'avia_framework' ), 'content' => $c ), ); AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'styling_colors' ), $template ); /** * Advanced Tab * ============ */ $c = array( array( 'name' => __( 'Button Label display', 'avia_framework' ), 'desc' => __( 'Select how to display the label', 'avia_framework' ), 'id' => 'label_display', 'type' => 'select', 'std' => '', 'required' => array( 'button', 'equals', 'yes' ), 'subtype' => array( __( 'Always display', 'avia_framework' ) => '' , __( 'Display on hover', 'avia_framework' ) => 'av-button-label-on-hover', ) ), ); $template = array( array( 'type' => 'template', 'template_id' => 'toggle', 'title' => __( 'Animation', 'avia_framework' ), 'content' => $c ), ); AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'advanced_animation' ), $template ); $c = array( array( 'type' => 'template', 'template_id' => 'linkpicker_toggle', 'name' => __( 'Button Link?', 'avia_framework' ), 'desc' => __( 'Where should your button link to?', 'avia_framework' ), 'subtypes' => array( 'manually', 'single', 'taxonomy' ), 'required' => array( 'button', 'equals', 'yes' ), 'target_id' => 'link_target' ), ); AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'advanced_link' ), $c ); } /** * Editor Element - this function defines the visual appearance of an element on the AviaBuilder Canvas * Most common usage is to define some markup in the $params['innerHtml'] which is then inserted into the drag and drop container * Less often used: $params['data'] to add data attributes, $params['class'] to modify the className * * * @param array $params this array holds the default values for $content and $args. * @return $params the return array usually holds an innerHtml key that holds item specific markup. */ function editor_element( $params ) { /** * Fix a bug in 4.7 and 4.7.1 renaming option id (no longer backwards comp.) - can be removed in a future version again */ if( isset( $params['args']['linktarget'] ) ) { $params['args']['link_target'] = $params['args']['linktarget']; } extract( av_backend_icon( $params ) ); // creates $font and $display_char if the icon was passed as param 'icon' and the font as 'font' $params['class'] = ''; $params['innerHtml'] = ''; $params['innerHtml'] .= "<div class='avia_textblock avia_textblock_style'>"; $params['innerHtml'] .= '<div ' . $this->class_by_arguments( 'button', $params['args'] ) . '>'; $params['innerHtml'] .= "<div data-update_with='content' class='avia-promocontent'>" . stripslashes( wpautop( trim( $params['content'] ) ) ) . '</div>'; $params['innerHtml'] .= "<div class='avia_button_box avia_hidden_bg_box'>"; $params['innerHtml'] .= '<div ' . $this->class_by_arguments( 'icon_select, color, size', $params['args'] ) . '>'; $params['innerHtml'] .= '<span ' . $this->class_by_arguments( 'font', $font) . '>'; $params['innerHtml'] .= "<span data-update_with='icon_fakeArg' class='avia_button_icon'>{$display_char}</span>"; $params['innerHtml'] .= '</span>'; $params['innerHtml'] .= "<span data-update_with='label' class='avia_iconbox_title' >{$params['args']['label']}</span>"; $params['innerHtml'] .= ' </div>'; $params['innerHtml'] .= ' </div>'; $params['innerHtml'] .= ' </div>'; $params['innerHtml'] .= '</div>'; return $params; } /** * 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 */ function shortcode_handler( $atts, $content = '', $shortcodename = '', $meta = '' ) { /** * Fix a bug in 4.7 and 4.7.1 renaming option id (no longer backwards comp.) - can be removed in a future version again */ if( isset( $atts['linktarget'] ) ) { $atts['link_target'] = $atts['linktarget']; } extract( AviaHelper::av_mobile_sizes( $atts ) ); //return $av_font_classes, $av_title_font_classes and $av_display_classes $atts = shortcode_atts( array( 'button' => 'yes', 'label' => 'Click me', 'link' => '', 'link_target' => '', 'color' => 'theme-color', 'custom_bg' => '#444444', 'custom_font' => '#ffffff', 'size' => 'small', 'position' => 'center', 'icon_select' => 'yes', 'icon' => '', 'font' => '', 'box_color' => '', 'box_custom_bg' => '', 'box_custom_font' =>'', 'box_custom_border' =>'', 'label_display' =>'' ), $atts, $this->config['shortcode'] ); extract( $atts ); $style = ''; if( $box_color == 'custom' ) { if( $box_custom_bg ) $style .= "background:$box_custom_bg;"; if( $box_custom_font ) $style .= "color:$box_custom_font;"; if( $box_custom_border ) $style .= "border-color:$box_custom_border;"; } if( ! empty( $style ) ) { $style = "style='{$style}'"; } $atts['position'] = 'right'; $output = ''; $output.= " <div {$meta['custom_el_id']} {$style} class='av_promobox {$av_display_classes} " . $this->class_by_arguments( 'button', $atts, true ) . " {$meta['el_class']}'>"; $output.= " <div class='avia-promocontent'>" . stripslashes( wpautop( trim( $content ) ) ) . '</div>'; if( $atts['button'] == 'yes' ) { global $shortcode_tags; $fake = true; $output.= call_user_func( $shortcode_tags['av_button'], $atts, null, 'av_button', $fake ); } $output.= '</div>'; return do_shortcode( $output ); } } }
[+]
..
[-] promobox.php
[edit]
[-] promobox.css
[edit]