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

[3.1][3.2] Ссылка на сообщение

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Perfecthus
phpBB 2.0.10
Сообщения: 799
Стаж: 13 лет 5 месяцев
Откуда: Оттуда
Благодарил (а): 63 раза
Поблагодарили: 89 раз
Контактная информация:

[3.1][3.2] Ссылка на сообщение

Сообщение Perfecthus »

В файле viewtopic.php есть такая конструкция

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

'U_MINI_POST'		=> append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'p=' . $row['post_id']) . '#p' . $row['post_id'],
судя по всему, она должна выдавать абсолютный путь если использовать её в шаблоне лексемой

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

{postrow.U_MINI_POST}
т.е. например: http://domain.ru/viewtopic.php?p=10#p10 или я не прав?
У меня почему-то выдаёт относительный путь ./viewtopic.php?p=10#p10
Как получить абсолютный? Полдня бьюсь, мозги уже кипят. :?
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2208
Стаж: 16 лет 3 месяца
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 338 раз
Контактная информация:

Re: [3.1][3.2] Ссылка на сообщение

Сообщение nissin »

Perfecthus, нет, она должна дать относительный путь.
Абсолютный немного по другому формируется:

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

'U_MINI_POST' => generate_board_url() . '/' . append_sid("viewtopic.$phpEx", 'p=' . $row['post_id']) . '#p' . $row['post_id'],
Всё повторяется. nurlan.info
Аватара пользователя
Perfecthus
phpBB 2.0.10
Сообщения: 799
Стаж: 13 лет 5 месяцев
Откуда: Оттуда
Благодарил (а): 63 раза
Поблагодарили: 89 раз
Контактная информация:

Re: [3.1][3.2] Ссылка на сообщение

Сообщение Perfecthus »

Так это код на php, его же в шаблоне не сформируешь. :|

Отправлено спустя 1 минуту 10 секунд:
Надо как-то его в listener.php прописать? :?:
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

Re: [3.1][3.2] Ссылка на сообщение

Сообщение rxu »

Perfecthus писал(а): 16.08.2018 19:00 его же в шаблоне не сформируешь
В шаблоне точно так же только лексема остается.
Perfecthus писал(а): 16.08.2018 19:00 Надо как-то его в listener.php прописать?
Как и обычно, передаете этот код в шаблон из слушателя через объект template. В чем неясность?
Изображение
Аватара пользователя
Perfecthus
phpBB 2.0.10
Сообщения: 799
Стаж: 13 лет 5 месяцев
Откуда: Оттуда
Благодарил (а): 63 раза
Поблагодарили: 89 раз
Контактная информация:

Re: [3.1][3.2] Ссылка на сообщение

Сообщение Perfecthus »

rxu, Можно рабочий пример. А то у меня всё белый экран.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

Re: [3.1][3.2] Ссылка на сообщение

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

Perfecthus писал(а): 16.08.2018 20:54 белый экран
Логи смотрите, где-то синтаксическая ошибка
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2208
Стаж: 16 лет 3 месяца
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 338 раз
Контактная информация:

Re: [3.1][3.2] Ссылка на сообщение

Сообщение nissin »

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 в конструктор добавить.
Всё повторяется. nurlan.info
Аватара пользователя
Perfecthus
phpBB 2.0.10
Сообщения: 799
Стаж: 13 лет 5 месяцев
Откуда: Оттуда
Благодарил (а): 63 раза
Поблагодарили: 89 раз
Контактная информация:

Re: [3.1][3.2] Ссылка на сообщение

Сообщение Perfecthus »

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 (11.09 КБ) 5 просмотров
Что я сделал неверно? :?
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 14 лет 4 месяца
Благодарил (а): 43 раза
Поблагодарили: 506 раз
Контактная информация:

Re: [3.1][3.2] Ссылка на сообщение

Сообщение Pazh »

Perfecthus,
А в чем сама ошибка - смотреть в логах ошибок сервера или включить отображение ошибок в php и на форуме
Последний раз редактировалось Pazh 17.08.2018 11:25, всего редактировалось 2 раза.
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
Perfecthus
phpBB 2.0.10
Сообщения: 799
Стаж: 13 лет 5 месяцев
Откуда: Оттуда
Благодарил (а): 63 раза
Поблагодарили: 89 раз
Контактная информация:

Re: [3.1][3.2] Ссылка на сообщение

Сообщение Perfecthus »

Вопрос не о «sid», а о том, что приведённый выше код «ложит» сайт напрочь. Что там не верно, не могу понять?
Ткните носом, сам не вижу!
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

Re: [3.1][3.2] Ссылка на сообщение

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

Perfecthus писал(а): 17.08.2018 10:38 Ткните носом
Тыкаем: логи!!! error.log или нечто подобное
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 14 лет 4 месяца
Благодарил (а): 43 раза
Поблагодарили: 506 раз
Контактная информация:

Re: [3.1][3.2] Ссылка на сообщение

Сообщение Pazh »

Perfecthus, в приведенном выше коде listener.php не хватает в начале

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

<?php 
namespace pwg\ext_name\event;
и в services.yml
вместо

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

- @php_ext
должно быть

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

            - %core.php_ext%
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
Perfecthus
phpBB 2.0.10
Сообщения: 799
Стаж: 13 лет 5 месяцев
Откуда: Оттуда
Благодарил (а): 63 раза
Поблагодарили: 89 раз
Контактная информация:

Re: [3.1][3.2] Ссылка на сообщение

Сообщение Perfecthus »

Татьяна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)
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 14 лет 4 месяца
Благодарил (а): 43 раза
Поблагодарили: 506 раз
Контактная информация:

Re: [3.1][3.2] Ссылка на сообщение

Сообщение Pazh »

Perfecthus, после правок кеш очистили?
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
Perfecthus
phpBB 2.0.10
Сообщения: 799
Стаж: 13 лет 5 месяцев
Откуда: Оттуда
Благодарил (а): 63 раза
Поблагодарили: 89 раз
Контактная информация:

Re: [3.1][3.2] Ссылка на сообщение

Сообщение Perfecthus »

Pazh писал(а): 17.08.2018 11:46 после правок кеш очистили?
Удалил всё из папки cache - заработало. Вот жешь, два дня голову ломал, а папку забыл почистить. Изображение
Значит изначально делал всё правильно, ещё до всех вопросов в этом топике, ну надо ж было забыть очистить папку. Изображение

Всем спасибо за помощь! Изображение
Последний раз редактировалось Perfecthus 17.08.2018 12:06, всего редактировалось 1 раз.
Ответить

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