Условие для различения личных сообщений и обычных

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Условие для различения личных сообщений и обычных

Сообщение Shredder »

Понадобилось добавить ещё одну проверку в message_parser.php, чтобы она работала по тому же принципу, как и проверка на минимально допустимое количество знаков в сообщении. Для примера - вот она:

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

		// Minimum message length check for post only
		if ($mode === 'post')
		{
			if (!$message_length || $message_length < (int) $config['min_post_chars'])
			{
				$this->warn_msg[] = (!$message_length) ? $user->lang['TOO_FEW_CHARS'] : sprintf($user->lang['TOO_FEW_CHARS_LIMIT'], $message_length, (int) $config['min_post_chars']);
				return (!$update_this_message) ? $return_message : $this->warn_msg;
			}
		}
То есть, текст проверяется на соответствие некоему условию, и если результат отрицательный, то происходит размещение сообщения, а если положительный - вверху сообщения, с сохранением всего написанного, выводится сообщение об ошибке. Всё получается, но действует сразу для всех сообщений: как для обычных, так и для личных. А мне надо, чтобы действовало только в обычных. Как указать между ними различие? Может быть, уже есть какая-то переменная для этого? Так и не нашёл в движке ничего похожего.
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 21 год 4 месяца
Откуда: Оренбург (Южный Урал)
Благодарил (а): 24 раза
Поблагодарили: 54 раза

Re: Условие для различения личных сообщений и обычных

Сообщение Поручик »

Как-то так.
Ненадёжно.

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

global $post_id;

if (!isset($post_id)) 
{
	// private message
}
else
{
}

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

if (strpos(__FILE__, 'ucp.php') !== false)
{
	// private message
}
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Условие для различения личных сообщений и обычных

Сообщение Shredder »

Поручик
Первый код работает. Спасибо!

Вернуться в «Для авторов (phpBB 3.0.x)»