Всем привет! Тоже решил попробовать сделать расширение. Не судите строго, первый опыт.
Если на форуме открыта возможность создавать сообщения без регистрации, то зачастую возникает ситуация, когда "гость" общается с "гостем" (гостевые никнеймы не все указывают).
В таких диалогах читателю сложно понять кто с кем беседует и что говорит.
Я решил добавлять к "гостю" некий трёхзначный номер. Он у меня берется из IP-адреса - со второй по четвёртую цифру. Ведь начало IP-адреса у одного провайдера меняется редко, а значит гостям надолго привяжутся их номера.
Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
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.2][3.3] Нумерация гостей
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.2.x | FAQ | Внимание! Прежде чем создать тему - прочти! | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
Внимание! Не устанавливайте бета-версии расширений на работающие форумы!
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.2.x | FAQ | Внимание! Прежде чем создать тему - прочти! | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
Внимание! Не устанавливайте бета-версии расширений на работающие форумы!
-
- Former team member
- Сообщения: 12113
- Стаж: 17 лет 10 месяцев
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 41 раз
- Поблагодарили: 1717 раз
Re: [3.2][3.3] Нумерация гостей
Зачем
?
Зачем
Зачем
Массив
В общем по идее так:
Код: Выделить всё
global $phpbb_container;
$phpbb_container
нигде в коде не используется.Зачем
Код: Выделить всё
$this->ext_root_path = 'ext/afrorus/guestnumbers';
$this->ext_root_path
нигде в коде не используется.Зачем
Код: Выделить всё
$data = $event['data'];
$data
нигде в коде не используется.В общем по идее так:
Код: Выделить всё
<?php
/**
*
* Guest numbers
*
* @copyright (c) 2020 Jim ( 3admina.ru )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @author Jim (3admina)
*/
namespace afrorus\guestnumbers\event;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
/**
* Event listener
*/
class listener implements EventSubscriberInterface
{
/** @var \phpbb\user */
protected $user;
/**
* Constructor of event listener
*
* @param \phpbb\user $user User object
*/
public function __construct(\phpbb\user $user)
{
$this->user = $user;
}
/**
* Assign functions defined in this class to event listeners in the core
*/
static public function getSubscribedEvents()
{
return array(
'core.modify_submit_post_data' => 'change_username_when_sending',
);
}
public function change_username_when_sending($event)
{
if (!$event['username'])
{
$event['username'] = $this->user->lang['GUEST'] . '_' . substr(str_replace('.', '', $this->user->ip), 1, 3);
}
}
}
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
- Поддержка
- Сообщения: 5367
- Стаж: 19 лет 11 месяцев
- Откуда: Питер
- Благодарил (а): 194 раза
- Поблагодарили: 831 раз
Re: [3.2][3.3] Нумерация гостей
Джим, а если IP автора начинается не на цифру? Например на 2a05:3580?
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb2.0.x 3.5.x)
Ты очистил кеш? © Sheer
https://siava.ru (phpbb
-
- phpBB Guru
- Сообщения: 16748
- Стаж: 18 лет 7 месяцев
- Откуда: Красноярск
- Благодарил (а): 562 раза
- Поблагодарили: 1858 раз
Re: [3.2][3.3] Нумерация гостей
А также вместо
$this->user->lang['GUEST']
лучше использовать объект language
и функцию lang()
, т.е.
Код: Выделить всё
$this->language->lang('GUEST')
-
- phpBB 2.0.0
- Сообщения: 206
- Стаж: 15 лет 2 месяца
- Благодарил (а): 137 раз
- Поблагодарили: 63 раза
Re: [3.2][3.3] Нумерация гостей
Тогда будет "Гость_a05" :-)
Большое спасибо за замечания! Вроде как всё учёл. К сожалению, первый пост уже недоступен для редактирования, поэтому прикреплю к этому посту версию 0.0.2
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- phpBB 2.0.0
- Сообщения: 206
- Стаж: 15 лет 2 месяца
- Благодарил (а): 137 раз
- Поблагодарили: 63 раза
Re: [3.2][3.3] Нумерация гостей
Сделал версию 0.0.3, когда не цифры прибавляются, а берётся слово из словаря (файл guests.txt в папке с расширением, его можно свой сделать, главное про кодировку UTF не забывать).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: [3.2][3.3] Нумерация гостей
Ещё один идентификатор гостей. .".".substr($this->user->session_id,0,2). Спасибо за расширение, мне оба ваших понравилось.
А не подскажите в какой переменной браузер пользователя?
А не подскажите в какой переменной браузер пользователя?
-
- phpBB 2.0.0
- Сообщения: 206
- Стаж: 15 лет 2 месяца
- Благодарил (а): 137 раз
- Поблагодарили: 63 раза