Уважаемые пользователи!
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 3.1.1 и php (код сапы)

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12415
Стаж: 12 лет 8 месяцев
Благодарил (а): 224 раза
Поблагодарили: 3526 раз
Контактная информация:

Re: phpBB 3.1.1 и php (код сапы)

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

Thanx писал(а):assign_vars
s лишняя появилась
В остальном всё так
Thanx
phpBB 2.0.2
Сообщения: 334
Стаж: 18 лет 3 месяца
Благодарил (а): 16 раз
Контактная информация:

Re: phpBB 3.1.1 и php (код сапы)

Сообщение Thanx »

И ещё маленький вопросик. А вот почему такая конструкция не работает:

<!-- PHP -->
$string = $this->request->server('REQUEST_URI');
echo $string;
<!-- ENDPHP -->

она была вместо работающей

<!-- PHP -->
$string=$_SERVER["REQUEST_URI"];
echo $string;
<!-- ENDPHP -->

Ведь rxu сказал поменять примерно так, но ничего у меня не работает.

Добавлено спустя 5 минут 45 секунд:
Опять белый экран, причём появился он после того, как я разместил конструктор в листенере, вот тут:

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

class listener implements EventSubscriberInterface
{
	/**
	* Constructor
	*/
	public function __construct(\phpbb\template\template $template)
	{
		$this->template = $template;
	}

	/**
	* Assign functions defined in this class to event listeners in the core
	*
	* @return array
	* @static
	* @access public
	*/
	static public function getSubscribedEvents()
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12415
Стаж: 12 лет 8 месяцев
Благодарил (а): 224 раза
Поблагодарили: 3526 раз
Контактная информация:

Re: phpBB 3.1.1 и php (код сапы)

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

В шаблонах ни $request, ни $this->request не задано

Добавлено спустя 1 минуту 10 секунд:
Thanx писал(а):Опять белый экран
Кеш-кеш-кеш. Не видит движок изменений в .yml без физочистки кеша
Thanx
phpBB 2.0.2
Сообщения: 334
Стаж: 18 лет 3 месяца
Благодарил (а): 16 раз
Контактная информация:

Re: phpBB 3.1.1 и php (код сапы)

Сообщение Thanx »

В шаблонах не задано... хорошо.
Тогда я пробую в листенере:

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

	public function sCode($event)
	{
		$string = request->server('REQUEST_URI');
		echo $string;
	}
и так

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

	public function sCode($event)
	{
		$string = $this->request->server('REQUEST_URI');
		echo $string;
	}
Тоже не работает!
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12415
Стаж: 12 лет 8 месяцев
Благодарил (а): 224 раза
Поблагодарили: 3526 раз
Контактная информация:

Re: phpBB 3.1.1 и php (код сапы)

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

В sevices.yml и через конструктор в слушателе переменную подключили?

Добавлено спустя 2 минуты 6 секунд:
Thanx писал(а):echo $string;
"Сломает" всю вёрстку и "наполнит" форум кракозябрами
Вывод в шаблон должен быть через $this->temlate->assign_var(s)
Thanx
phpBB 2.0.2
Сообщения: 334
Стаж: 18 лет 3 месяца
Благодарил (а): 16 раз
Контактная информация:

Re: phpBB 3.1.1 и php (код сапы)

Сообщение Thanx »

Вот так подключать?

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

services:
    fofo.mytest.listener:
        class: fofo\mytest\event\listener
        arguments:
            - @string
и

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

class listener implements EventSubscriberInterface
{
	/**
	* Constructor
	*/
	public function __construct(\phpbb\template\template $string)
	{
		$this->string = $string;
	}


Добавлено спустя 6 минут 27 секунд:

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

        arguments:
            - @string
этот кусочек кода подвешивает форум. Кеш чистил.

Может, нужно не через листенер реализовывать, а через контроллёр?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12415
Стаж: 12 лет 8 месяцев
Благодарил (а): 224 раза
Поблагодарили: 3526 раз
Контактная информация:

Re: phpBB 3.1.1 и php (код сапы)

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

Thanx писал(а):

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

        arguments:
            - @string
Надо объявить request, а вы string какой-то объявляете (которого вообще в phpBB нет)

И вот тут
Thanx писал(а):__construct(\phpbb\template\template
будет уже не \phpbb\template\template, а \phpbb\request\request (это задаётся путь к файлу, содержащему класс request)
Thanx
phpBB 2.0.2
Сообщения: 334
Стаж: 18 лет 3 месяца
Благодарил (а): 16 раз
Контактная информация:

Re: phpBB 3.1.1 и php (код сапы)

Сообщение Thanx »

https://github.com/nickvergessen/phpbb- ... rvices.yml

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

services:
    acme.demo.controller:
        class: acme\demo\controller\main
        arguments:
            - @config
            - @controller.helper
            - @template
            - @user
    acme.demo.listener:
        class: acme\demo\event\main_listener
        arguments:
            - @controller.helper
            - @template
        tags:
            - { name: event.listener }
Может, пока мы не определили переменную в контролёре, мы не можем её определить в services.yml?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12415
Стаж: 12 лет 8 месяцев
Благодарил (а): 224 раза
Поблагодарили: 3526 раз
Контактная информация:

Re: phpBB 3.1.1 и php (код сапы)

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

Нет, переменные в классах контроллера и слушателя вообще не пересекаются

Добавлено спустя 1 минуту 38 секунд:
Да и для того, чтобы объявлять переменные для класса controller, надо сначала этот класс создать (а для нескольких строк кода он не нужен)
Thanx
phpBB 2.0.2
Сообщения: 334
Стаж: 18 лет 3 месяца
Благодарил (а): 16 раз
Контактная информация:

Re: phpBB 3.1.1 и php (код сапы)

Сообщение Thanx »

У-р-р-р-я-я-я-я-я!!!

Вывел эхом:

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

/index.php?sid=a304cebd547d145a466ea2076dc067f7
Ну хоть что-то с мёртвой точки сдвинулось!

Добавлено спустя 19 минут 7 секунд:
И ещё вопрос.

В листенере прописал так:

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

	static public function getSubscribedEvents()
	{
		return array(
			'core.index_modify_page_title' => 'sCode',
			'core.overall_header_content_before' => 'artHeader',
		);
	}
и так

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

	public function artHeader($event)
	{
		$this->template->assign_var('ART_HEADER', $this->request->server('REQUEST_URI'));
	}
но что-то нет вывода в хедере...

Добавлено спустя 2 минуты 55 секунд:
и просто эхом тоже не выводит.

Так просто вывел на главной, а в хедере то же самое уже не могу.

Добавлено спустя 10 минут 21 секунду:
одно и то де для этого события
'core.index_modify_page_title' => 'sCode',
работает, а для этого
'core.overall_header_content_before' => 'artHeader',
не работает.

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

<?

namespace fofo\mytest\event;

use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class listener implements EventSubscriberInterface
{
	/**
	* Assign functions defined in this class to event listeners in the core
	*
	* @return array
	* @static
	* @access public
	*/
	static public function getSubscribedEvents()
	{
		return array(
			'core.index_modify_page_title' => 'sCode',
			'core.overall_header_content_before' => 'artHeader',
		);
	}

	public function __construct(\phpbb\request\request $request)
	{
		$this->request = $request;
	}

	public function sCode($event)
	{
		echo $this->request->server('REQUEST_URI');
	}

	public function artHeader($event)
	{
		echo $this->request->server('REQUEST_URI');
	}
}

?>
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12415
Стаж: 12 лет 8 месяцев
Благодарил (а): 224 раза
Поблагодарили: 3526 раз
Контактная информация:

Re: phpBB 3.1.1 и php (код сапы)

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

Thanx писал(а):core.overall_header_content_before
Нет такого события
Event List
Thanx
phpBB 2.0.2
Сообщения: 334
Стаж: 18 лет 3 месяца
Благодарил (а): 16 раз
Контактная информация:

Re: phpBB 3.1.1 и php (код сапы)

Сообщение Thanx »

Да, действительно, подписался на это событие:

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

'core.viewforum_get_topic_data' => 'artHeader',
и дело пошло:

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

/viewforum.php?f=3
Есть ещё вопрос:

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

	public function artHeader($event)
	{
		echo $this->request->server('REQUEST_URI');
		$this->template->assign_var('ART_HEADER', $this->request->server('REQUEST_URI'));
	}
Первая строчка работает. Вторая "вешает" форум. В чём косяк во второй строчке?

Добавлено спустя 3 минуты 11 секунд:
Видимо, нужно переменную template объявлять, как и request... или нет?
Последний раз редактировалось Thanx 24.11.2014 19:58, всего редактировалось 1 раз.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: phpBB 3.1.1 и php (код сапы)

Сообщение Sheer »

Thanx писал(а):Видимо, нужно переменную template объявлять
Естественно.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Thanx
phpBB 2.0.2
Сообщения: 334
Стаж: 18 лет 3 месяца
Благодарил (а): 16 раз
Контактная информация:

Re: phpBB 3.1.1 и php (код сапы)

Сообщение Thanx »

Супер! Отобразилось! В нужном месте!

Добавлено спустя 7 минут 26 секунд:
Вообще класс. Раньше у меня была портянка длинная (мешанка php кода и html тегов), в итоге для каждого форума была отдельная таблица. А таблицы-то, по сути, одинаковые. И сейчас, когда php-код от шаблона отделён, можно и дальше расширять форум, не боясь увеличения размера файла хедера, т.к. на каждый новый форум не нужна новая копия таблицы, а будет использоваться одна и та же таблица из шаблона. Супер! Только переменные успевай подставлять!
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: phpBB 3.1.1 и php (код сапы)

Сообщение Sheer »

Дело даже не в размере шаблона шапки, а в дыре безопасности, которая создается подключением php в шаблоны.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Перенесено из форума Поддержка phpBB 3.1.x в форум Запросы расширений для phpBB 04.02.2019 12:28 модератором Sheer

Ответить

Вернуться в «Запросы расширений для phpBB»