Your IP : 216.73.216.240


Current Path : /home/juvelize/saulnois/tmp/install_695d2cf0b4957/src/View/Sky/
Upload File :
Current File : /home/juvelize/saulnois/tmp/install_695d2cf0b4957/src/View/Sky/Navigation.php

<?php
/*
* @package		Tech Fry Library
* @license		https://www.gnu.org/licenses/gpl-3.0.en.html
*/

namespace TechFry\Library\View\Sky;

defined('_JEXEC') or die;

class Navigation extends Bootstrap
{
    public $ul_class;
    
    public $li_class;

    public $a_class;

    public $active_id;
    
    public function display()
    {
        // $config - list_class, list_item_class, link_class

        $this->ul_class = $this->config['list_class'] ?? '';
        $this->li_class .= $this->config['list_item_class'] ?? '';
        $this->a_class .= $this->config['link_class'] ?? '';
        
        $output = '<ul class="' . $this->ul_class . '">';
        foreach ($this->data as $item)
        {
            // $item - Joomla\CMS\Menu\MenuItem Object
            
            if ($item->level == 1)
            {
                if (!$item->deeper)
                {
                    $output .= $this->get_menu_item($item);
                }
                else
                {
                    // Dropdown Menu
                    $config = array(
                        'trigger_text' => $item->title,
                        'trigger_class' => $this->a_class,
                        'trigger_icon' => $item->menu_icon,
                        'dropdown_tag' => 'li',
                    );
                    $dropdown = new Dropdown(array(), $config);
                }
            }
            elseif ($item->level == 2)
            {
                $dropdown->add_data($item);

                if ($item->shallower)
                {
                    $output .= $dropdown->display();
                }
            }
        }

        $output .= '</ul>';

        return $output;
    }

    public function get_menu_item($item)
    {
        // Add active class to a
        if (isset($item->id) && $item->id == $this->active_id)
        {
            $this->a_class .= ' active';
        }

        $output = '<li class="' . $this->li_class . '">';

        $icon = $item->menu_icon ?? $item->icon ?? '';

        $output .= '<a href="' . $item->flink . '" class="' . $this->a_class . '"';
        if (isset($item->browserNav) && $item->browserNav)
        {
            $output .= ' target="_blank"';    
        }

        $output .= '>';

        if ($icon)
        {
            $output .= '<i class="' . $icon . '"></i> ';
        }
        $output .= $item->title;
        $output .= '</a>';

        $output .= '</li>';

        return $output;
    }

    public function set_active($active_id)
    {
        $this->active_id = $active_id;
    }
}