Уважаемые пользователи!
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] Нумерация гостей

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).

Внимание! Не устанавливайте бета-версии расширений на работающие форумы!
Аватара пользователя
Джим
phpBB 2.0.0
Сообщения: 203
Стаж: 14 лет 6 месяцев
Благодарил (а): 137 раз
Поблагодарили: 62 раза

[3.2][3.3] Нумерация гостей

Сообщение Джим »

Всем привет! Тоже решил попробовать сделать расширение. Не судите строго, первый опыт. :dontknow
Если на форуме открыта возможность создавать сообщения без регистрации, то зачастую возникает ситуация, когда "гость" общается с "гостем" (гостевые никнеймы не все указывают).
В таких диалогах читателю сложно понять кто с кем беседует и что говорит.
Я решил добавлять к "гостю" некий трёхзначный номер. Он у меня берется из IP-адреса - со второй по четвёртую цифру. Ведь начало IP-адреса у одного провайдера меняется редко, а значит гостям надолго привяжутся их номера.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: [3.2][3.3] Нумерация гостей

Сообщение Sheer »

Зачем

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

		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 г.
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5280
Стаж: 19 лет 3 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 791 раз

Re: [3.2][3.3] Нумерация гостей

Сообщение Siava »

Джим, а если IP автора начинается не на цифру? Например на 2a05:3580?
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16359
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1742 раза

Re: [3.2][3.3] Нумерация гостей

Сообщение rxu »

А также вместо $this->user->lang['GUEST'] лучше использовать объект language и функцию lang(), т.е.

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

$this->language->lang('GUEST')
Изображение
Аватара пользователя
Джим
phpBB 2.0.0
Сообщения: 203
Стаж: 14 лет 6 месяцев
Благодарил (а): 137 раз
Поблагодарили: 62 раза

Re: [3.2][3.3] Нумерация гостей

Сообщение Джим »

Siava писал(а): 26.07.2020 3:18 Например на 2a05:3580?
Тогда будет "Гость_a05" :-)

Большое спасибо за замечания! :hat Вроде как всё учёл. К сожалению, первый пост уже недоступен для редактирования, поэтому прикреплю к этому посту версию 0.0.2
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Джим
phpBB 2.0.0
Сообщения: 203
Стаж: 14 лет 6 месяцев
Благодарил (а): 137 раз
Поблагодарили: 62 раза

Re: [3.2][3.3] Нумерация гостей

Сообщение Джим »

Сделал версию 0.0.3, когда не цифры прибавляются, а берётся слово из словаря (файл guests.txt в папке с расширением, его можно свой сделать, главное про кодировку UTF не забывать).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ciiz1
phpBB 2.0.4
Сообщения: 440
Стаж: 6 лет 8 месяцев
Благодарил (а): 100 раз
Поблагодарили: 30 раз

Re: [3.2][3.3] Нумерация гостей

Сообщение ciiz1 »

Ещё один идентификатор гостей. .".".substr($this->user->session_id,0,2). Спасибо за расширение, мне оба ваших понравилось.
А не подскажите в какой переменной браузер пользователя?
Аватара пользователя
Джим
phpBB 2.0.0
Сообщения: 203
Стаж: 14 лет 6 месяцев
Благодарил (а): 137 раз
Поблагодарили: 62 раза

Re: [3.2][3.3] Нумерация гостей

Сообщение Джим »

ciiz1 писал(а): 07.08.2022 17:20 подскажите в какой переменной браузер пользователя?
Мне кажется, так и будет $this->user->browser

Вернуться в «Бета-версии расширений для phpBB»