%PDF- %PDF-
| Direktori : /home/opti/www/stlc/wp-content/plugins/insur-addon/includes/Megamenu/ |
| Current File : /home/opti/www/stlc/wp-content/plugins/insur-addon/includes/Megamenu/Walker_Nav_Menu.php |
<?php
namespace Layerdrops\Insur\Megamenu;
class Walker_Nav_Menu extends \Walker_Nav_Menu
{
private $item;
/**
* Starts the list before the elements are added.
*
* @since 3.0.0
*
* @see Walker::start_lvl()
*
* @param string $output Passed by reference. Used to append additional content.
* @param int $depth Depth of menu item. Used for padding.
* @param array $args An array of wp_nav_menu() arguments.
*/
public function start_lvl(&$output, $depth = 0, $args = array())
{
$indent = str_repeat("\t", $depth);
$output .= "\n$indent<ul class=\"sub-menu\">\n";
}
/**
* @see Walker::start_el()
*/
public function start_el(&$output, $item, $depth = 0, $args = array(), $id = 0)
{
$item_html = '';
$megamenu = apply_filters('layerdrops_enable_megamenu', true);
if ('[divider]' === $item->title) {
$output .= '<li class="menu-item-divider"></li>';
return;
}
$extra_menu_custom = apply_filters("layerdrops_menu_edit", array());
foreach ($extra_menu_custom as $key => $f) {
$val = get_post_meta($item->ID, '_menu_item_' . $key, true);
if (!empty($val)) {
$item->classes[] = $val;
}
}
add_filter('nav_menu_link_attributes', function ($atts, $item) {
if (isset($item->layerdrops_custom_class) && !empty($item->layerdrops_custom_class)) {
if (!isset($atts['class']) || empty($atts['class'])) {
$atts['class'] = $item->layerdrops_custom_class;
}
}
return $atts;
}, 10, 2);
if (!empty($item->layerdrops_megaprofile) && $megamenu) {
$item->classes[] = 'megamenu';
$item->classes[] = 'megamenu-style-alt';
$item->classes[] = 'menu-item-has-children';
}
if (!empty($args->local_scroll) && $depth === 0) {
$item->classes[] = 'local-scroll';
}
parent::start_el($item_html, $item, $depth, $args, $id);
if (isset($args->old_link_before)) {
$args->link_before = $args->old_link_before;
$args->old_link_before = '';
}
if (isset($args->old_link_after)) {
$args->link_after = $args->old_link_after;
$args->old_link_after = '';
}
if (!empty($item->layerdrops_megaprofile)) {
$item_html .= $this->get_megamenu($item->layerdrops_megaprofile);
}
$output .= $item_html;
}
public function get_megamenu($id)
{
$content = \Elementor\Plugin::$instance->frontend->get_builder_content($id);
return '<ul class="sub-menu"><li>' . $content . '</li></ul>';
}
public function display_element($element, &$children_elements, $max_depth, $depth, $args, &$output)
{
// check whether this item has children, and set $item->hasChildren accordingly
$element->hasChildren = isset($children_elements[$element->ID]) && !empty($children_elements[$element->ID]);
return parent::display_element($element, $children_elements, $max_depth, $depth, $args, $output);
}
}