ams['content'] = trim($params['content']);
if(empty($params['content'])) $params['content'] = '[av_cell_one_half first][/av_cell_one_half] [av_cell_one_half][/av_cell_one_half]';
*/
$default = array();
$locked = array();
$attr = $params['args'];
$content = $params['content'];
Avia_Element_Templates()->set_locked_attributes( $attr, $this, $this->config['shortcode'], $default, $locked, $content );
$args = $attr; // => extract( $params );
$name = $this->config['shortcode'];
$data['shortcodehandler'] = $this->config['shortcode'];
$data['modal_title'] = $this->config['name'];
$data['modal_ajax_hook'] = $this->config['shortcode'];
$data['dragdrop-level'] = $this->config['drag-level'];
$data['allowed-shortcodes'] = $this->config['shortcode'];
if( ! empty( $this->config['modal_on_load'] ) )
{
$data['modal_on_load'] = $this->config['modal_on_load'];
}
$dataString = AviaHelper::create_data_string( $data );
if( $content )
{
$final_content = $this->builder->do_shortcode_backend( $content );
$text_area = ShortcodeHelper::create_shortcode_by_array( $name, $content, $args );
}
else if( Avia_Element_Templates()->is_edit_element_page() )
{
$cell = new avia_sc_cell( $this->builder );
$params = array(
'content' => '',
'args' => array(),
'data' => ''
);
$final_content = $cell->editor_element( $params );
$text_area = ShortcodeHelper::create_shortcode_by_array( $name, '[av_cell_one_full][/av_cell_one_full]', $args );
}
else
{
$cell = new avia_sc_cell_one_half( $this->builder );
$params = array(
'content' => '',
'args' => array(),
'data' => ''
);
$final_content = $cell->editor_element( $params );
$final_content .= $cell->editor_element( $params );
$text_area = ShortcodeHelper::create_shortcode_by_array( $name, '[av_cell_one_half][/av_cell_one_half] [av_cell_one_half][/av_cell_one_half]', $args );
}
$title_id = ! empty( $args['id'] ) ? ': ' . ucfirst( $args['id'] ) : '';
$hidden_el_active = ! empty( $args['av_element_hidden_in_editor'] ) ? 'av-layout-element-closed' : '';
$output = "
';
return $output;
}
/**
* 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(
'color' => 'main_color',
'border' => '',
'min_height' => '0',
'min_height_percent' => '',
'min_height_pc' => 25,
'mobile' => 'av-flex-cells',
'mobile_breaking' => '',
'mobile_column_order' => '',
'id' => ''
);
$default = $this->sync_sc_defaults_array( $default, 'no_modal_item', 'no_content' );
$atts = shortcode_atts( $default, $atts, $this->config['shortcode'] );
if( 'percent' == $atts['min_height_percent'] )
{
$atts['min_height_percent'] = $atts['min_height_pc'];
}
// make global for content inside
avia_sc_cell::$attr = $atts;
$classes = array(
'av-layout-grid-container',
$element_id,
'entry-content-wrapper',
$atts['color'],
$atts['border'],
$atts['mobile'],
$atts['mobile_breaking'],
);
$element_styling->add_classes( 'section', $classes );
$element_styling->add_classes_from_array( 'section', $meta, 'el_class' );
if( $atts['mobile_column_order'] != '' )
{
$element_styling->add_classes( 'section', 'av-grid-order-' . $atts['mobile_column_order'] );
}
if( $atts['min_height_percent'] != '' )
{
$element_styling->add_classes( 'section', array(
'av-cell-min-height',
'av-cell-min-height-' . $atts['min_height_percent']
) );
}
if( isset( $meta['index'] ) && $meta['index'] > 0 )
{
$element_styling->add_classes( 'section', 'grid-row-not-first' );
}
$selectors = array(
'section' => ".av-layout-grid-container.{$element_id}",
);
$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
*/
function shortcode_handler( $atts, $content = '', $shortcodename = '', $meta = '' )
{
$result = $this->get_element_styles( compact( array( 'atts', 'content', 'shortcodename', 'meta' ) ) );
extract( $result );
extract( AviaHelper::av_mobile_sizes( $atts ) ); //return $av_font_classes, $av_title_font_classes and $av_display_classes
extract( $atts );
avia_sc_grid_row::$count++;
$params = array();
$params['open_structure'] = false;
$params['id'] = AviaHelper::save_string( $id, '-', 'av-layout-grid-' . avia_sc_grid_row::$count );
$params['custom_markup'] = $meta['custom_markup'];
$params['aria_label'] = $meta['aria_label'];
$params['data'] = '';
if( $min_height_percent != '' )
{
$params['data'] .= " data-av_minimum_height_pc='{$min_height_percent}'";
}
//we dont need a closing structure if the element is the first one or if a previous fullwidth element was displayed before
if( isset($meta['index'] ) && $meta['index'] == 0)
{
$params['close'] = false;
}
if( ! empty( $meta['siblings']['prev']['tag'] ) && in_array( $meta['siblings']['prev']['tag'], AviaBuilder::$full_el_no_section ) )
{
$params['close'] = false;
}
$params['class'] = $element_styling->get_class_string( 'section' );
$params['class'] .= " {$av_display_classes}";
// execute content
$cells_content = ShortcodeHelper::avia_remove_autop( $content, true );
$style_tag = $element_styling->get_style_tag( $element_id );
// $container_class = $element_styling->get_class_string( 'container' );
$output = '';
$output .= $style_tag;
$output .= avia_new_section( $params );
$output .= $cells_content;
$output .= avia_section_after_element_content( $meta , 'after_grid_row_' . avia_sc_grid_row::$count, false );
// added to fix https://kriesi.at/support/topic/footer-disseapearing/#post-427764
avia_sc_section::$close_overlay = '';
return $output;
}
}
}