0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 232 Просмотров
*

elosteris

  • Новичок
  • 4
  • 0 / 0
Здравствуйте. При обновлении PHP 7.0 на 7.3 появляется ошибка
Спойлер
[свернуть]

Погуглив, наткнулся на этот форум, где разбирается похожая проблема
Спойлер
[свернуть]

Попытавшись разобраться (а знания у меня околонулевые), понял, что у меня ситуация немного отличается. Включив режим отладки, обнаружил следующее
Код
Using $this when not in object context

Call stack
# Function Location
1 () JROOT/libraries/src/Application/CMSApplication.php:370
2 Joomla\CMS\Application\CMSApplication::getMenu() JROOT/libraries/src/Application/SiteApplication.php:275
3 Joomla\CMS\Application\SiteApplication::getMenu() JROOT/components/com_xmap/router.php:96
4 XmapBuildRoute() JROOT/libraries/src/Component/Router/RouterLegacy.php:69
5 Joomla\CMS\Component\Router\RouterLegacy->build() JROOT/libraries/src/Router/SiteRouter.php:528
6 Joomla\CMS\Router\SiteRouter->buildSefRoute() JROOT/libraries/src/Router/SiteRouter.php:498
7 Joomla\CMS\Router\SiteRouter->_buildSefRoute() JROOT/libraries/src/Router/Router.php:281
8 Joomla\CMS\Router\Router->build() JROOT/libraries/src/Router/SiteRouter.php:154
9 Joomla\CMS\Router\SiteRouter->build() JROOT/libraries/src/Router/Route.php:144
10 Joomla\CMS\Router\Route::link() JROOT/libraries/src/Router/Route.php:93
11 Joomla\CMS\Router\Route::_() JROOT/modules/mod_menu/helper.php:139
12 ModMenuHelper::getList() JROOT/modules/mod_menu/mod_menu.php:15
13 include() JROOT/plugins/system/t3/includes/joomla4/ModuleHelper.php:201
14 Joomla\CMS\Helper\ModuleHelper::renderModule() JROOT/libraries/src/Document/Renderer/Html/ModuleRenderer.php:98
15 Joomla\CMS\Document\Renderer\Html\ModuleRenderer->render() JROOT/libraries/src/Document/Renderer/Html/ModulesRenderer.php:47
16 Joomla\CMS\Document\Renderer\Html\ModulesRenderer->render() JROOT/libraries/src/Document/HtmlDocument.php:491
17 Joomla\CMS\Document\HtmlDocument->getBuffer() JROOT/libraries/src/Document/HtmlDocument.php:783
18 Joomla\CMS\Document\HtmlDocument->_renderTemplate() JROOT/libraries/src/Document/HtmlDocument.php:557
19 Joomla\CMS\Document\HtmlDocument->render() JROOT/libraries/src/Application/CMSApplication.php:1044
20 Joomla\CMS\Application\CMSApplication->render() JROOT/libraries/src/Application/SiteApplication.php:778
21 Joomla\CMS\Application\SiteApplication->render() JROOT/libraries/src/Application/CMSApplication.php:202
22 Joomla\CMS\Application\CMSApplication->execute() JROOT/index.php:49
Насколько я смог понять, проблема в плагине T3, но поковырявшись в ModuleHelper.php я не обнаружил типичной ошибки &JSite::getMenu();
Если я правильно понимаю, ошибка содержится конкретно тут:
Код
// no direct access
defined('_JEXEC') or die;

//check if t3 plugin is existed
if (!defined('T3')) {
    if (JError::$legacy) {
        JError::setErrorHandling(E_ERROR, 'die');
        JError::raiseError(500, JText::_('T3_MISSING_T3_PLUGIN'));
        exit;
    } else {
        throw new Exception(JText::_('T3_MISSING_T3_PLUGIN'), 500);
    }
}

[b]$t3app = T3::getApp($this);[/b]

// get configured layout
$layout = $t3app->getLayout();


$t3app->loadLayout($layout);
(файл index.php в шаблоне)

Но не могу понять каким образом это можно исправить. Кто-нибудь может подсказать в чем причина и как это исправить?
*

voland

  • Легенда
  • 10671
  • 568 / 111
  • Эта строка съедает место на вашем мониторе
Нет, смотрите что тут
ModMenuHelper::getList() JROOT/modules/mod_menu/mod_menu.php:15
*

ProtectYourSite

  • Завсегдатай
  • 1989
  • 106 / 4
  • Безопасность вебсайтов
Код
Joomla\CMS\Application\CMSApplication::getMenu() JROOT/libraries/src/Application/SiteApplication.php:275
Joomla\CMS\Application\SiteApplication::getMenu() JROOT/components/com_xmap/router.php:96
Я бы там присмотрелся, можно вообще Xmap отключить и заменить поддерживаемым компонентом карты сайта
*

elosteris

  • Новичок
  • 4
  • 0 / 0
Нет, смотрите что тут
ModMenuHelper::getList() JROOT/modules/mod_menu/mod_menu.php:15
Спасибо за ответ.
Код
<?php
/**
 * @package     Joomla.Site
 * @subpackage  mod_menu
 *
 * [member=126442]copyright[/member]   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

// Include the menu functions only once
JLoader::register('ModMenuHelper', __DIR__ . '/helper.php');

$list       = ModMenuHelper::getList($params);
$base       = ModMenuHelper::getBase($params);
$active     = ModMenuHelper::getActive($params);
$default    = ModMenuHelper::getDefault();
$active_id  = $active->id;
$default_id = $default->id;
$path       = $base->tree;
$showAll    = $params->get('showAllChildren', 1);
$class_sfx  = htmlspecialchars($params->get('class_sfx'), ENT_COMPAT, 'UTF-8');

if (count($list))
{
require JModuleHelper::getLayoutPath('mod_menu', $params->get('layout', 'default'));
}
В коде ничего подозрительного не увидел, но он ссылается на helper.php, в нём же есть такая строчка
Код
	public static function getList(&$params)
{
$app = JFactory::getApplication();
$menu = $app->getMenu();
Насколько я понимаю, ошибки тут нет. По необходимости могу всё тело файла приложить
*

elosteris

  • Новичок
  • 4
  • 0 / 0
Код
Joomla\CMS\Application\CMSApplication::getMenu() JROOT/libraries/src/Application/SiteApplication.php:275
Joomla\CMS\Application\SiteApplication::getMenu() JROOT/components/com_xmap/router.php:96
Я бы там присмотрелся, можно вообще Xmap отключить и заменить поддерживаемым компонентом карты сайта
Xmap и все плагины с ним связанные отключил в первую очередь, но ошибка почему-то осталась
*

draff

  • Живу я здесь
  • 4317
  • 293 / 7
  • Ищу работу
А в этой строке /components/com_xmap/router.php:96 , так же получается $menu  как в модуле ?
*

elosteris

  • Новичок
  • 4
  • 0 / 0
А в этой строке /components/com_xmap/router.php:96 , так же получается $menu  как в модуле ?
Благодарю! Ошибка оказалась именно тут, как ни странно, хоть я и отключил Xmap в плагинах, но видимо этого было не достаточно, необходимо было поправить строку 96, там было &JSite::getMenu(); , поставить надо JFactory::getApplication()->getMenu(); .
Я бы не додумался, что отключенный плагин может помешать как-то. Большое спасибо, тему можно закрывать)
*

draff

  • Живу я здесь
  • 4317
  • 293 / 7
  • Ищу работу
Ошибка оказалась именно тут, как ни странно, хоть я и отключил Xmap в плагинах, но видимо этого было не достаточно, необходимо было поправить строку 96, там было &JSite::getMenu(); , поставить надо JFactory::getApplication()->getMenu(); .
Это в коде компонента, а не плагина .
« Последнее редактирование: 22.10.2019, 12:37:31 от draff »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка после установки шаблона helix II

Автор alekcae

Ответов: 4
Просмотров: 39
Последний ответ Сегодня в 14:15:50
от alekcae
Ошибка: Call to undefined function wbStartsWith()

Автор drVadz

Ответов: 0
Просмотров: 74
Последний ответ 04.12.2019, 00:45:24
от drVadz
Ошибка при обновлении с 3.6.0 до 3.6.2 Error: Invalid login

Автор kos0760

Ответов: 4
Просмотров: 4563
Последний ответ 22.11.2019, 09:28:30
от Zelyonkin
Обновил php до 7.2, 0 - Using $this when not in object context

Автор RazarioAgro

Ответов: 7
Просмотров: 404
Последний ответ 21.11.2019, 17:01:24
от draff
Ошибка при попытке отредактировать пользователя

Автор DvaIL87

Ответов: 5
Просмотров: 237
Последний ответ 13.11.2019, 17:37:39
от DvaIL87