Your IP : 216.73.216.224


Current Path : /var/www/html/components/com_kunena/src/Controller/Widget/Menu/
Upload File :
Current File : /var/www/html/components/com_kunena/src/Controller/Widget/Menu/WidgetMenuDisplay.php

<?php

/**
 * Kunena Component
 *
 * @package         Kunena.Site
 * @subpackage      Controller.Widget
 *
 * @copyright       Copyright (C) 2008 - 2026 Kunena Team. All rights reserved.
 * @license         https://www.gnu.org/copyleft/gpl.html GNU/GPL
 * @link            https://www.kunena.org
 **/

namespace Kunena\Forum\Site\Controller\Widget\Menu;

\defined('_JEXEC') or die();

use Exception;
use Joomla\Registry\Registry;
use Kunena\Forum\Libraries\Controller\KunenaControllerDisplay;
use Kunena\Forum\Libraries\Factory\KunenaFactory;
use Kunena\Forum\Libraries\Menu\KunenaMenuHelper;
use Kunena\Forum\Libraries\Route\KunenaRoute;

/**
 * Class ComponentKunenaControllerWidgetMenuDisplay
 *
 * @since   Kunena 4.0
 */
class WidgetMenuDisplay extends KunenaControllerDisplay
{
    /**
     * @var     object
     * @since   Kunena 6.0
     */
    public $basemenu;

    /**
     * @var     object
     * @since   Kunena 6.0
     */
    public $list;

    /**
     * @var     object
     * @since   Kunena 6.0
     */
    public $menu;

    /**
     * @var     object
     * @since   Kunena 6.0
     */
    public $active;

    /**
     * @var     object
     * @since   Kunena 6.0
     */
    public $path;

    /**
     * @var     integer
     * @since   Kunena 6.0
     */
    public $active_id;

    /**
     * @var     object
     * @since   Kunena 6.0
     */
    public $showAll;

    /**
     * @var     string
     * @since   Kunena 6.0
     */
    public $class_sfx;

    /**
     * @var     string
     * @since   Kunena 6.0
     */
    protected $name = 'Widget/Menu';

    /**
     * Prepare menu display.
     *
     * @return  boolean
     *
     * @since   Kunena 6.0
     *
     * @throws  Exception
     */
    protected function before()
    {
        parent::before();

        $this->basemenu = $basemenu = KunenaRoute::getMenu();

        if (!$basemenu) {
            return false;
        }

        $parameters = new Registry();
        $template   = KunenaFactory::getTemplate();
        $parameters->set('showAllChildren', $template->params->get('menu_showall', 0));
        $parameters->set('menutype', $basemenu->menutype);
        $parameters->set('startLevel', $basemenu->level + 1);
        $parameters->set('endLevel', $basemenu->level + $template->params->get('menu_levels', 1));

        $this->list      = KunenaMenuHelper::getList($parameters);
        $this->menu      = $this->app->getMenu();
        $this->active    = $this->menu->getActive();
        $this->active_id = isset($this->active) ? $this->active->id : $this->menu->getDefault()->id;
        $this->path      = isset($this->active) ? $this->active->tree : [];
        $this->showAll   = $parameters->get('showAllChildren');

        if ($parameters->get('pageclass_sfx') !== null) {
            $this->class_sfx = htmlspecialchars($parameters->get('pageclass_sfx'), ENT_COMPAT, 'UTF-8');
        }

        return true;
    }
}