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

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Perfecthus
phpBB 2.0.6
Сообщения: 518
Зарегистрирован: 21.10.2010 8:39
Откуда: Оттуда
Благодарил (а): 44 раза
Поблагодарили: 50 раз

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

Сообщение 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'],
судя по всему, она должна выдавать абсолютный путь если использовать её в шаблоне лексемой

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

{postrow.U_MINI_POST}
т.е. например: http://domain.ru/viewtopic.php?p=10#p10 или я не прав?
У меня почему-то выдаёт относительный путь ./viewtopic.php?p=10#p10
Как получить абсолютный? Полдня бьюсь, мозги уже кипят. :?

Аватара пользователя
nissin
phpBB 3.0.3
Сообщения: 2173
Зарегистрирован: 16.12.2007 14:01
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 335 раз
Контактная информация:

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

Сообщение 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'],
Всё повторяется. nurlan.info

Аватара пользователя
Perfecthus
phpBB 2.0.6
Сообщения: 518
Зарегистрирован: 21.10.2010 8:39
Откуда: Оттуда
Благодарил (а): 44 раза
Поблагодарили: 50 раз

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

Сообщение Perfecthus » 16.08.2018 18:59

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

Отправлено спустя 1 минуту 10 секунд:
Надо как-то его в listener.php прописать? :?:

Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 14403
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 344 раза
Поблагодарили: 1514 раз
Контактная информация:

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

Сообщение rxu » 16.08.2018 19:37

Perfecthus писал(а):
16.08.2018 19:00
его же в шаблоне не сформируешь
В шаблоне точно так же только лексема остается.
Perfecthus писал(а):
16.08.2018 19:00
Надо как-то его в listener.php прописать?
Как и обычно, передаете этот код в шаблон из слушателя через объект template. В чем неясность?
Изображение

Аватара пользователя
Perfecthus
phpBB 2.0.6
Сообщения: 518
Зарегистрирован: 21.10.2010 8:39
Откуда: Оттуда
Благодарил (а): 44 раза
Поблагодарили: 50 раз

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

Сообщение Perfecthus » 16.08.2018 20:54

rxu, Можно рабочий пример. А то у меня всё белый экран.

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9644
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 173 раза
Поблагодарили: 2673 раза
Контактная информация:

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

Сообщение Татьяна5 » 16.08.2018 20:59

Perfecthus писал(а):
16.08.2018 20:54
белый экран
Логи смотрите, где-то синтаксическая ошибка

Аватара пользователя
nissin
phpBB 3.0.3
Сообщения: 2173
Зарегистрирован: 16.12.2007 14:01
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 335 раз
Контактная информация:

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

Сообщение 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 в конструктор добавить.
Всё повторяется. nurlan.info

Аватара пользователя
Perfecthus
phpBB 2.0.6
Сообщения: 518
Зарегистрирован: 21.10.2010 8:39
Откуда: Оттуда
Благодарил (а): 44 раза
Поблагодарили: 50 раз

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

Сообщение 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
Скриншот результата
(11.09 КБ) 0 скачиваний
Что я сделал неверно? :?

Аватара пользователя
Pazh
Former team member
Сообщения: 2194
Зарегистрирован: 09.11.2009 17:46
Благодарил (а): 41 раз
Поблагодарили: 453 раза
Контактная информация:

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

Сообщение Pazh » 17.08.2018 10:33

Perfecthus,
А в чем сама ошибка - смотреть в логах ошибок сервера или включить отображение ошибок в php и на форуме
Последний раз редактировалось Pazh 17.08.2018 11:25, всего редактировалось 2 раза.
форум ЖК Вестердам Помощь в ЛС/email только за WM или ЯД

Аватара пользователя
Perfecthus
phpBB 2.0.6
Сообщения: 518
Зарегистрирован: 21.10.2010 8:39
Откуда: Оттуда
Благодарил (а): 44 раза
Поблагодарили: 50 раз

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

Сообщение Perfecthus » 17.08.2018 10:38

Вопрос не о «sid», а о том, что приведённый выше код «ложит» сайт напрочь. Что там не верно, не могу понять?
Ткните носом, сам не вижу!

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9644
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 173 раза
Поблагодарили: 2673 раза
Контактная информация:

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

Сообщение Татьяна5 » 17.08.2018 10:54

Perfecthus писал(а):
17.08.2018 10:38
Ткните носом
Тыкаем: логи!!! error.log или нечто подобное

Аватара пользователя
Pazh
Former team member
Сообщения: 2194
Зарегистрирован: 09.11.2009 17:46
Благодарил (а): 41 раз
Поблагодарили: 453 раза
Контактная информация:

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

Сообщение Pazh » 17.08.2018 11:23

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

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

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

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

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

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

            - %core.php_ext%
форум ЖК Вестердам Помощь в ЛС/email только за WM или ЯД

Аватара пользователя
Perfecthus
phpBB 2.0.6
Сообщения: 518
Зарегистрирован: 21.10.2010 8:39
Откуда: Оттуда
Благодарил (а): 44 раза
Поблагодарили: 50 раз

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

Сообщение 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)

Аватара пользователя
Pazh
Former team member
Сообщения: 2194
Зарегистрирован: 09.11.2009 17:46
Благодарил (а): 41 раз
Поблагодарили: 453 раза
Контактная информация:

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

Сообщение Pazh » 17.08.2018 11:46

Perfecthus, после правок кеш очистили?
форум ЖК Вестердам Помощь в ЛС/email только за WM или ЯД

Аватара пользователя
Perfecthus
phpBB 2.0.6
Сообщения: 518
Зарегистрирован: 21.10.2010 8:39
Откуда: Оттуда
Благодарил (а): 44 раза
Поблагодарили: 50 раз

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

Сообщение Perfecthus » 17.08.2018 12:05

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

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

Ответить

Вернуться в «Для авторов»