Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Posting.php

Форум для авторов расширений для phpBB. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Vlad__
phpBB 2.0.7
Сообщения: 566
Стаж: 7 лет 4 месяца
Благодарил (а): 278 раз
Поблагодарили: 65 раз

Re: Posting.php

Сообщение Vlad__ »

Спасибо, разобрался. Продолжаем. Теперь вопрос как получить FORUM_NAME для ссылки на форум. Я так понимаю только sql обращением к базе по id ? Или есть другой способ?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12422
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2474 раза

Re: Posting.php

Сообщение Татьяна5 »

Снова всё зависит от события, кое-где можно так вытащить, из параметров, а в остальных случаях только доп. запросом к БД (что нерационально)
Vlad__
phpBB 2.0.7
Сообщения: 566
Стаж: 7 лет 4 месяца
Благодарил (а): 278 раз
Поблагодарили: 65 раз

Re: Posting.php

Сообщение Vlad__ »

Не вижу в событиях FORUM_NAME. Получается только запросом?
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: Posting.php

Сообщение Sheer »

Vlad__ писал(а): 14.03.2018 1:32 Не вижу в событиях FORUM_NAME
Его там быть не может.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Vlad__
phpBB 2.0.7
Сообщения: 566
Стаж: 7 лет 4 месяца
Благодарил (а): 278 раз
Поблагодарили: 65 раз

Re: Posting.php

Сообщение Vlad__ »

Sheer писал(а): 14.03.2018 1:33 Его там быть не может.
Ясное дело. Оно же пишется в бд. Получается только запросом, "что нерационально" (с) Татьяна.
Так?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12422
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2474 раза

Re: Posting.php

Сообщение Татьяна5 »

Нет. Надо разбирать код и искать, в каком параметре из событий есть название форума (оно там 100% есть и не в одном)
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: Posting.php

Сообщение Sheer »

FORUM_NAME -'это один из индексов массива $page_data, который передается в событии 'core.posting_modify_template_vars', больше нигде.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Vlad__
phpBB 2.0.7
Сообщения: 566
Стаж: 7 лет 4 месяца
Благодарил (а): 278 раз
Поблагодарили: 65 раз

Re: Posting.php

Сообщение Vlad__ »

А как мне его оттуда выдрать. Я делаю стороннюю страницу без вызова posting.php
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12422
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2474 раза

Re: Posting.php

Сообщение Татьяна5 »

Sheer писал(а): 14.03.2018 2:01posting
Сейчас про viewforum речь, там много где
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: Posting.php

Сообщение Sheer »

Тогда массив $topic_row, соответственно событие 'core.viewforum_modify_topicrow' или 'core.viewforum_topic_row_after' на выбор
Vlad__ писал(а): 14.03.2018 2:05 как мне его оттуда выдрать
Как любой элемент массива, например

Код: Выделить всё

$forum_name = $topic_row['FORUM_NAME'];
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Vlad__
phpBB 2.0.7
Сообщения: 566
Стаж: 7 лет 4 месяца
Благодарил (а): 278 раз
Поблагодарили: 65 раз

Re: Posting.php

Сообщение Vlad__ »

Sheer писал(а): 14.03.2018 2:15 Как любой элемент массива, например
На другую страницу? У меня по ссылке создается другая страница stranica.php. Forum_id я могу передать в адресной строке. Но почему-то не получается его забрать, ругается на:

Код: Выделить всё

$forum_id	= $request->variable('f', 0);
А forum_name? Как вообще переменные передавать между страницами?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12422
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2474 раза

Re: Posting.php

Сообщение Татьяна5 »

Vlad__ писал(а): 14.03.2018 2:36$request
А он там объявлен?
И вообще, по-хорошему, $this->request должен быть, предварительно переданный в конструктор файла
Vlad__ писал(а): 14.03.2018 2:36 Как вообще переменные передавать между страницами?
Есть 2 варианта: get- и post-запросы
(Ну и тут ещё переменные роутинга используются, как аналог get-запросов)
Vlad__ писал(а): 14.03.2018 2:36forum_name
Если он нужен не в viewforum.php, то проще всё-таки его получить из БД
Vlad__
phpBB 2.0.7
Сообщения: 566
Стаж: 7 лет 4 месяца
Благодарил (а): 278 раз
Поблагодарили: 65 раз

Re: Posting.php

Сообщение Vlad__ »

Татьяна5 писал(а): 14.03.2018 2:43 А он там объявлен?

Код: Выделить всё

<?php
/**
*
* @package phpBB Extension - Test
* @copyright (c) 2013 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/

namespace test\test\controller;

use Symfony\Component\HttpFoundation\Response;

class stranica
{
    protected $config;
    protected $db;
    protected $auth;
    protected $template;
    protected $user;
    protected $helper;
    protected $phpbb_root_path;
    protected $php_ext;

    public function __construct(\phpbb\config\config $config, \phpbb\request\request_interface $request, \phpbb\pagination $pagination, \phpbb\db\driver\driver_interface $db, \phpbb\auth\auth $auth, \phpbb\template\template $template, \phpbb\user $user, \phpbb\controller\helper $helper, $phpbb_root_path, $php_ext, $table_prefix)
    {
        $this->config = $config;
        $this->request = $request;
        $this->pagination = $pagination;
        $this->db = $db;
        $this->auth = $auth;
        $this->template = $template;
        $this->user = $user;
        $this->helper = $helper;
        $this->phpbb_root_path = $phpbb_root_path;
        $this->php_ext = $php_ext;
        $this->table_prefix = $table_prefix;
    }

    public function main()
    {

        // Output the page
        $this->template->assign_vars(array(
            'STRANICA_PAGE_TITLE'    => $this->user->lang('STRANICA_PAGE_TITLE'),
            'U_VIEW_FORUM'          => append_sid("{$this->phpbb_root_path}viewforum.php", 'f=' . $url),            
        ));

        page_header($this->user->lang('STRANICA_PAGE_TITLE'));
        $this->template->set_filenames(array(
            'body' => 'stranica_body.html'));

        page_footer();
        return new Response($this->template->return_display('body'), 200);
    }
}
Нужно получить вот $url в этой строке из адресной.

Код: Выделить всё

'U_VIEW_FORUM'          => append_sid("{$this->phpbb_root_path}viewforum.php", 'f=' . $url),           
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12422
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2474 раза

Re: Posting.php

Сообщение Татьяна5 »

В protected ещё его не вижу, на то тоже ругаться будет
Плюс используется он, раз объявлен, как $this->request

Отправлено спустя 1 минуту 23 секунды:
Vlad__ писал(а): 14.03.2018 2:50

Код: Выделить всё

'U_VIEW_FORUM' => append_sid("{$this->phpbb_root_path}viewforum.php", 'f=' . $url),
Необъявленная переменная $url, тоже ошибку выбьет
Vlad__
phpBB 2.0.7
Сообщения: 566
Стаж: 7 лет 4 месяца
Благодарил (а): 278 раз
Поблагодарили: 65 раз

Re: Posting.php

Сообщение Vlad__ »

Татьяна5 писал(а): 14.03.2018 2:54 Необъявленная переменная $url, тоже ошибку выбьет
Нет, на это не ругается, просто получается ссылка без нечего.

Вернуться в «Для разработчиков»