Уважаемые пользователи!
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. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1744 раза

Re: Расширения - это просто!

Сообщение rxu »

Shredder писал(а):проверить данные пользователя только в момент его входа на форум и в администраторский раздел? Есть для этого в движке готовые события?
Какие конкретно данные необходимо проверить?
Изображение
Shredder
Former team member
Сообщения: 2224
Стаж: 15 лет 4 месяца
Благодарил (а): 124 раза
Поблагодарили: 138 раз

Re: Расширения - это просто!

Сообщение Shredder »

rxu
$user->data
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: Расширения - это просто!

Сообщение Sheer »

Shredder
По-моему везде $this->user->data
ну и в если в конструкторе присутствует \phpbb\user $user
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1744 раза

Re: Расширения - это просто!

Сообщение rxu »

Shredder
В событиии core.user_setup это user_data.
Изображение
Anvar
Former team member
Сообщения: 1965
Стаж: 14 лет 1 месяц
Благодарил (а): 57 раз
Поблагодарили: 625 раз

Re: Расширения - это просто!

Сообщение Anvar »

Обнаружил интересное явление в версии 3.1.2 и работы с migrations.

Функция: public function update_data() с массивами config.add сработает в обратном порядке при удалении расширения.

Таким образом в функции revert_data() необходимость выполнять config.remove отпадает.

Ранее закомментированные config.remove не повлияли на удаление данных, все настройки были утеряны. В ранних версиях phpBB3.1 такого не наблюдал.

update_schema() - данные оставляет на месте, если не использовать revert_schema() для данных таблиц.

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

Re: Расширения - это просто!

Сообщение rxu »

Anvar
С конфигом сразу так работало...
Изображение
Anvar
Former team member
Сообщения: 1965
Стаж: 14 лет 1 месяц
Благодарил (а): 57 раз
Поблагодарили: 625 раз

Re: Расширения - это просто!

Сообщение Anvar »

rxu, Значит заметил поздно или даже вовремя. Хорошо, меньше нужно будет городить.
Shredder
Former team member
Сообщения: 2224
Стаж: 15 лет 4 месяца
Благодарил (а): 124 раза
Поблагодарили: 138 раз

Re: Расширения - это просто!

Сообщение Shredder »

Sheer писал(а):Shredder
По-моему везде $this->user->data
ну и в если в конструкторе присутствует \phpbb\user $user
rxu писал(а):В событиии core.user_setup это user_data.
В core.user_setup вставлять пробовал - начинается бесконтрольное внесение в лог при любом клике на страницах форума. Потому и написал:
Shredder писал(а):проверить данные пользователя только в момент его входа на форум и в администраторский раздел
Мне нужно занести данные пользователя в лог в момент входа на форум или в администраторский раздел.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1744 раза

Re: Расширения - это просто!

Сообщение rxu »

Shredder писал(а):Мне нужно занести данные пользователя в лог в момент входа на форум или в администраторский раздел.
includes/functions.php function login_box()
Можно попробовать использовать @event core.login_box_redirect, всё нужное там есть. Единственный момент - работает при удачном входе.
Изображение
Shredder
Former team member
Сообщения: 2224
Стаж: 15 лет 4 месяца
Благодарил (а): 124 раза
Поблагодарили: 138 раз

Re: Расширения - это просто!

Сообщение Shredder »

rxu
То, что нужно, спасибо.
rxu писал(а):Единственный момент - работает при удачном входе.
То есть, если пользователь забанен и отклонён системой бана, то не сработает? Верно я понял? Но мне это как раз и не нужно, т.к. нужно было проверять основателей, которые кодом ядра исключаются из стандартной проверки на бан:

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

		// Is user banned? Are they excluded? Won't return on ban, exists within method
		if ($this->data['user_type'] != USER_FOUNDER)
		{
			if (!$config['forwarded_for_check'])
			{
				$this->check_ban($this->data['user_id'], $this->ip);
			}
			else
			{
				$ips = explode(' ', $this->forwarded_for);
				$ips[] = $this->ip;
				$this->check_ban($this->data['user_id'], $ips);
			}
		}
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 16 лет 3 месяца
Откуда: Израиль, Беэр-Шева
Благодарил (а): 33 раза
Поблагодарили: 61 раз

Re: Расширения - это просто!

Сообщение Борис Бердичевский »

Ну, наконец-то разобрался, как это должно работать.
В функции revert_data() вместо 'module.add' нужно вписать 'module.remove'
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1744 раза

Re: Расширения - это просто!

Сообщение rxu »

Борис Бердичевский
wiki.phpbb.com помогает.
Изображение
Аватара пользователя
Алг
Former team member
Сообщения: 933
Стаж: 11 лет 8 месяцев
Откуда: Израиль
Благодарил (а): 73 раза
Поблагодарили: 248 раз

Re: Расширения - это просто!

Сообщение Алг »

вопрос: могу ли я в своё расширение вставить событие и назвать его точно так же, как и существующее событие ядра? Например

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

@event core.viewtopic_assign_template_vars_before
, такое событие существует во viewtopic.php
Там упёртость и инертность, могут, кстати, в морду дать.
А ты проявляй интеллигентность, постарайся убеждать...

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

Re: Расширения - это просто!

Сообщение rxu »

Нет. Дублировать события ядра в экстах нельзя. Только добавлять свои.
Изображение
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 11 лет 11 месяцев
Благодарил (а): 101 раз
Поблагодарили: 91 раз
Забанен: Бессрочно

Re: Расширения - это просто!

Сообщение xisp »

rxu писал(а):Только добавлять свои.
А зачем они там? Их кто- то будет использовать?
phpBBex

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