Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
Форум для авторов расширений для phpBB. Здесь можно попросить помощи в разработке у коллег.
Perfecthus
phpBB 2.0.11
Сообщения: 805 Стаж: 13 лет 6 месяцев
Откуда: Оттуда
Благодарил (а): 51 раз
Поблагодарили: 86 раз
Сообщение
Perfecthus » 16.08.2018 18:12
В файле viewtopic.php есть такая конструкция
Код: Выделить всё
'U_MINI_POST' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'p=' . $row['post_id']) . '#p' . $row['post_id'],
судя по всему, она должна выдавать абсолютный путь если использовать её в шаблоне лексемой
т.е. например:
http://domain.ru/viewtopic.php?p=10#p10
или я не прав?
У меня почему-то выдаёт относительный путь
./viewtopic.php?p=10#p10
Как получить абсолютный? Полдня бьюсь, мозги уже кипят.
Perfecthus
nissin
phpBB 3.0.4
Сообщения: 2209 Стаж: 16 лет 4 месяца
Откуда: Павлодар
Благодарил (а): 5 раз
Поблагодарили: 153 раза
Сообщение
nissin » 16.08.2018 18:37
Perfecthus , нет, она должна дать относительный путь.
Абсолютный немного по другому формируется:
Код: Выделить всё
'U_MINI_POST' => generate_board_url() . '/' . append_sid("viewtopic.$phpEx", 'p=' . $row['post_id']) . '#p' . $row['post_id'],
nissin
Perfecthus
phpBB 2.0.11
Сообщения: 805 Стаж: 13 лет 6 месяцев
Откуда: Оттуда
Благодарил (а): 51 раз
Поблагодарили: 86 раз
Сообщение
Perfecthus » 16.08.2018 18:59
Так это код на php, его же в шаблоне не сформируешь.
Отправлено спустя 1 минуту 10 секунд:
Надо как-то его в listener.php прописать?
Perfecthus
rxu
phpBB Guru
Сообщения: 16382 Стаж: 18 лет
Откуда: Красноярск
Благодарил (а): 523 раза
Поблагодарили: 1748 раз
Сообщение
rxu » 16.08.2018 19:37
Perfecthus писал(а): ↑ 16.08.2018 19:00
его же в шаблоне не сформируешь
В шаблоне точно так же только лексема остается.
Perfecthus писал(а): ↑ 16.08.2018 19:00
Надо как-то его в listener.php прописать?
Как и обычно, передаете этот код в шаблон из слушателя через объект template. В чем неясность?
rxu
Perfecthus
phpBB 2.0.11
Сообщения: 805 Стаж: 13 лет 6 месяцев
Откуда: Оттуда
Благодарил (а): 51 раз
Поблагодарили: 86 раз
Сообщение
Perfecthus » 16.08.2018 20:54
rxu , Можно рабочий пример. А то у меня всё белый экран.
Perfecthus
Татьяна5
Поддержка
Сообщения: 12454 Стаж: 12 лет 9 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2482 раза
Сообщение
Татьяна5 » 16.08.2018 20:59
Логи смотрите, где-то синтаксическая ошибка
Татьяна5
nissin
phpBB 3.0.4
Сообщения: 2209 Стаж: 16 лет 4 месяца
Откуда: Павлодар
Благодарил (а): 5 раз
Поблагодарили: 153 раза
Сообщение
nissin » 17.08.2018 8:06
Perfecthus писал(а): ↑ 16.08.2018 19:00
Надо как-то его в listener.php прописать?
Cобытие
core.viewtopic_modify_post_row
Парочка набросков.
Код: Выделить всё
static public function getSubscribedEvents()
{
return array(
'core.viewtopic_modify_post_row' => 'modify_post_row',
);
}
Код: Выделить всё
public function modify_post_row($event)
{
$post_row = $event['post_row'];
$row = $event['row'];
$phpEx = $this->php_ext;
$post_row['U_MINI_POST'] = generate_board_url() . '/' . append_sid("viewtopic.$phpEx", 'p=' . $row['post_id']) . '#p' . $row['post_id'];
$event['post_row'] = $post_row;
}
Нужно ещё инициализацию $this->php_ext в конструктор добавить.
nissin
Perfecthus
phpBB 2.0.11
Сообщения: 805 Стаж: 13 лет 6 месяцев
Откуда: Оттуда
Благодарил (а): 51 раз
Поблагодарили: 86 раз
Сообщение
Perfecthus » 17.08.2018 8:45
nissin ,
listener.php
Код: Выделить всё
class listener implements EventSubscriberInterface
{
protected $template;
protected $php_ext;
public function __construct(\phpbb\template\template $template, $php_ext)
{
$this->template = $template;
$this->php_ext = $php_ext;
}
static public function getSubscribedEvents()
{
return array(
'core.user_setup' => 'load_language_on_setup',
'core.viewtopic_modify_post_row' => 'modify_post_row',
);
}
public function modify_post_row($event)
{
$post_row = $event['post_row'];
$row = $event['row'];
$phpEx = $this->php_ext;
$post_row['U_MINI_POST'] = generate_board_url() . '/' . append_sid("viewtopic.$phpEx", 'p=' . $row['post_id']) . '#p' . $row['post_id'];
$event['post_row'] = $post_row;
}
public function load_language_on_setup($event) {
$lang_set_ext = $event['lang_set_ext'];
$lang_set_ext[] = array(
'ext_name' => 'pwg/ext_name',
'lang_set' => 'postsnumber',
);
$event['lang_set_ext'] = $lang_set_ext;
}
}
services.yml
Код: Выделить всё
services:
pwg.ext_name.listener:
class: pwg\ext_name\event\listener
arguments:
- @template
- @php_ext
tags:
- { name: event.listener }
Получаю такую картину
Снимок.PNG
Что я сделал неверно?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Perfecthus
Pazh
Former team member
Сообщения: 2317 Стаж: 14 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 261 раз
Сообщение
Pazh » 17.08.2018 10:33
Perfecthus ,
А в чем сама ошибка - смотреть в логах ошибок сервера или включить отображение ошибок в php и на форуме
Последний раз редактировалось Pazh 17.08.2018 11:25, всего редактировалось 2 раза.
Помощь в ЛС/email только за WM или ЮMoney
Pazh
Perfecthus
phpBB 2.0.11
Сообщения: 805 Стаж: 13 лет 6 месяцев
Откуда: Оттуда
Благодарил (а): 51 раз
Поблагодарили: 86 раз
Сообщение
Perfecthus » 17.08.2018 10:38
Вопрос не о «sid», а о том, что приведённый выше код «ложит» сайт напрочь. Что там не верно, не могу понять?
Ткните носом, сам не вижу!
Perfecthus
Татьяна5
Поддержка
Сообщения: 12454 Стаж: 12 лет 9 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2482 раза
Сообщение
Татьяна5 » 17.08.2018 10:54
Тыкаем: логи!!! error.log или нечто подобное
Татьяна5
Pazh
Former team member
Сообщения: 2317 Стаж: 14 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 261 раз
Сообщение
Pazh » 17.08.2018 11:23
Perfecthus , в приведенном выше коде listener.php не хватает в начале
и в services.yml
вместо
должно быть
Помощь в ЛС/email только за WM или ЮMoney
Pazh
Perfecthus
phpBB 2.0.11
Сообщения: 805 Стаж: 13 лет 6 месяцев
Откуда: Оттуда
Благодарил (а): 51 раз
Поблагодарили: 86 раз
Сообщение
Perfecthus » 17.08.2018 11:43
Татьяна5 писал(а): ↑ 17.08.2018 10:54
Тыкаем: логи!!! error.log или нечто подобное
'The service "pwg.ext_name.listener" has a dependency on a non-existent service "php_ext".'
Pazh писал(а): ↑ 17.08.2018 11:23
в приведенном выше коде listener.php не хватает в начале
namespace pwg\ext_name\event;
Присутствует, просто не скопировал.
Pazh писал(а): ↑ 17.08.2018 11:23
- %core.php_ext%
Исправил, но всё-равно сайт в даун...
В логах ругается на эту строку в listene.php
public function __construct(\phpbb\template\template $template, $php_ext)
Perfecthus
Pazh
Former team member
Сообщения: 2317 Стаж: 14 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 261 раз
Сообщение
Pazh » 17.08.2018 11:46
Perfecthus , после правок кеш очистили?
Помощь в ЛС/email только за WM или ЮMoney
Pazh
Perfecthus
phpBB 2.0.11
Сообщения: 805 Стаж: 13 лет 6 месяцев
Откуда: Оттуда
Благодарил (а): 51 раз
Поблагодарили: 86 раз
Сообщение
Perfecthus » 17.08.2018 12:05
Pazh писал(а): ↑ 17.08.2018 11:46
после правок кеш очистили?
Удалил всё из папки cache - заработало. Вот жешь, два дня голову ломал, а папку забыл почистить.
Значит изначально делал всё правильно, ещё до всех вопросов в этом топике, ну надо ж было забыть очистить папку.
Всем спасибо за помощь!
Последний раз редактировалось Perfecthus 17.08.2018 12:06, всего редактировалось 1 раз.
Perfecthus