Уважаемые пользователи!
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.x на конкретных примерах

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Real_Haron
phpBB 1.2.1
Сообщения: 22
Стаж: 8 лет 2 месяца
Благодарил (а): 2 раза

Re: Расширения 3.1.x на конкретных примерах

Сообщение Real_Haron »

Может быть полезно в случае, если в модификации необходимо изменить логику работы login_box()

По поводу переменных, мне было достаточно $admin, так как стояла задача вообще его отключить, кроме ситуации со входом в админку. Но кому-то другому может понадобиться всё, что в функцию передаётся.
Аватара пользователя
Real_Haron
phpBB 1.2.1
Сообщения: 22
Стаж: 8 лет 2 месяца
Благодарил (а): 2 раза

Re: Расширения 3.1.x на конкретных примерах

Сообщение Real_Haron »

В общем хотелось бы увидеть это в следующем релизе.

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

Index: functions.php
===================================================================
--- functions.php	(revision 11)
+++ functions.php	(working copy)
@@ -2812,6 +2812,9 @@
 {
 	global $db, $user, $template, $auth, $phpEx, $phpbb_root_path, $config;
 	global $request, $phpbb_container, $phpbb_dispatcher;
+	
+	$vars = array('redirect', 'l_explain', 'l_success', 'admin', 's_display');
+	extract($phpbb_dispatcher->trigger_event('core.login_box', compact($vars)));
 
 	$err = '';
И вообще, ивентов надо побольше всяких, хороших и разных.
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 830 раз

Re: Расширения 3.1.x на конкретных примерах

Сообщение LavIgor »

Real_Haron, Ок, вечером сделаю.
Аватара пользователя
Real_Haron
phpBB 1.2.1
Сообщения: 22
Стаж: 8 лет 2 месяца
Благодарил (а): 2 раза

Re: Расширения 3.1.x на конкретных примерах

Сообщение Real_Haron »

Итак, двигаемся дальше.

При установке мода (голая установка на чистый, свежий форум) мне надо добавить некоторые параметры конфигурации. При удалении мне их надо удалить. Раскуривал migrations, однако что-то не работает, т.е. конфиги не добавляются и не удаляются. Делал так:
Скрытый текст

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

namespace vendor\ext\migrations;

class release_1_0_0 extends \phpbb\db\migration\migration
{
	static public function depends_on()
	{
		return ['\phpbb\db\migration\data\v310\alpha2'];
	}
	
	public function effectively_installed()
	{
		return isset($this -> config['vendor_ext_cfg_name']);
	}
	
	public function update_data()
	{
		return [
			['config.add', ['vendor_ext_cfg_name', 'foo']]
		];
	}
	
	public function revert_data()
	{
		return [
			['config.remove', ['vendor_ext_cfg_name']]
		];
	}
}
Последний раз редактировалось Real_Haron 18.02.2016 12:39, всего редактировалось 1 раз.
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 830 раз

Re: Расширения 3.1.x на конкретных примерах

Сообщение LavIgor »

Скобочка круглая затесалась.
В чём преимущество перехода на синтаксис PHP 5.4 вместо используемого в phpBB 3.1 array()?
Аватара пользователя
Real_Haron
phpBB 1.2.1
Сообщения: 22
Стаж: 8 лет 2 месяца
Благодарил (а): 2 раза

Re: Расширения 3.1.x на конкретных примерах

Сообщение Real_Haron »

Субьективно, код красивее и лаконичнее получается, менее громоздкий. Я вот помнится, как-то всё перевёл на 5.4, в основном только ради этой фичи :). Стало удобнее, синтаксис стал чуточку ближе к другим языкам, с которыми я работаю. Ну в общем, скобочка это здесь только забыл убрать, когда пример писал. В рабочем коде её нет.

Отправлено спустя 38 минут 27 секунд:
Разобрался.

Оказывается, чтоб всё работало , надо "Удалить все данные" после "Отключения". Тогда конфиги удаляются.
Если после этого "Включить" - то, конфиги добавляются.
Неочевидное поведение.
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 830 раз

Re: Расширения 3.1.x на конкретных примерах

Сообщение LavIgor »

Real_Haron писал(а): Неочевидное поведение.
Почему?
Разве понятие "удалить данные" на это не намекает?

При отключении расширения миграции вообще не затрагиваются.
Аватара пользователя
Sumanai
phpBB 3.0.0 RC5
Сообщения: 1668
Стаж: 9 лет 5 месяцев
Благодарил (а): 257 раз
Поблагодарили: 195 раз

Re: Расширения 3.1.x на конкретных примерах

Сообщение Sumanai »

LavIgor писал(а): Хм, стало интересно, зачем здесь return.
Похоже на ошибку. Там скорее всего имелась в виду переменная result.
Аватара пользователя
Real_Haron
phpBB 1.2.1
Сообщения: 22
Стаж: 8 лет 2 месяца
Благодарил (а): 2 раза

Re: Расширения 3.1.x на конкретных примерах

Сообщение Real_Haron »

Как использовать сторонние библиотеки в расширениях?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1745 раз

Re: Расширения 3.1.x на конкретных примерах

Сообщение rxu »

Sumanai писал(а): Там скорее всего имелась в виду переменная result.
Кто-то (а точнее david63), похоже, просто копировал событие из функции redirect() и забыл удалить.

Отправлено спустя 1 минуту 51 секунду:
Real_Haron писал(а): Как использовать сторонние библиотеки в расширениях?
Смотря какие. Если они доступны через packagist, то стандартным способом, указываете зависимость в composer.json, генерируете composer.lock, библиотека как всегда в папке vendor и всё.
Изображение
Аватара пользователя
Real_Haron
phpBB 1.2.1
Сообщения: 22
Стаж: 8 лет 2 месяца
Благодарил (а): 2 раза

Re: Расширения 3.1.x на конкретных примерах

Сообщение Real_Haron »

rxu писал(а): Кто-то (а точнее david63), похоже, просто копировал событие из функции redirect() и забыл удалить.
Таки да. Хороший повод сделать коммит с событием и фиксом :)
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 830 раз

Re: Расширения 3.1.x на конкретных примерах

Сообщение LavIgor »

Real_Haron писал(а): Хороший повод сделать коммит с событием и фиксом
Сейчас займусь этим.

Отправлено спустя 1 час 16 минут 42 секунды:
Так пойдёт?
https://github.com/phpbb/phpbb/pull/4184/files
Аватара пользователя
Real_Haron
phpBB 1.2.1
Сообщения: 22
Стаж: 8 лет 2 месяца
Благодарил (а): 2 раза

Re: Расширения 3.1.x на конкретных примерах

Сообщение Real_Haron »

Супер! Спасибо!
Аватара пользователя
Real_Haron
phpBB 1.2.1
Сообщения: 22
Стаж: 8 лет 2 месяца
Благодарил (а): 2 раза

Re: Расширения 3.1.x на конкретных примерах

Сообщение Real_Haron »

Вот это ещё добавьте пожалуйста

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

Index: viewforum.php
===================================================================
--- viewforum.php	(revision 11)
+++ viewforum.php	(working copy)
@@ -396,15 +396,17 @@
 * @event core.viewforum_get_topic_data
 * @var	array	forum_data			Array with forum data
 * @var	array	sql_array			The SQL array to get the data of all topics
-* @var	array	forum_id			The forum_id whose topics are being listed
-* @var	array	topics_count		The total number of topics for display
-* @var	array	sort_days			The oldest topic displayable in elapsed days
-* @var	array	sort_key			The sorting by. It is one of the first character of (in low case):
+* @var	int		forum_id			The forum_id whose topics are being listed
+* @var	int		topics_count		The total number of topics for display
+* @var	int		start				The start position of viewable topics
+* @var	int		sort_days			The oldest topic displayable in elapsed days
+* @var	string	sort_key			The sorting by. It is one of the first character of (in low case):
 *									Author, Post time, Replies, Subject, Views
-* @var	array	sort_dir			Either "a" for ascending or "d" for descending
+* @var	string	sort_dir			Either "a" for ascending or "d" for descending
 * @since 3.1.0-a1
 * @change 3.1.0-RC4 Added forum_data var
 * @change 3.1.4-RC1 Added forum_id, topics_count, sort_days, sort_key and sort_dir vars
+* @change 3.1.9-RC1 Added start var
 */
 $vars = array(
 	'forum_data',
@@ -411,6 +413,7 @@
 	'sql_array',
 	'forum_id',
 	'topics_count',
+	'start',
 	'sort_days',
 	'sort_key',
 	'sort_dir',
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1745 раз

Re: Расширения 3.1.x на конкретных примерах

Сообщение rxu »

Пока не смотрел код, но разве start нельзя взять из массива GET или вычислить прямо в слушателе? Или его значение надо изменять в данном месте?
Изображение

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