XF 2.2 Исключение после загрузки плагина

Статус
В этой теме нельзя размещать новые ответы.
Версия XenForo
2.2.12

EnderSakura

Участники
Сообщения
9
Реакции
1
Баллы
30
Здраствуйте!
Решил добавить на свой форум плагин Brivium Modern Statistics v3.0.4.
Из многих других версий он один (версии 3.0.4) который хоть бы загрузился, но вот загрузился он не верно.
Выдает данную ошибку:
Код:
An exception occurred: [ErrorException] [E_WARNING] Declaration of BR\ModernStatistic\XF\Template\Templater::renderTemplate($template, array $params = Array,
$addDefaultParams = true) should be compatible with XF\Template\Templater::renderTemplate($template, array $params = Array, $addDefaultParams = true,
?XF\Template\ExtensionSet $extensionOverrides = NULL) in src/addons/BR/ModernStatistic/XF/Template/Templater.php on line 20
Места с ошибками:
Код:
XF::handlePhpError() in src/vendor/composer/ClassLoader.php at line 571
include() in src/vendor/composer/ClassLoader.php at line 571
Composer\Autoload\includeFile() in src/vendor/composer/ClassLoader.php at line 428
Composer\Autoload\ClassLoader->loadClass()
spl_autoload_call()
class_exists() in src/XF/Extension.php at line 174
XF\Extension->extendClass() in src/XF/App.php at line 3004
XF\App->extendClass() in src/XF/App.php at line 1949
XF\App->setupTemplaterObject() in src/XF/App.php at line 1397
XF\App->XF\{closure}() in src/XF/Container.php at line 31
XF\Container->offsetGet() in src/XF/App.php at line 3380
XF\App->templater() in src/XF/Admin/App.php at line 112
XF\Admin\App->preRender() in src/XF/Mvc/Dispatcher.php at line 397
XF\Mvc\Dispatcher->render() in src/XF/Mvc/Dispatcher.php at line 60
XF\Mvc\Dispatcher->run() in src/XF/App.php at line 2483
XF\App->run() in src/XF.php at line 524
XF::runApp() in admin.php at line 13
Пробывал его удалить вручную через файловый менеджер хостинга, выдает ошибку что не может его найти в файлах.
Заранее всем спасибо 🤗
 
Удалось исправить. Извиняюсь что являеться конечно оффтопом. Вопрос можно закрывать.
Решение:
Перейдите в корневую директорию форума "src/addons/BR/ModersStatistic/XF/Template" в файл "Templater.php". Ошибку вызивает 20 строчка в коде. Берем ее в комментарии //. Должно получиться так:
Код:
<?php
namespace BR\ModernStatistic\XF\Template;

class Templater extends XFCP_Templater
{
    public function callAdsMacro($position, array $arguments, array $globalVars)
    {
        $ads = parent::callAdsMacro($position, $arguments, $globalVars);
        /** @var \XF\Service\Advertising\Writer $service */
        $service = $this->app->service('BR\ModernStatistic:ModernStatistic\Render', 'ads:' . $position);
        $service->setLoadedTemplates($this->loadedTemplates);
        $service->setTemplateParams($globalVars);
        $ads .= $service->render();
        return $ads;
    }

    protected $loadedTemplates = [];
    protected $firstParams = null;

    //public function renderTemplate($template, array $params = [], $addDefaultParams = true)
    //{
        /*if($this->firstParams == null){
            $this->firstParams = $params;
        }*/
    //    $this->loadedTemplates[] = str_replace('public:', '', $template);

    //    return parent::renderTemplate($template, $params, $addDefaultParams);
//    }
}
 
Удалось исправить. Извиняюсь что являеться конечно оффтопом. Вопрос можно закрывать.
Решение:
Перейдите в корневую директорию форума "src/addons/BR/ModersStatistic/XF/Template" в файл "Templater.php". Ошибку вызивает 20 строчка в коде. Берем ее в комментарии //. Должно получиться так:
Код:
<?php
namespace BR\ModernStatistic\XF\Template;

class Templater extends XFCP_Templater
{
    public function callAdsMacro($position, array $arguments, array $globalVars)
    {
        $ads = parent::callAdsMacro($position, $arguments, $globalVars);
        /** @var \XF\Service\Advertising\Writer $service */
        $service = $this->app->service('BR\ModernStatistic:ModernStatistic\Render', 'ads:' . $position);
        $service->setLoadedTemplates($this->loadedTemplates);
        $service->setTemplateParams($globalVars);
        $ads .= $service->render();
        return $ads;
    }

    protected $loadedTemplates = [];
    protected $firstParams = null;

    //public function renderTemplate($template, array $params = [], $addDefaultParams = true)
    //{
        /*if($this->firstParams == null){
            $this->firstParams = $params;
        }*/
    //    $this->loadedTemplates[] = str_replace('public:', '', $template);

    //    return parent::renderTemplate($template, $params, $addDefaultParams);
//    }
}
Вообще-то правильно удалять плагин сначала из админки
 
Вообще-то правильно удалять плагин сначала из админки
После того как я нажал кнопку "Установить/Обновить плагин из архива", как-бы мне показало версию плагина и другую про него информацию. После нажатия кнопки "Установить" форум стал просто недоступен, на любую из страниц показывало эту ошибку, поэтому я не мог зайди вообще никуда.
Я знаю как их надо удалять через админку, я бы не задавал таких глупых вопросов тогда.
 
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу