'1/1', 'av_cell_one_half' => '1/2', 'av_cell_one_third' => '1/3', 'av_cell_one_fourth' => '1/4', 'av_cell_one_fifth' => '1/5', 'av_cell_two_third' => '2/3', 'av_cell_three_fourth' => '3/4', 'av_cell_two_fifth' => '2/5', 'av_cell_three_fifth' => '3/5', 'av_cell_four_fifth' => '4/5' ); /** * Define the width for a cell * * @since 4.2.1 * @var array */ static protected $size_width = array( 'av_cell_one_full' => 1.0, 'av_cell_one_half' => 0.5, 'av_cell_one_third' => 0.33, 'av_cell_one_fourth' => 0.25, 'av_cell_one_fifth' => 0.2, 'av_cell_two_third' => 0.66, 'av_cell_three_fourth' => 0.75, 'av_cell_two_fifth' => 0.4, 'av_cell_three_fifth' => 0.6, 'av_cell_four_fifth' => 0.8 ); /** * This constructor is implicity called by all derived classes * To avoid duplicating code we put this in the constructor * * @since 4.2.1 * @param AviaBuilder $builder */ public function __construct( $builder ) { parent::__construct( $builder ); $this->config['version'] = '1.0'; $this->config['type'] = 'layout'; $this->config['self_closing'] = 'no'; $this->config['contains_text'] = 'no'; $this->config['contains_layout'] = 'yes'; $this->config['contains_content'] = 'yes'; // $this->config['first_in_row'] = 'first'; } /** * Create the config array for the shortcode button */ protected function shortcode_insert_button() { $this->config['invisible'] = true; $this->config['name'] = '1/1'; $this->config['icon'] = AviaBuilder::$path['imagesURL'] . 'sc-full.png'; $this->config['tab'] = __( 'Layout Elements', 'avia_framework' ); $this->config['order'] = 100; $this->config['target'] = 'avia-section-drop'; $this->config['shortcode'] = 'av_cell_one_full'; $this->config['html_renderer'] = false; $this->config['tinyMCE'] = array( 'disable' => 'true' ); $this->config['tooltip'] = __( 'Creates a single full width column', 'avia_framework' ); $this->config['drag-level'] = 2; $this->config['drop-level'] = 1; } /** * 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' => __( 'Layout' , 'avia_framework' ), 'nodescription' => true ), array( 'type' => 'template', 'template_id' => $this->popup_key( 'layout_alignment' ) ), 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_padding' ), $this->popup_key( 'styling_background' ), $this->popup_key( 'layout_svg_dividers' ) ), '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_link' ) ), array( 'type' => 'template', 'template_id' => 'columns_visibility_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() { /** * Layout Tab * =========== */ $c = array( array( 'name' => __( 'Vertical Align', 'avia_framework' ), 'desc' => __( 'Choose the vertical alignment of your cells content.', 'avia_framework' ), 'id' => 'vertical_align', 'type' => 'select', 'std' => 'top', 'subtype' => array( __( 'Top', 'avia_framework' ) => 'top', __( 'Middle', 'avia_framework' ) => 'middle', __( 'Bottom', 'avia_framework' ) => 'bottom', ) ) ); AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'layout_alignment' ), $c, true ); /** * Styling Tab * =========== */ $c = array( array( 'type' => 'template', 'template_id' => 'margin_padding', 'content' => array( 'padding' ), 'name' => __( 'Cell Padding', 'avia_framework' ), 'desc' => __( 'Set the distance from the cell content to the border here. Theme default is 30px.', 'avia_framework' ), 'lockable' => true ) ); $template = array( array( 'type' => 'template', 'template_id' => 'toggle', 'title' => __( 'Padding', 'avia_framework' ), 'content' => $c ), ); AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'styling_padding' ), $template, true ); $c = array( array( 'name' => __( 'Background', 'avia_framework' ), 'desc' => __( 'Select the type of background for the column.', 'avia_framework' ), 'id' => 'background', 'type' => 'select', 'std' => 'bg_color', 'subtype' => array( __( 'Background Color', 'avia_framework' ) => 'bg_color', __( 'Background Gradient', 'avia_framework' ) => 'bg_gradient', ) ), array( 'name' => __( 'Custom Background Color', 'avia_framework' ), 'desc' => __( 'Select a custom background color for this cell here. Leave empty for default color', 'avia_framework' ), 'id' => 'background_color', 'type' => 'colorpicker', 'rgba' => true, 'required' => array( 'background', 'equals', 'bg_color' ), 'std' => '', ), array( 'type' => 'template', 'template_id' => 'gradient_colors', 'id' => array( 'background_gradient_direction', 'background_gradient_color1', 'background_gradient_color2', 'background_gradient_color3' ), 'lockable' => true, 'required' => array( 'background', 'equals', 'bg_gradient' ), 'container_class' => array( '', 'av_third av_third_first', 'av_third', 'av_third' ), ), array( 'name' => __( 'Custom Background Image', 'avia_framework' ), 'desc' => __( "Either upload a new, or choose an existing image from your media library. Leave empty if you don't want to use a background image.", 'avia_framework' ), 'id' => 'src', 'type' => 'image', 'title' => __( 'Insert Image', 'avia_framework' ), 'button' => __( 'Insert', 'avia_framework' ), 'std' => '' ), array( 'name' => __( 'Background Attachment', 'avia_framework' ), 'desc' => __( 'Background can either scroll with the page or be fixed', 'avia_framework' ), 'id' => 'background_attachment', 'type' => 'select', 'std' => 'scroll', 'required' => array( 'src', 'not', '' ), 'subtype' => array( __( 'Scroll', 'avia_framework' ) => 'scroll', __( 'Fixed (relative to the viewport)', 'avia_framework' ) => 'fixed', __( 'Local (relative to cell)', 'avia_framework' ) => 'local' ) ), array( 'type' => 'template', 'template_id' => 'background_image_position' ) ); $template = array( array( 'type' => 'template', 'template_id' => 'toggle', 'title' => __( 'Background', 'avia_framework' ), 'content' => $c ), ); AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'styling_background' ), $template, true ); // new insertion dividers $template = array( array( 'type' => 'template', 'template_id' => 'svg_divider_toggle', 'lockable' => true ) ); AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'layout_svg_dividers' ), $template ); /** * Advanced Tab * ============ */ $c = array( array( 'type' => 'template', 'template_id' => 'linkpicker_toggle', 'name' => __( 'Cell Link', 'avia_framework' ), 'desc' => __( 'Select where this cell should link to', 'avia_framework' ), 'subtypes' => array( 'no', 'manually', 'single', 'taxonomy' ), 'no_toggle' => true, 'title_attr' => true ), array( 'name' => __( 'Hover Effect', 'avia_framework' ), 'desc' => __( 'Choose if you want to have a hover effect on the column', 'avia_framework' ), 'id' => 'link_hover', 'type' => 'select', 'required' => array( 'link', 'not', '' ), 'std' => '', 'subtype' => array( __( 'No', 'avia_framework' ) => '', __( 'Yes', 'avia_framework' ) => 'opacity80' ) ) ); $template = array( array( 'type' => 'template', 'template_id' => 'toggle', 'title' => __( 'Column Link', 'avia_framework' ), 'content' => $c ), ); AviaPopupTemplates()->register_dynamic_template( $this->popup_key( 'advanced_link' ), $template, true ); } /** * 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 holds the default values for $content and $args. * @return array usually holds an innerHtml key that holds item specific markup. */ public function editor_element( $params ) { extract( $params ); if( empty( $data ) || ! is_array( $data ) ) { $data = array(); } $name = $this->config['shortcode']; $drag = $this->config['drag-level']; $drop = $this->config['drop-level']; $data['shortcodehandler'] = $this->config['shortcode']; $data['modal_title'] = __( 'Edit Cell','avia_framework' ); $data['modal_ajax_hook'] = $this->config['shortcode']; $data['dragdrop-level'] = $this->config['drag-level']; $data['allowed-shortcodes'] = $this->config['shortcode']; $data['closing_tag'] = $this->is_self_closing() ? 'no' : 'yes'; if( ! empty( $this->config['modal_on_load'] ) ) { $data['modal_on_load'] = $this->config['modal_on_load']; } $dataString = AviaHelper::create_data_string( $data ); // add background color or gradient to indicator $el_bg = ''; if( empty( $args['background'] ) || ( $args['background'] == 'bg_color' ) ) { $el_bg = ! empty( $args['background_color'] ) ? " style='background:{$args['background_color']};'" : ''; } else { if( $args['background_gradient_color1'] && $args['background_gradient_color2'] ) { $el_bg = "style='background:linear-gradient({$args['background_gradient_color1']},{$args['background_gradient_color2']});'"; } } $output = "
"; $output .= "
"; $output .= "" . avia_sc_cell::$size_array[ $name ] . ''; $output .= "x"; $output .= "" . __( 'Clone Cell', 'avia_framework' ) . ''; if( ! empty( $this->config['popup_editor'] ) ) { $output .= " " . __( 'edit', 'avia_framework' ) . ''; } $output .= '
'; $output .= "
"; $output .= "'; if( $content ) { $output .= $this->builder->do_shortcode_backend( $content ); } $output .= '
'; $output .= "
get_bg_string( $args ) . ">
"; $output .= '
'; return $output; } /** * Returns the width of the cells. As this is the base class for all cells we only need to implement it here. * * @since 4.2.1 * @return float */ public function get_element_width() { return isset( avia_sc_cell::$size_width[ $this->config['shortcode'] ] ) ? avia_sc_cell::$size_width[ $this->config['shortcode'] ] : 1.0; } /** * Only needed for backend canvas * * @param array $args * @return string */ protected function get_bg_string( $args ) { $style = ''; if( ! empty( $args['attachment'] ) ) { $image = false; $src = wp_get_attachment_image_src( $args['attachment'], $args['attachment_size'] ); if( ! empty( $src[0] ) ) { $image = $src[0]; } if( $image ) { $element_styling = new aviaElementStyling( $this, 'xxx' ); $bg = ! empty( $args['background_color'] ) ? $args['background_color'] : 'transparent'; $pos = $element_styling->background_position_string( $args['background_position'], 'center center' ); $repeat = ! empty( $args['background_repeat'] ) ? $args['background_repeat'] : 'no-repeat'; $extra = ''; if( $repeat == 'stretch' ) { $repeat = 'no-repeat'; $extra = 'background-size: cover;'; } if( $repeat == 'contain' ) { $repeat = 'no-repeat'; $extra = 'background-size: contain;'; } $style = "style='background: {$bg} url($image) {$repeat} {$pos}; {$extra}'"; } } return $style; } /** * Create custom stylings * * @since 4.8.7 * @param array $args * @return array */ protected function get_element_styles( array $args ) { $result = parent::get_element_styles( $args ); extract( $result ); $default = array( 'vertical_align' => '', 'padding' => '', 'background' => 'bg_color', 'background_gradient_color1' => '', 'background_gradient_color2' => '', 'background_gradient_direction' => '', 'background_color' => '', 'background_position' => '', 'background_repeat' => '', 'background_attachment' => '', 'fetch_image' => '', 'attachment_size' => '', 'attachment' => '', 'link' => '', 'linktarget' => '', 'link_hover' => '', 'mobile_display' => '', 'mobile_col_pos' => 0, 'svg_dividers' => '' ); $default = $this->sync_sc_defaults_array( $default, 'no_modal_item', 'no_content' ); $atts = shortcode_atts( $default, $atts, $this->config['shortcode'] ); // fallback - prior 4.8.7 '0px' was handled this way if( $atts['padding'] == '0px' || $atts['padding'] == '0' || $atts['padding'] == '0%' ) { $atts['padding'] = '0px'; } $element_styling->create_callback_styles( $atts ); $classes = array( 'flex_cell', $element_id, 'av-gridrow-cell', str_replace( 'av_cell_', 'av_', $shortcodename ), 'no_margin', $atts['mobile_display'] ); $element_styling->add_classes( 'container', $classes ); $element_styling->add_classes_from_array( 'container', $meta, 'el_class' ); if( ! empty( $atts['vertical_align'] ) ) { $element_styling->add_classes( 'container', "content-align-{$atts['vertical_align']}" ); $element_styling->add_styles( 'container', array( 'vertical-align' => $atts['vertical_align'] ) ); } if( ! empty( avia_sc_cell::$attr['mobile_column_order'] ) && 'individual' == avia_sc_cell::$attr['mobile_column_order'] ) { $element_styling->add_styles( 'container', array( 'order' => $atts['mobile_col_pos'] ) ); } if( ! empty( avia_sc_cell::$attr['min_height'] ) && empty( avia_sc_cell::$attr['min_height_percent'] ) ) { $min = (int) avia_sc_cell::$attr['min_height']; $element_styling->add_styles( 'container', array( 'height' => $min . 'px', 'min-height' => $min . 'px' ) ); } // SVG Dividers $element_styling->add_classes( 'divider-top', array( 'avia-divider-svg', 'avia-divider-svg-' . $atts['svg_div_top'] ) ); $element_styling->add_classes( 'divider-bottom', array( 'avia-divider-svg', 'avia-divider-svg-' . $atts['svg_div_bottom'] ) ); $element_styling->add_callback_styles( 'divider-top-svg', array( 'svg_div_top_svg', 'svg_div_top_color' ) ); $element_styling->add_callback_styles( 'divider-bottom-svg', array( 'svg_div_bottom_svg', 'svg_div_bottom_color' ) ); $element_styling->add_callback_classes( 'divider-top', array( 'svg_div_top' ) ); $element_styling->add_callback_classes( 'divider-bottom', array( 'svg_div_bottom' ) ); /** * MODIFIKATION: Padding-Behandlung für .flex_cell_inner * ===================================================== */ // Füge Klassen für .flex_cell_inner hinzu $inner_classes = array(); // fallback - prior 4.8.7 '0px' was handled this way if( $atts['padding'] == '0px' ) { $inner_classes[] = 'av-zero-padding'; } $element_styling->add_classes( 'inner', $inner_classes ); /** * Allow fallback to ignore responsive padding in case a page/site gets broken * * @since 5.3 * @param boolean $disable_responsive_padding * @param array $atts * @param array $result * @param aviaShortcodeTemplate $this * @return false|mixed anything not false to fallback */ $disable_responsive_padding = apply_filters( 'avf_disable_grid_cells_responsive_padding', false, $atts, $result, $this ); // MODIFIKATION: Padding jetzt auf 'inner' statt 'container' if( false !== $disable_responsive_padding ) { // fallback $element_styling->add_callback_styles( 'inner', array( 'padding' ) ); } else { $element_styling->add_responsive_styles( 'inner-padding', 'padding', $atts, $this, '!important' ); } /** * Style Background (bleibt auf .flex_cell) * ========================================= */ if( ! empty( $atts['attachment'] ) ) { $src = wp_get_attachment_image_src( $atts['attachment'], $atts['attachment_size'] ); if( ! empty( $src[0] ) ) { $atts['fetch_image'] = $src[0]; } } if( $atts['background_repeat'] == 'stretch' ) { $element_styling->add_classes( 'container', 'avia-full-stretch' ); $atts['background_repeat'] = 'no-repeat'; } if( $atts['background_repeat'] == 'contain' ) { $element_styling->add_classes( 'container', 'avia-full-contain' ); $atts['background_repeat'] = 'no-repeat'; } // background image, color and gradient $bg_image = ''; if( ! empty( $atts['fetch_image'] ) ) { $bg_pos = $element_styling->background_position_string( $atts['background_position'] ); $bg_image = "url({$atts['fetch_image']}) {$bg_pos} {$atts['background_repeat']} {$atts['background_attachment']}"; } if( $atts['background'] != 'bg_gradient' ) { if( ! empty( $bg_image ) ) { $element_styling->add_styles( 'container', array( 'background' => "{$bg_image} {$atts['background_color']}" ) ); } else if( ! empty( $atts['background_color'] ) ) { $element_styling->add_styles( 'container', array( 'background-color' => $atts['background_color'] ) ); } } // assemble gradient declaration else if( ! empty( $atts['background_gradient_color1'] ) && ! empty( $atts['background_gradient_color2'] ) ) { // fallback background color for IE9 $element_styling->add_styles( 'container', array( 'background-color' => $atts['background_gradient_color1'] ) ); if( empty( $bg_image ) ) { $element_styling->add_callback_styles( 'container', array( 'background_gradient_direction' ) ); } else { $gradient_val_array = $element_styling->get_callback_settings( 'background_gradient_direction', 'styles' ); $gradient_val = isset( $gradient_val_array['background'] ) ? $gradient_val_array['background'] : ''; // ',' is needed !!! $gradient_style = ! empty( $gradient_val ) ? "{$bg_image}, {$gradient_val}" : $bg_image; $element_styling->add_styles( 'container', array( 'background' => $gradient_style ) ); } } else { // fallback to image and first gradient color if( ! empty( $bg_image ) ) { $element_styling->add_styles( 'container', array( 'background' => "{$bg_image} {$atts['background_gradient_color1']}" ) ); } else if( ! empty( $atts['background_gradient_color1'] ) ) { $element_styling->add_styles( 'container', array( 'background-color' => $atts['background_gradient_color1'] ) ); } } // MODIFIKATION: Erweiterte Selektoren für .flex_cell_inner $selectors = array( 'container' => ".flex_cell.{$element_id}", 'inner' => ".flex_cell.{$element_id} .flex_cell_inner", 'divider-top-div' => ".flex_cell.{$element_id} .avia-divider-svg-top", 'divider-bottom-div' => ".flex_cell.{$element_id} .avia-divider-svg-bottom", 'divider-top-svg' => ".flex_cell.{$element_id} .avia-divider-svg-top svg", 'divider-bottom-svg' => ".flex_cell.{$element_id} .avia-divider-svg-bottom svg", // see grid.css !!! 'inner-padding' => ".responsive #top #wrap_all .flex_cell.{$element_id} .flex_cell_inner" ); $element_styling->add_selectors( $selectors ); $result['default'] = $default; $result['atts'] = $atts; $result['content'] = $content; $result['element_styling'] = $element_styling; $result['meta'] = $meta; return $result; } /** * Returns the modal popups svg divider preview windows in $svg_list * * @since 4.8.4 * @param array $args * @param array $svg_list * @return array */ public function build_svg_divider_preview( array $args, array $svg_list ) { // clear content and not needed settings - we only need minimal stylings $args['content'] = ''; unset( $args['atts']['content'] ); $result = $this->get_element_styles( $args ); extract( $result ); $dummy_text = __( 'Grid Cell Dummy Content to demonstrate "Bring To Front" option', 'avia_framework' ); foreach( $svg_list as $id => $info ) { $svg_height = $atts[ $id . '_height' ]; $svg_max_height = $atts[ $id . '_max_height' ]; if( ! is_numeric( $svg_height ) ) { $svg_height = is_numeric( $svg_max_height ) ? $svg_max_height : 100; } $dummy_dist = $svg_height > 30 ? 20 : 5; $dummy_height = $svg_height + 20; $style_col = array( 'height' => max( $svg_height + 120, 150 ) . 'px' ); $style_dummy = array( 'height' => $dummy_height . 'px', 'line-height' => $dummy_height . 'px', ); if( 'top' == $info['location'] ) { $class = 'av-top-divider'; $element_styling->add_styles( 'preview-column-top', $style_col ); $element_styling->add_styles( 'preview-dummy-top', array( 'top' => $dummy_dist . 'px' ) ); $element_styling->add_styles( 'preview-dummy-top', $style_dummy ); } else { $class = 'av-bottom-divider'; $element_styling->add_styles( 'preview-column-bottom', $style_col ); $element_styling->add_styles( 'preview-dummy-bottom', array( 'bottom' => $dummy_dist . 'px' ) ); $element_styling->add_styles( 'preview-dummy-bottom', $style_dummy ); } $selectors = array( 'preview-column-top' => ".flex_cell.{$element_id}.av-top-divider", 'preview-column-bottom' => ".flex_cell.{$element_id}.av-bottom-divider", 'preview-dummy-top' => ".flex_cell.{$element_id}.av-top-divider .av-dummy-text", 'preview-dummy-bottom' => ".flex_cell.{$element_id}.av-bottom-divider .av-dummy-text" ); $element_styling->add_selectors( $selectors ); $style_tag = $element_styling->get_style_tag( $element_id ); $html = ''; $html .= $style_tag; $html .= "
"; if( ! empty( $atts[ $id ] ) ) { $html .= AviaSvgShapes()->get_svg_dividers( $atts, $element_styling, $info['location'] ); } $html .= '
'; $html .= '

' . esc_html( $dummy_text ) . '

'; $html .= '
'; $html .= '
'; $svg_list[ $id ]['html'] = $html; } return $svg_list; } /** * Frontend Shortcode Handler (angepasst für flex_cell_inner Klassen) * * @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 = '') { global $avia_config; $result = $this->get_element_styles( compact( array( 'atts', 'content', 'shortcodename', 'meta' ) ) ); extract( $result ); $avia_config['current_column'] = str_replace( 'av_cell_', 'av_', $shortcodename ); $link = AviaHelper::get_url( $atts['link'] ); $link_data = ''; $title_attr_markup = ''; $reader_html = ''; if( ! empty( $link ) ) { $element_styling->add_classes( 'container', array( 'avia-link-column', 'av-cell-link' ) ); if( ! empty( $atts['link_hover'] ) ) { $element_styling->add_classes( 'container', 'avia-link-column-hover' ); } $screen_reader = ''; $link_data .= ' data-link-column-url="' . esc_attr( $link ) . '" '; $title_attr_markup = AviaHelper::get_link_title_attr_markup( $atts['title_attr'] ); if( ( strpos( $atts['linktarget'], '_blank' ) !== false ) ) { $link_data .= ' data-link-column-target="_blank" '; $screen_reader .= ' target="_blank" '; } // we add this, but currently not supported in js if( strpos( $atts['linktarget'], 'nofollow' ) !== false ) { $link_data .= ' data-link-column-rel="nofollow" '; $screen_reader .= ' rel="nofollow" '; } /** * Add an invisible link also for screen readers */ $reader_html .= ''; if( ! empty( $atts['title_attr'] ) ) { $reader_html .= esc_html( $atts['title_attr'] ); } else { $reader_html .= AviaHelper::get_screen_reader_url_text( $atts['link'] ); } $reader_html .= ''; } // if the user uses the column shortcode without the layout builder make sure that paragraphs are applied to the text $inner_content = ( empty( $avia_config['conditionals']['is_builder_template'] ) ) ? ShortcodeHelper::avia_apply_autop( ShortcodeHelper::avia_remove_autop( $content ) ) : ShortcodeHelper::avia_remove_autop( $content, true ); $style_tag = $element_styling->get_style_tag( $element_id ); $container_class = $element_styling->get_class_string( 'container' ); // MODIFIKATION: Hole die inner-Klassen $inner_class = $element_styling->get_class_string( 'inner' ); $output = ''; $output .= $style_tag; $output .= $reader_html; $output .= "
"; $output .= AviaSvgShapes()->get_svg_dividers( $atts, $element_styling, 'top' ); // MODIFIKATION: Füge die inner-Klassen hinzu $output .= "
"; $output .= $inner_content; $output .= '
'; $output .= AviaSvgShapes()->get_svg_dividers( $atts, $element_styling, 'bottom' ); $output .= '
'; unset( $avia_config['current_column'] ); return $output; } } } if( ! class_exists( 'avia_sc_cell_one_half', false ) ) { class avia_sc_cell_one_half extends avia_sc_cell { protected function shortcode_insert_button() { $this->config['invisible'] = true; $this->config['name'] = '1/2'; $this->config['icon'] = AviaBuilder::$path['imagesURL'] . 'sc-half.png'; $this->config['tab'] = __( 'Layout Elements', 'avia_framework' ); $this->config['order'] = 90; $this->config['target'] = 'avia-section-drop'; $this->config['shortcode'] = 'av_cell_one_half'; $this->config['html_renderer'] = false; $this->config['tinyMCE'] = array( 'disable' => 'true' ); $this->config['tooltip'] = __( 'Creates a single column with 50% width', 'avia_framework' ); $this->config['drag-level'] = 2; $this->config['drop-level'] = 1; } } } if( ! class_exists( 'avia_sc_cell_one_third', false ) ) { class avia_sc_cell_one_third extends avia_sc_cell { protected function shortcode_insert_button() { $this->config['invisible'] = true; $this->config['name'] = '1/3'; $this->config['icon'] = AviaBuilder::$path['imagesURL'] . 'sc-third.png'; $this->config['tab'] = __( 'Layout Elements', 'avia_framework' ); $this->config['order'] = 80; $this->config['target'] = 'avia-section-drop'; $this->config['shortcode'] = 'av_cell_one_third'; $this->config['html_renderer'] = false; $this->config['tooltip'] = __( 'Creates a single column with 33% width', 'avia_framework' ); $this->config['drag-level'] = 2; $this->config['drop-level'] = 1; $this->config['tinyMCE'] = array( 'disable' => 'true' ); } } } if( ! class_exists( 'avia_sc_cell_two_third', false ) ) { class avia_sc_cell_two_third extends avia_sc_cell { protected function shortcode_insert_button() { $this->config['invisible'] = true; $this->config['name'] = '2/3'; $this->config['icon'] = AviaBuilder::$path['imagesURL'] . 'sc-two_third.png'; $this->config['tab'] = __( 'Layout Elements', 'avia_framework' ); $this->config['order'] = 70; $this->config['target'] = 'avia-section-drop'; $this->config['shortcode'] = 'av_cell_two_third'; $this->config['html_renderer'] = false; $this->config['tooltip'] = __( 'Creates a single column with 67% width', 'avia_framework' ); $this->config['drag-level'] = 2; $this->config['drop-level'] = 1; $this->config['tinyMCE'] = array( 'disable' => 'true' ); } } } if( ! class_exists( 'avia_sc_cell_one_fourth', false ) ) { class avia_sc_cell_one_fourth extends avia_sc_cell { protected function shortcode_insert_button() { $this->config['invisible'] = true; $this->config['name'] = '1/4'; $this->config['icon'] = AviaBuilder::$path['imagesURL'] . 'sc-fourth.png'; $this->config['tab'] = __( 'Layout Elements', 'avia_framework' ); $this->config['order'] = 60; $this->config['target'] = 'avia-section-drop'; $this->config['shortcode'] = 'av_cell_one_fourth'; $this->config['tooltip'] = __( 'Creates a single column with 25% width', 'avia_framework' ); $this->config['html_renderer'] = false; $this->config['drag-level'] = 2; $this->config['drop-level'] = 1; $this->config['tinyMCE'] = array( 'disable' => 'true' ); } } } if( ! class_exists( 'avia_sc_cell_three_fourth', false ) ) { class avia_sc_cell_three_fourth extends avia_sc_cell { protected function shortcode_insert_button() { $this->config['invisible'] = true; $this->config['name'] = '3/4'; $this->config['icon'] = AviaBuilder::$path['imagesURL'] . 'sc-three_fourth.png'; $this->config['tab'] = __( 'Layout Elements', 'avia_framework' ); $this->config['order'] = 50; $this->config['target'] = 'avia-section-drop'; $this->config['shortcode'] = 'av_cell_three_fourth'; $this->config['tooltip'] = __( 'Creates a single column with 75% width', 'avia_framework' ); $this->config['html_renderer'] = false; $this->config['drag-level'] = 2; $this->config['drop-level'] = 1; $this->config['tinyMCE'] = array( 'disable' => 'true' ); } } } if( ! class_exists( 'avia_sc_cell_one_fifth', false ) ) { class avia_sc_cell_one_fifth extends avia_sc_cell { protected function shortcode_insert_button() { $this->config['invisible'] = true; $this->config['name'] = '1/5'; $this->config['icon'] = AviaBuilder::$path['imagesURL'] . 'sc-fifth.png'; $this->config['tab'] = __( 'Layout Elements', 'avia_framework' ); $this->config['order'] = 40; $this->config['target'] = 'avia-section-drop'; $this->config['shortcode'] = 'av_cell_one_fifth'; $this->config['html_renderer'] = false; $this->config['tooltip'] = __( 'Creates a single column with 20% width', 'avia_framework' ); $this->config['drag-level'] = 2; $this->config['drop-level'] = 1; $this->config['tinyMCE'] = array( 'disable' => 'true' ); } } } if( ! class_exists( 'avia_sc_cell_two_fifth', false ) ) { class avia_sc_cell_two_fifth extends avia_sc_cell { protected function shortcode_insert_button() { $this->config['invisible'] = true; $this->config['name'] = '2/5'; $this->config['icon'] = AviaBuilder::$path['imagesURL'] . 'sc-two_fifth.png'; $this->config['tab'] = __( 'Layout Elements', 'avia_framework' ); $this->config['order'] = 39; $this->config['target'] = 'avia-section-drop'; $this->config['shortcode'] = 'av_cell_two_fifth'; $this->config['html_renderer'] = false; $this->config['tooltip'] = __( 'Creates a single column with 40% width', 'avia_framework' ); $this->config['drag-level'] = 2; $this->config['drop-level'] = 1; $this->config['tinyMCE'] = array( 'disable' => 'true' ); } } } if( ! class_exists( 'avia_sc_cell_three_fifth', false ) ) { class avia_sc_cell_three_fifth extends avia_sc_cell { protected function shortcode_insert_button() { $this->config['invisible'] = true; $this->config['name'] = '3/5'; $this->config['icon'] = AviaBuilder::$path['imagesURL'] . 'sc-three_fifth.png'; $this->config['tab'] = __( 'Layout Elements', 'avia_framework' ); $this->config['order'] = 38; $this->config['target'] = 'avia-section-drop'; $this->config['shortcode'] = 'av_cell_three_fifth'; $this->config['html_renderer'] = false; $this->config['tooltip'] = __( 'Creates a single column with 60% width', 'avia_framework' ); $this->config['drag-level'] = 2; $this->config['drop-level'] = 1; $this->config['tinyMCE'] = array( 'disable' => 'true' ); } } } if( ! class_exists( 'avia_sc_cell_four_fifth', false ) ) { class avia_sc_cell_four_fifth extends avia_sc_cell { protected function shortcode_insert_button() { $this->config['invisible'] = true; $this->config['name'] = '4/5'; $this->config['icon'] = AviaBuilder::$path['imagesURL'] . 'sc-four_fifth.png'; $this->config['tab'] = __( 'Layout Elements', 'avia_framework' ); $this->config['order'] = 37; $this->config['target'] = 'avia-section-drop'; $this->config['shortcode'] = 'av_cell_four_fifth'; $this->config['html_renderer'] = false; $this->config['tooltip'] = __( 'Creates a single column with 80% width', 'avia_framework' ); $this->config['drag-level'] = 2; $this->config['drop-level'] = 1; $this->config['tinyMCE'] = array( 'disable' => 'true' ); } } }