Файловый менеджер - Редактировать - /var/www/html/components/com_kunena/src/Controllers/HomeController.php
Ðазад
<?php /** * Kunena Component * * @package Kunena.Site * @subpackage Controllers * * @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\Controllers; \defined('_JEXEC') or die(); use Exception; use Joomla\CMS\Language\Text; use Joomla\CMS\Menu\AbstractMenu; use Kunena\Forum\Libraries\Controller\KunenaController; use Kunena\Forum\Libraries\Error\KunenaError; use Kunena\Forum\Libraries\Exception\KunenaException; use Kunena\Forum\Libraries\Factory\KunenaFactory; use Kunena\Forum\Libraries\Route\KunenaRoute; /** * Kunena Home Controller * * @since Kunena 2.0 */ class HomeController extends KunenaController { /** * @var integer * @since Kunena 6.0 */ public $home = 1; protected $default_view = 'Kunena\Forum\Site\Controller\Display'; protected $prefix = 'site'; /** * @param bool $cachable catchable * @param bool $urlparams urlparams * * @return \Kunena\Forum\Libraries\Controller\KunenaController * * @since Kunena 1.0 * * @throws \Kunena\Forum\Libraries\Exception\KunenaException */ public function display($cachable = false, $urlparams = false): KunenaController { $menu = $this->app->getMenu(); $home = $menu->getActive(); if (!$home) { $this->app->getInput()->get('view', 'category'); $this->app->getInput()->get('layout', 'list'); } else { // Find default menu item $default = $this->_getDefaultMenuItem($menu, $home); if (!$default || $default->id == $home->id) { // There is no default menu item, use category view instead $default = $menu->getItem(KunenaRoute::getItemID("index.php?option=com_kunena&view=category&layout=list")); if ($default) { $default = clone $default; $defhome = KunenaRoute::getHome($default); if (!$defhome || $defhome->id != $home->id) { $default = clone $home; } $default->query['view'] = 'category'; $default->query['layout'] = 'list'; } } if (!$default) { throw new KunenaException(Text::_('COM_KUNENA_NO_ACCESS'), 500); } // Add query variables from shown menu item foreach ($default->query as $var => $value) { $this->app->getInput()->get($var, $value); } // Remove query variables coming from the home menu item $this->app->getInput()->set('defaultmenu', null); // Set active menu item to point the real page $menu->setActive($default->id); } // Reset our router KunenaRoute::initialize(); // Run display task from our new controller $controller = KunenaController::getInstance(); $controller->execute('display'); // Set redirect and message $this->setRedirect($controller->getRedirect(), $controller->getMessage(), $controller->getMessageType()); } /** * @param AbstractMenu $menu Joomla menu. * @param object $active Active menu item. * @param array $visited Already visited menu items. * * @return mixed * * @since Kunena 6.0 * * @throws Exception */ protected function _getDefaultMenuItem(AbstractMenu $menu, $active, $visited = []) { KunenaFactory::loadLanguage('com_kunena.controllers'); if (empty($active->query['defaultmenu']) || $active->id == $active->query['defaultmenu']) { // There is no highlighted menu item return false; } $item = $menu->getItem($active->query['defaultmenu']); if (!$item) { // Menu item points to nowhere, abort KunenaError::warning(Text::sprintf('COM_KUNENA_WARNING_MENU_NOT_EXISTS'), 'menu'); return false; } elseif (isset($visited[$item->id])) { // Menu loop detected, abort KunenaError::warning(Text::sprintf('COM_KUNENA_WARNING_MENU_LOOP'), 'menu'); return false; } elseif (empty($item->component) || $item->component != 'com_kunena' || !isset($item->query['view'])) { // Menu item doesn't point to Kunena, abort KunenaError::warning(Text::sprintf('COM_KUNENA_WARNING_MENU_NOT_KUNENA'), 'menu'); return false; } elseif ($item->query['view'] == 'home') { // Menu item is pointing to another Home Page, try to find default menu item from there $visited[$item->id] = 1; $item = $this->_getDefaultMenuItem($menu, $item->query['defaultmenu'], $visited); } return $item; } }
| ver. 1.1 | |
.
| PHP 8.4.18 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0 |
proxy
|
phpinfo
|
ÐаÑтройка