-
Search Results
-
Topic: Hot Spot Image
Hello there,
I’ve got a problem with my Hot Spot Image element, especially with the text of the hot spots. My plan is to achieve a design where if you hover the hot spot with your mouse you will see the text of the hot spot appearing in a way that the text will still be placed on the picture. Please have a look: https://dev.durom-hueftprobleme.de/meine-rechte ; I think that the problem at the moment is actually that if the hot spot is hovered with the mouse the text will appear over the hot spot. that’s why the text floats out of the picture. I would be very happy about a fast reply so that I can fix the problem for my customer. A suitable CSS-Code with explaination would be outstanding!!!Kind regards
PS.:
The text of the hot spot replies to the classes:
.page-id-1650 .av-tt-hotspot,
.page-id-1650 .av-tt-hotspot .avia-arrowTopic: Enfold – Upcoming fixes
Hi,
We wanted to create this thread as a channel to share the fixes that will be included in upcoming updates and known issues that are being worked on.
Current fixes for upcoming version 4.7.4.1 are as following (last update 2020-05-12)
- Feature: New alignment options ALB element “Special Heading”
- Feature: input field to add custom subject text for ALB contact form autoresponder email
- Feature: Option for transition effect speed in ALB Easy Slider, Fullwidth Easy Slider, Fullscreen Slider
- Feature: Added options for custom title and alt attribute in ALB image element
- fixed: accordion slider hides some slide item after closing the lightbox
- fixed: small typo instgram
- fixed: WC 4.0 bug grouped products and quantity button not working
- fixed: Transparent logo missing alt and title attr when attachment URL instead ID
- fixed: bbPress and custom footer page not showing correctly on some pages
- fixed: CSS bug Accordion hidden below Special Heading in Color section
- fixed: WP 5.4 Block editor breaks ALB layout in backend
- fixed: removed wrong href in div id=”av-cookie-consent-badge”
- fixed: removed wp_nonce check in reCaptcha V3 to avoid problems with caching plugins
- fixed: bug switching ALB back to Classic Editor broken layout and js errors (WP 5.4 related ?)
- fixed: CSS problem with equal height after individual height columns forming a grid
- fixed: WP 5.4 block editor using ALB – scroll bug dragging ALB elements
- fixed: added a check that $posts is an array in helper-assets.php – caused by 3rd party plugins
- fixed: shifted values in color picker (theme options page)
- fixed: type errors in message text
- Fixed: Plugin conflict calling filter display_post_states incorrectly
- added: filter avf_transparency_logo_data: modify transparency logo url, title, alt attributes
- added: class post-format-{$post_format} to article in postslider.php
- added: filter avf_attachment_copyright_text – allows to filter copyright text in ALB image element
- tweak: new option “Remove query string from static resources” in Performance->Show advanced options
- tweak: Link settings moved to content tab for all ALB button elements
- tweak: ensure function aviaFontManagementBase::get_font_list returns an array
- updated: Italian language files
- updated: Dutch language files
- added: Greek language files
- tweak: All language files have been synchronised – obsolete strings removed
In Pull Requests:
- feature: New demo importer with download of demos from external server
In Progress:
- Responsive images – adding scrset attribute to images
Fixes for released version 4.7.4:
- fixed: catalog CSS not enqueued with ALB WC product elements
- fixed: ADA compliance aria-hidden, aria-label for MOBILE Hamburger menu
- fixed: ALB seperator whitespace with icon: limit width to 45% container width for each ruler
- fixed: small typo tempalte
- fixed: CSS bug icon grid with display tooltip and mobile
- fixed: CSS ALB Gridrow – 1 column with link column not fullwidth
- fixed: CSS indent bug in nested sidebar menus (left/right sidebar, widget menus)
- fixed: Fullwidth Easy Slider issue where auto rotate stops working in Safari after a video slide
- feature: Add custom ID and CSS class to timeline milestones
- feature: Integrate Smash Balloon Instagram Feed plugin (free and pro version)
- Feature: ALB magazine element supports post-format link
- tweak: Option to disable adding timestamp to compressed css and js files
- tweak: Advanced Styling selectors more strict to override standard selectors from stylesheets and custom css
- tweak: ajax search support for WC option “Hide out of stock items from the catalog”
- tweak: use get_title instead of inconsistent use of direct access to post_title in various places
- added: title attribute to postslider link in ALB element
- added: filter avf_postslider_link_title_attr: modify title attribute for link in ALB postslider
- added: filter avf_show_option_toggles_advanced: Adds an extra select option to hide section headers in ALB
- added: filter avf_ajax_search_woocommerce_params: allows to change displaying products out_of_stock, featured and hidden
- added: filter avf_legacy_suppress_wp_filter_post_title: allows a fallback for unfiltered post_title where direct access was used previously
- removed: deprecated classes hentry and vcard (microformats.com)
- updated: French language file – equal alb options translation, “Google” services translated as “Mailchimp”
- updated: Dutch language files
- updated: German language files
- updated: Italian language files
- Extension plugin: “Shortcodes In Post Titles” https://github.com/KriesiMedia/enfold-library/tree/master/integration%20plugins/Enfold/Shortcodes%20In%20Post%20Titles
Fixes for version 4.7.3 are as following
- improved: theme options to disable ALB modal popup options toggles (revert to old ALB design)
- fixed: Blog multiauthor preview image links to author and not to post
- fixed: ADA compliance aria-hidden for social icons and social share buttons
- fixed: social share buttons added with filter no longer shown in 4.7.1.1
- fixed: CSS for reCaptcha V3, added classes for reCaptcha V2 and reCaptcha V3 to form
- fixed: ALB contact form datepicker throws js error when jQuery is loaded in footer
- fixed: ALB editor Add Cell/Set Cell Size buttons not responsive for translations
- fixed: Custom pages query to exclude hiding a page when same page object is queried
- fixed: small typo in Iconbox element
- fixed: Easy Slider caption sizes reverting back to “use default” after making custom settings
- fixed: Google vocabulary.org schema is deprecated
- fixed: Content partially cut off in Cookie modal window on mobile Safari
- added: filter avf_merged_files_unique_id: allows to remove/customize added unique id for merged files
- added: filter avf_folder_security: customize folder security from 755 on folder creation
- tweak: Column links open in new window and not in new tab for some browsers (e.g. FF)
- tweak: Developer fields missing in fullwidth sub menu element
- tweak: improved creation of avia folders and security
- tweak: schema.org markup for testimonials
- Improved GPDR:
- feature: new option Accept essential cookies on pageload, user must opt in for other cookies
- added: Cookie info message now supports starts with, ends with, contains for cookie names (filter avf_privacy_cookie_infos)
- added: description text for some essential WP, WPMLcookies
- fixed: bug with custom wildcard cookies and path not /
- fixed: bug in option allow all cookies and services on pageload
- Updated: Old Instagram icon to new one in social profiles
- Updated: background color for social yelp icon to #d32323 on hover
- updated: German language files, , de_DE GDPR translation adjustments
- updated: Italian language file
- updated: Dutch language files
- updated: French language file – equal alb options translation
Regards,
YigitP.S.: Please do not report issues here, instead start a new thread.
Hi
after i updated your theme the layout is completly crashed.
Examples:
– What has been a gallery with miniatures before is now one long row of big images below each other.
-Lightboxes dont work anymore
-The whole layout structure is foobar!
If i look in the backend everything looks fine, the ALB shows everything as its supposed to be, but the output in the frontend is horrible.
Please check at first if there is something in our childthemes functions.php which maybe doesnt work anymore and which could cause that conflict.
The problem arises only on pages that uses a custom post type. The developer of the plugin says its a theme issueHere it is:
<?php //$avia_config['imgSize']['square-custom'] = array('width'=>300, 'height'=>300); // small image for blogs //$avia_config['imgSize']['square2'] = array('width'=>400, 'height'=>400); // small image for blogs /* * Add your own functions here. You can also copy some of the theme functions into this file. * WordPress will use those functions instead of the original functions then. */ function enqueue_parent_theme_style() { wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' ); } add_action( 'wp_enqueue_scripts', 'enqueue_parent_theme_style'); /* Proper way to enqueue styles and scripts */ function theme_name_scripts() { wp_enqueue_style( 'style-name', get_stylesheet_uri() ); } add_action( 'wp_enqueue_scripts', 'theme_name_scripts' ); /* Activate Avia debug mode */ add_action('avia_builder_mode', "builder_set_debug"); function builder_set_debug() { return "debug"; } add_filter('avf_builder_boxes', 'add_builder_to_posttype'); function add_builder_to_posttype($metabox) { foreach($metabox as &$meta) { if($meta['id'] == 'avia_builder' || $meta['id'] == 'layout') { $meta['page'][] = 'angebot'; /*instead add the name of the custom post type here*/ $meta['page'][] = 'bild-des-tages'; /*instead add the name of the custom post type here*/ } } return $metabox; } add_filter('avf_blog_style','avia_change_category_blog_layout', 10, 2); function avia_change_category_blog_layout($layout, $context){ if($context == 'archive') $layout = 'blog-grid'; return $layout; } add_filter('avf_blog_style','avia_change_tag_blog_layout', 10, 2); function avia_change_tag_blog_layout($layout, $context){ if($context == 'tag') $layout = 'blog-grid'; return $layout; } /* Länge des Auszug auf Blogseite */ add_filter('avf_postgrid_excerpt_length','avia_change_postgrid_excerpt_length', 10, 1); function avia_change_postgrid_excerpt_length($length) { $length = 100; return $length; } /* Doppelten Breadcrumb entfernt */ add_filter( 'avia_breadcrumbs_trail', 'mmx_remove_element_from_trail', 50, 2 ); function mmx_remove_element_from_trail( $trail, $args ) { if ( is_single() ) { unset ($trail[2]); } return $trail; } add_filter('avf_form_use_wpmail', 'avia_change_php_mail', 10, 3); function avia_change_php_mail($active, $new_post, $form_params){ return true; } add_theme_support('avia_template_builder_custom_css'); add_filter('avf_logo_subtext', 'kriesi_logo_addition'); function kriesi_logo_addition($sub) { $sub .= "<div id='headText'> <a href='http://www.maskenzauber.com'><h1>Venezianische<span> Masken</span></h1></a> <span id='subslogan'>und Headdresses</span> </div>"; $sub .= "<div id='headClaim'> <strong>Hier kommt</strong> eine Unterzeile hin </div>"; return $sub; } add_filter('avf_title_args','fotos_remove_bc'); function fotos_remove_bc($args){ if(is_single() && 'post' == get_post_type()) { $args['breadcrumb'] = false; } return $args; } add_filter('avf_title_args','fotosangebot_remove_bc'); function fotosangebot_remove_bc($args){ if(is_single() && 'angebot' == get_post_type()) { $args['breadcrumb'] = false; } return $args; } //entfernt den Kommentarblock und die Datumsangaben aus dem Combo Widget // class avia_combo_widget extends WP_Widget { function avia_combo_widget() { //Constructor $widget_ops = array('classname' => 'avia_combo_widget', 'description' => 'A widget that displays your popular posts, recent posts, recent comments and a tagcloud' ); $this->WP_Widget( 'avia_combo_widget', THEMENAME.' Combo Widget', $widget_ops ); } function widget($args, $instance) { // prints the widget extract($args, EXTR_SKIP); $posts = empty($instance['count']) ? 4 : $instance['count']; echo $before_widget; echo "<div class='tabcontainer border_tabs top_tab tab_initial_open tab_initial_open__1'>"; echo '<div class="tab first_tab active_tab widget_tab_popular"><span>'.__('Popular', 'avia_framework').'</span></div>'; echo "<div class='tab_content active_tab_content'>"; avia_get_post_list('cat=&orderby=comment_count&posts_per_page='.$posts); echo "</div>"; echo '<div class="tab widget_tab_recent"><span>'.__('Recent', 'avia_framework').'</span></div>'; echo "<div class='tab_content'>"; avia_get_post_list('showposts='. $posts .'&orderby=post_date&order=desc'); echo "</div>"; echo '<div class="tab last_tab widget_tab_tags"><span>'.__('Tags', 'avia_framework').'</span></div>'; echo "<div class='tab_content tagcloud'>"; wp_tag_cloud('smallest=12&largest=12&unit=px'); echo "</div>"; echo "</div>"; echo $after_widget; } function update($new_instance, $old_instance) { $instance = $old_instance; foreach($new_instance as $key=>$value) { $instance[$key] = strip_tags($new_instance[$key]); } return $instance; } function form($instance) { //widgetform in backend $instance = wp_parse_args( (array) $instance, array('count' => 4) ); if(!is_numeric($instance['count'])) $instance['count'] = 4; ?> <p> <label for="<?php echo $this->get_field_id('count'); ?>">Number of posts you want to display: <input class="widefat" id="<?php echo $this->get_field_id('count'); ?>" name="<?php echo $this->get_field_name('count'); ?>" type="text" value="<?php echo esc_attr($instance['count']); ?>" /></label></p> <?php } } function avia_get_post_list( $avia_new_query , $excerpt = false) { global $avia_config; $image_size = isset($avia_config['widget_image_size']) ? $avia_config['widget_image_size'] : 'widget'; $additional_loop = new WP_Query($avia_new_query); if($additional_loop->have_posts()) : echo '<ul class="news-wrap">'; while ($additional_loop->have_posts()) : $additional_loop->the_post(); $format = ""; if(get_post_type() != 'post') $format = get_post_type(); if(empty($format)) $format = get_post_format(); if(empty($format)) $format = 'standard'; echo '<li class="news-content post-format-'.$format.'">'; //check for preview images: $image = ""; if(!current_theme_supports('force-post-thumbnails-in-widget')) { $slides = avia_post_meta(get_the_ID(), 'slideshow'); if( $slides != "" && !empty( $slides[0]['slideshow_image'] ) ) { $image = avia_image_by_id($slides[0]['slideshow_image'], 'widget', 'image'); } } if(!$image && current_theme_supports( 'post-thumbnails' )) { $image = get_the_post_thumbnail( get_the_ID(), $image_size ); } $time_format = apply_filters( 'avia_widget_time', get_option('date_format')." - ".get_option('time_format'), 'avia_get_post_list' ); $nothumb = (!$image) ? 'no-news-thumb' : ''; echo "<a class='news-link' title='".get_the_title()."' href='".get_permalink()."'>"; echo "<span class='news-thumb $nothumb'>"; echo $image; echo "</span>"; echo "<strong class='news-headline'>".avia_backend_truncate(get_the_title(), 55," "); //echo "<span class='news-time'>".get_the_time($time_format)."</span>"; echo "</strong>"; echo "</a>"; if('display title and excerpt' == $excerpt) { echo "<div class='news-excerpt'>"; the_excerpt(); echo "</div>"; } echo '</li>'; endwhile; echo "</ul>"; wp_reset_postdata(); endif; } //erzeugt Next / Preview Links in Blogposts auch bei Verwendung von Fullwidth-Slider // if(!function_exists('avia_post_nav')) { function avia_post_nav($same_category = false, $taxonomy = 'category') { global $wp_version; $settings = array(); $settings['same_category'] = $same_category; $settings['excluded_terms'] = ''; $settings['wpversion'] = $wp_version; $settings['type'] = get_post_type(); $settings['taxonomy'] = ($settings['type'] == 'portfolio') ? 'portfolio_entries' : $taxonomy; if(!is_singular() || is_post_type_hierarchical($settings['type'])) $settings['is_hierarchical'] = true; if($settings['type'] === 'topic' || $settings['type'] === 'reply') $settings['is_bbpress'] = true; $settings = apply_filters('avia_post_nav_settings', $settings); if(!empty($settings['is_bbpress']) || !empty($settings['is_hierarchical']) || !empty($settings['is_fullwidth'])) return; if(version_compare($settings['wpversion'], '3.8', '>=' )) { $entries['prev'] = get_previous_post($settings['same_category'], $settings['excluded_terms'], $settings['taxonomy']); $entries['next'] = get_next_post($settings['same_category'], $settings['excluded_terms'], $settings['taxonomy']); } else { $entries['prev'] = get_previous_post($settings['same_category']); $entries['next'] = get_next_post($settings['same_category']); } $entries = apply_filters('avia_post_nav_entries', $entries, $settings); $output = ""; foreach ($entries as $key => $entry) { if(empty($entry)) continue; $the_title = isset($entry->av_custom_title) ? $entry->av_custom_title : avia_backend_truncate(get_the_title($entry->ID),75," "); $link = isset($entry->av_custom_link) ? $entry->av_custom_link : get_permalink($entry->ID); $image = isset($entry->av_custom_image) ? $entry->av_custom_image : get_the_post_thumbnail($entry->ID, 'thumbnail'); $tc1 = $tc2 = ""; $class = $image ? "with-image" : "without-image"; $output .= "<a class='avia-post-nav avia-post-{$key} {$class}' href='{$link}' >"; $output .= " <span class='label iconfont' ".av_icon_string($key)."></span>"; $output .= " <span class='entry-info-wrap'>"; $output .= " <span class='entry-info'>"; $tc1 = " <span class='entry-title'>{$the_title}</span>"; if($image) $tc2 = " <span class='entry-image'>{$image}</span>"; $output .= $key == 'prev' ? $tc1.$tc2 : $tc2.$tc1; $output .= " </span>"; $output .= " </span>"; $output .= "</a>"; } return $output; } } add_filter('avf_debugging_info', 'remove_debugging_info', $info); function remove_debugging_info($info) { $info = ''; return $info; } remove_action( 'init', 'cptui_create_custom_post_types', 10 ); add_action( 'init', 'cptui_create_custom_post_types', 11 ); // Nach Dateinamen in der Mediathek suchen function posts_search_media_filenames($search, $a_wp_query) { global $wpdb, $pagenow; // Only Admin side && Only Media Library page if ( !is_admin() && 'upload.php' != $pagenow ) return $search; // Original search string: // AND (((wp_posts.post_title LIKE '%search-string%') OR (wp_posts.post_content LIKE '%search-string%'))) $search = str_replace( 'AND ((', 'AND (((' . $wpdb->prefix . 'posts.guid LIKE \'%' . $a_wp_query->query_vars['s'] . '%\') OR ', $search ); return $search; } add_filter('posts_search', 'posts_search_media_filenames', 10, 2); // Sortiert alle Bilder in der masonry-Galerie nach Zufall add_filter('avia_masonry_entries_query', 'avia_random_image_query', 10, 2); function avia_random_image_query($query, $params) { if(!empty($query['post_mime_type']) && $query['post_mime_type'] == 'image') { $query['orderby'] = "rand"; } return $query; } function remove_avia_search(){ remove_filter( 'wp_nav_menu_items', 'avia_append_search_nav', 10, 2 ); } add_action( 'init' , 'remove_avia_search' ); add_filter( 'avf_main_menu_nav' , 'um_enfold_menu' , 100 , 1 ); function um_enfold_menu( $menu ){ $menu = ubermenu( 'main' , array( 'theme_location' => 'avia' , 'echo' => false ) ); return $menu; } add_image_size( 'my-ubermenu-image-size', 100, 100, true );As the Grit Element is all the time Fullwidth and cannot be changed to Content Width, I did edit and create a new Element, which has same functionallity, but has the content width (not destroying pages with sidebars).
As others look for it and no solution is provided, here is mine.
create new file and add it in childtheme:
add_filter('avia_load_shortcodes', 'avia_include_shortcode_template', 15, 1); function avia_include_shortcode_template($paths) { $template_url = get_stylesheet_directory(); array_unshift($paths, $template_url.'/shortcodes/'); return $paths; }create folder shortcode in childtheme and add file there (name is not important):
<?php /** * Grid Row * * Shortcode which adds multiple Grid Rows below each other to create advanced grid layouts. Cells can be styled individually */ // Don't load directly if ( !defined('ABSPATH') ) { die('-1'); } if ( !class_exists( 'avia_sc_grid_row_nofullwidth' ) ) { class avia_sc_grid_row_nofullwidth extends aviaShortcodeTemplate{ static $count = 0; /** * Create the config array for the shortcode grid row */ function shortcode_insert_button() { $this->config['type'] = 'layout'; $this->config['self_closing'] = 'no'; $this->config['contains_text'] = 'no'; $this->config['layout_children'] = array( 'av_cell_one_full', 'av_cell_one_half', 'av_cell_one_third', 'av_cell_one_fourth', 'av_cell_one_fifth', 'av_cell_two_third', 'av_cell_three_fourth', 'av_cell_two_fifth', 'av_cell_three_fifth', 'av_cell_four_fifth' ); $this->config['name'] = __('Grid Row (Content Width)', 'avia_framework' ); $this->config['icon'] = AviaBuilder::$path['imagesURL']."sc-layout_row.png"; $this->config['tab'] = __('Layout Elements', 'avia_framework' ); $this->config['order'] = 15; $this->config['shortcode'] = 'av_layout_grit'; $this->config['html_renderer'] = false; $this->config['tinyMCE'] = array('disable' => "true"); $this->config['tooltip'] = __('Add multiple Grid Rows below each other to create advanced grid layouts. Cells can be styled individually', 'avia_framework' ); $this->config['drag-level'] = 1; $this->config['drop-level'] = 100; $this->config['disabling_allowed'] = false; } function extra_assets() { //load css wp_enqueue_style( 'avia-module-gridrow' , AviaBuilder::$path['pluginUrlRoot'].'avia-shortcodes/grid_row/grid_row.css' , array('avia-layout'), false ); } /** * 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) { /* $params['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]"; */ 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 { $cell = new avia_sc_cell_one_half($this->builder); $params = array('content' => "", 'args' => array(), 'data'=>''); $final_content = ""; $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 = "<div class='avia_layout_row {$hidden_el_active} avia_layout_section avia_pop_class avia-no-visual-updates ".$name." av_drag' ".$dataString.">"; $output .= " <a class='avia-add-cell avia-add' href='#add-cell' title='".__('Add Cell','avia_framework' )."'>".__('Add Cell','avia_framework' )."</a>"; $output .= " <a class='avia-set-cell-size avia-add' href='#set-size' title='".__('Set Cell Size','avia_framework' )."'>".__('Set Cell Size','avia_framework' )."</a>"; $output .= " <div class='avia_sorthandle menu-item-handle'>"; $output .= " <span class='avia-element-title'>".$this->config['name']."<span class='avia-element-title-id'>".$title_id."</span></span>"; $output .= " <a class='avia-delete' href='#delete' title='".__('Delete Row','avia_framework' )."'>x</a>"; $output .= " <a class='avia-toggle-visibility' href='#toggle' title='".__('Show/Hide Section','avia_framework' )."'></a>"; if(!empty($this->config['popup_editor'])) { $output .= " <a class='avia-edit-element' href='#edit-element' title='".__('Edit Row','avia_framework' )."'>".__('edit','avia_framework' )."</a>"; } $output .= "<a class='avia-save-element' href='#save-element' title='".__('Save Element as Template','avia_framework' )."'>+</a>"; $output .= " <a class='avia-clone' href='#clone' title='".__('Clone Row','avia_framework' )."' >".__('Clone Row','avia_framework' )."</a></div>"; $output .= " <div class='avia_inner_shortcode avia_connect_sort av_drop' data-dragdrop-level='".$this->config['drop-level']."'>"; $output .= "<textarea data-name='text-shortcode' cols='20' rows='4'>".$text_area."</textarea>"; $output .= $final_content; $output .= "</div>"; $output .= "<a class='avia-layout-element-hidden' href='#'>".__('Grid Row content hidden. Click here to show it','avia_framework')."</a>"; $output .= "</div>"; return $output; } /** * 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() { global $avia_config; $this->elements = array( array( "type" => "tab_container", 'nodescription' => true ), array( "type" => "tab", "name" => __("Content" , 'avia_framework'), 'nodescription' => true ), array( "name" => __("Grid Borders",'avia_framework' ), "id" => "border", "desc" => __("Choose if your layout grid should display any border",'avia_framework' ), "type" => "select", "std" => "", "subtype" => array( __('No Borders' , 'avia_framework' ) =>'', __('Borders on top and bottom' , 'avia_framework' ) =>'av-border-top-bottom', __('Borders between cells' , 'avia_framework' ) =>'av-border-cells', __('Borders on top and bottom and between cells' , 'avia_framework' ) =>'av-border-top-bottom av-border-cells', ) ), array( "name" => __("Custom minimum height", 'avia_framework' ), "desc" => __("Do you want to use a custom or predefined minimum height?", 'avia_framework' ), "id" => "min_height_percent", "type" => "select", "std" => "", "subtype" => array( __( 'At least 100% of Browser Window height', 'avia_framework' ) => '100', __( 'At least 75% of Browser Window height', 'avia_framework' ) => '75', __( 'At least 50% of Browser Window height', 'avia_framework' ) => '50', __( 'At least 25% of Browser Window height', 'avia_framework' ) => '25', __( 'Custom height in % based on browser windows height', 'avia_framework' ) => 'percent', __( 'Custom height in pixel', 'avia_framework' ) => '', ) ), array( 'name' => __( 'Section minimum custom height in %', 'avia_framework' ), 'desc' => __( 'Define a minimum height for the gridrow in % based on the browser windows height', 'avia_framework' ), 'id' => 'min_height_pc', 'required' => array( 'min_height_percent', 'equals', 'percent' ), 'std' => '25', 'type' => 'select', 'subtype' => AviaHtmlHelper::number_array( 1, 99, 1 ) ), array( "name" => __("Minimum height", 'avia_framework' ), "desc" => __("Set the minimum height of all the cells in pixel. eg:400px", 'avia_framework' ), "id" => "min_height", "required"=> array('min_height_percent','equals',''), "type" => "input", "std" => "0", ), array( "name" => __("Section Colors",'avia_framework' ), "id" => "color", "desc" => __("The section will use the color scheme you select. Color schemes are defined on your styling page",'avia_framework' ) . '<br/><a target="_blank" href="'.admin_url('admin.php?page=avia#goto_styling').'">'.__("(Show Styling Page)",'avia_framework' )."</a>", "type" => "select", "std" => "main_color", "subtype" => array_flip($avia_config['color_sets']) ), array( "name" => __("Mobile Behaviour",'avia_framework' ), "id" => "mobile", "desc" => __("Choose how the cells inside the grid should behave on mobile devices and small screens",'avia_framework' ), "type" => "select", "std" => "av-flex-cells", "subtype" => array( __('Default: Each cell is displayed on its own' , 'avia_framework' ) =>'av-flex-cells', __('Cells appear beside each other, just like on large screens' , 'avia_framework' ) =>'av-fixed-cells', ) ), array( "name" => __("For Developers: Section ID", 'avia_framework' ), "desc" => __("Apply a custom ID Attribute to the section, so you can apply a unique style via CSS. This option is also helpful if you want to use anchor links to scroll to a sections when a link is clicked", 'avia_framework' )."<br/><br/>". __("Use with caution and make sure to only use allowed characters. No special characters can be used.", 'avia_framework' ), "id" => "id", "type" => "input", "std" => ""), array( "id" => "av_element_hidden_in_editor", "type" => "hidden", "std" => "0"), array( "type" => "close_div", 'nodescription' => true ), array( "type" => "tab", "name" => __("Screen Options",'avia_framework' ), 'nodescription' => true ), array( "name" => __("Mobile Breaking Point",'avia_framework' ), "desc" => __("Set the screen width when cells in this row should switch to full width", 'avia_framework' ), "type" => "heading", "description_class" => "av-builder-note av-neutral", ), array( "name" => __("Fullwidth Break Point", 'avia_framework' ), "desc" => __("The cells in this row will switch to fullwidth at this screen width ", 'avia_framework' ), "id" => "mobile_breaking", "type" => "select", "std" => "", "subtype" => array( __('On mobile devices (at a screen width of 767px or lower)','avia_framework' ) =>'', __('On tablets (at a screen width of 989px or lower)', 'avia_framework' ) =>'av-break-at-tablet', ) ), array( "name" => __("Element Visibility",'avia_framework' ), "desc" => __("Set the visibility for this element, based on the device screensize.", 'avia_framework' ), "type" => "heading", "description_class" => "av-builder-note av-neutral", ), array( "desc" => __("Hide on large screens (wider than 990px - eg: Desktop)", 'avia_framework'), "id" => "av-desktop-hide", "std" => "", "container_class" => 'av-multi-checkbox', "type" => "checkbox"), array( "desc" => __("Hide on medium sized screens (between 768px and 989px - eg: Tablet Landscape)", 'avia_framework'), "id" => "av-medium-hide", "std" => "", "container_class" => 'av-multi-checkbox', "type" => "checkbox"), array( "desc" => __("Hide on small screens (between 480px and 767px - eg: Tablet Portrait)", 'avia_framework'), "id" => "av-small-hide", "std" => "", "container_class" => 'av-multi-checkbox', "type" => "checkbox"), array( "desc" => __("Hide on very small screens (smaller than 479px - eg: Smartphone Portrait)", 'avia_framework'), "id" => "av-mini-hide", "std" => "", "container_class" => 'av-multi-checkbox', "type" => "checkbox"), array( "type" => "close_div", 'nodescription' => true ), array( "type" => "close_div", 'nodescription' => true ), array( "type" => "close_div", 'nodescription' => true ), ); } /** * 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 = "") { extract(AviaHelper::av_mobile_sizes($atts)); //return $av_font_classes, $av_title_font_classes and $av_display_classes $atts = shortcode_atts( array( 'color' => 'main_color', 'border' => '', 'min_height' => '0', 'min_height_percent' => '', 'min_height_pc' => 25, 'mobile' => 'av-flex-cells', 'mobile_breaking' => '', 'id' => '' ), $atts, $this->config['shortcode'] ); if( 'percent' == $atts['min_height_percent'] ) { $atts['min_height_percent'] = $atts['min_height_pc']; } extract( $atts ); $output = ''; $params = array(); $params['class'] = "av-layout-grid-container entry-content-wrapper {$color} {$mobile} {$mobile_breaking} {$av_display_classes} {$border} {$meta['el_class']}"; $params['open_structure'] = false; $params['custom_markup'] = $meta['custom_markup']; $params['data'] = ''; if( $min_height_percent != '' ) { $params['class'] .= " av-cell-min-height av-cell-min-height-{$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; if(isset($meta['index']) && $meta['index'] > 0) $params['class'] .= " submenu-not-first"; avia_sc_cell::$attr = $atts; //$output .= avia_new_section($params); $output .= "<div style='clear:both'></div><div class='nocontentwidth'>"; $output .= ShortcodeHelper::avia_remove_autop($content,true) ; //$output .= avia_section_after_element_content( $meta , 'after_submenu_' . avia_sc_grid_row_nofullwidth::$count, false); $output .= "</div> <style>.nocontentwidth .flex_cell.avia-builder-el-first { padding-left: 0px; } .nocontentwidth .flex_cell.avia-builder-el-last { padding-right: 0px; }</style> <div style='clear:both'></div>"; // added to fix https://kriesi.at/support/topic/footer-disseapearing/#post-427764 avia_sc_section::$close_overlay = ""; return $output; } } }The new element is visible in the Layout Section of the Visual Builder.
multiline menu with shrinking header
(The values refer to two lines – more than two lines work, but there we have to make some compromises. because the size of the shrunken header limits the number of lines – so for 3 lines it would be an alternative to have the menu-items centered horizontaly)
How to give a custom-class to a menu-item:
On dashboard – appearance – menus we had on the very top a slide-out button “Screen Options” with options to set for menu-dashboardso press this “Screen Options” slide-out settings dialog and mark the things you like to have for menu-styling
we need for it the “CSS Classes” – each menu-item has that little arrow on the right side
(see my comment in the image: here you can open the menu items to adjust the settings)you will see for one menu-item the following:

on that “Navigation Label” input field you can put in what you like to have (even image links – you know that)
for multiline you can use the br-tag ( <br> ).
Put in the CSS Classes input field : multilinerthese are all menu-settings to have
__________
We now had to bind the shrink calculation to the padding-top for menu-items and set the line-height to a different amount then the default one for oneliners
So upload a copy of the avia-snippet-sticky-header.js Script to your enfold-child/js folder (on default there is no js folder – create one ) – this one will be used for your enfold installation now.
and we need this snippet to have a child-theme shrinking script:
add_action( 'wp_enqueue_scripts', 'wp_change_sticky_header_script', 100 ); function wp_change_sticky_header_script() { wp_deregister_script( 'avia-sticky-header' ); wp_enqueue_script( 'avia-sticky-header-child', get_stylesheet_directory_uri().'/js/avia-snippet-sticky-header.js', array('avia-default'), $vn, true); }Goto Dashboard – Appearance – Editor
here you have your child-theme files – and now on the js subfolder the new script.
Under “Theme Files” you can click on this script because we had to insert some new code:Find the line (on default Enfold 4.5.7 it is line 54) :
topbar_height = header.find('#header_meta').outerHeight(),under that line insert:
multiliner_padding = header.find('#avia-menu .multiliner > a'), multiliner_lh = 20, // set the desired line-height for the multilinesnow find (on default Enfold 4.5.7 it is line 92) :
logo.css({'maxHeight': newH + 'px'});insert after :
multiliner_padding.css({'padding-top': newH/2 - multiliner_lh/2 + 'px', 'line-height': multiliner_lh + 'px'});save that file by click on “update file”
thats it___________
in order for the new changes to take effect, you may need to refresh the merged files
Enfold (Child) – Performance – check that “Delete old CSS and JS files?” and “Save all changes”
refresh your browser chache too please.See a working example on : https://webers-testseite.de/cynthia/




