XF 2.1 Расширение класса Forum для редиректа при клике Создать тему

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

dimsim

Участники
Сообщения
64
Реакции
4
Баллы
65
Всем привет,
хотелось изменить кнопки создающие тему
А именно:
- по клику проверять создаётся ли тема в уже указанном форуме или нет
- если в указанном, то есть имеется параметр $params->node_id в методе public function actionPostThread класса Forum то делать редирект на нужную страницу а если нет то оставлять все как есть и вот код и ошибка полученная:

Код:
<?php
namespace XCentral\xLoginBackground\XF\Pub\Controller;
class Forum extends XFCP_Forum
{
   public function actionPostThread(XF\Mvc\ParameterBag $params)
   {    error_log('extendign class = another log? ');
           // PHP Version 7.3.8 - XEN 2.1
        if (!$params->node_id && !$params->node_name)
        {
                ##parent::actionPostThread();
                //или
                return $this->rerouteController('XF:Forum', 'postThreadChooser');
        } else {
                ## redirect to XC15
                header('Location: http://www.example.com/');
                exit;
        }
   }

лог:

Код:
ErrorException: [E_WARNING] Declaration of XCentral\xLoginBackground\XF\Pub\Controller\Forum::actionPostThread(XCentral\xLoginBackground\XF\Pub\Controller\XF\Mvc\ParameterBag $params) should be compatible with XF\Pub\Controller\Forum::actionPostThread(XF\Mvc\ParameterBag $params) in src/addons/XCentral/xLoginBackground/XF/Pub/Controller/Forum.php at line 0

    XF::handlePhpError() in src/vendor/composer/ClassLoader.php at line 444
    include() in src/vendor/composer/ClassLoader.php at line 444
    Composer\Autoload\includeFile() in src/vendor/composer/ClassLoader.php at line 322
    Composer\Autoload\ClassLoader->loadClass()
    spl_autoload_call()
    class_exists() in src/XF/Extension.php at line 172
    XF\Extension->extendClass() in src/XF/App.php at line 2662
    XF\App->extendClass() in src/XF/App.php at line 1466
    XF\App->XF\{closure}() in src/XF/Container.php at line 228
    XF\Container->create() in src/XF/App.php at line 2617
    XF\App->controller() in src/XF/Mvc/Dispatcher.php at line 276
    XF\Mvc\Dispatcher->dispatchClass() in src/XF/Mvc/Dispatcher.php at line 244
    XF\Mvc\Dispatcher->dispatchFromMatch() in src/XF/Mvc/Dispatcher.php at line 100
    XF\Mvc\Dispatcher->dispatchLoop() in src/XF/Mvc/Dispatcher.php at line 50
    XF\Mvc\Dispatcher->run() in src/XF/App.php at line 2178
    XF\App->run() in src/XF.php at line 390
    XF::runApp() in index.php at line 23

Выглядит как недостаток знаний ООП - помогите пожалуйста
 
grisha2217, да он и был таким - это я подумал что короткая запись и вставил так попробовать но выкидываемый ворнинг практически не изменился

Atikin, ОК - так оно и есть : оригинальная короткая запись не находила что юзать а длинная была не верно написано - спасибо
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу