Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[FINAL] In-post hidden messages BBcode Mod

Здесь авторы постили бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Jumangee
phpBB 1.4.0
Сообщения: 39
Стаж: 18 лет

[FINAL] In-post hidden messages BBcode Mod

Сообщение Jumangee »

Название мода: In-post hidden messages BBcode Mod
Автор: Jumangee
Описание мода: Добавляет тэг, который позволяет "скрывать" часть текста, и показывать его только определенным участникам форума. Формат тэга: "[priv=name1, name2, name3]текст сообщения[/priv]". В данном случае текст сообщения увидят только пользователи name1, name2, name3 и автор сообщения, модератор форума и админ.

Версия мода: 1.1 final
Совместимая версия phpBB: проверно только на 2.0.22
Cложность установки: Легко
Время, необходимое для установки: ~ 1-3 минуты

Страничка мода: http://bbs.jumangee.net/project/phpbb2_inpost_mod
Скачать: http://bbs.jumangee.net/files/inpost_ms ... tall_0.rar
Размер файла: 1 kb

Огромное спасибо за помощь: Midi, PhoeNiXX, Valiks и другим
Последний раз редактировалось Jumangee 23.12.2007 16:04, всего редактировалось 2 раза.
Аватара пользователя
V.I.P.o2
phpBB 1.2.1
Сообщения: 25
Стаж: 17 лет 3 месяца
Откуда: Москва

Сообщение V.I.P.o2 »

А может перетащить всё в bbcode.php?
Да и маленькое слово для в языковую переменную закотать бы... так, на всякий случай...
Всё вроде как хорошо... или будет...
Jumangee
phpBB 1.4.0
Сообщения: 39
Стаж: 18 лет

Сообщение Jumangee »

А может перетащить всё в bbcode.php?
Я сначала там и сделал, но потом мне показалось что там этому не место. Я не прав? Просто хотелось бы услышать почему лучше по-вашему?
Да и маленькое слово для в языковую переменную закотать бы... так, на всякий случай...
Да, Вы правы, подправлю

Добавлено спустя 9 минут 3 секунды:

Подправил, добавил переменную для "для". Неукого спросить, можно ли мод считать законченным, или надо как-то по-особенному тестировать?
Аватара пользователя
PhoeNiXX
phpBB 1.4.0
Сообщения: 31
Стаж: 16 лет 4 месяца
Откуда: Питер

Сообщение PhoeNiXX »

Мод супер! Как раз такое искал, надеюсь работает) Спасибо!
Предложения по усовершенствованию:
1. Сделать кнопку для обрамления текста тэгом, видимую только модератором или админом.
2. Сделать кнопку (просто слово с линком)(наподобии цитирования в ExtQuickReply Form) под ником пользователя, видимую только админу и модеру, при нажатии на которую ник прописывался бы в открывающий тег в форму быстрого ответа (Extended Quick Reply Form v.3)

Добавлено спустя 42 минуты 39 секунд:

мда, в общем-то, не особо он заработал:

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

Parse error: parse error, unexpected T_VARIABLE in z:\home\xxxxxx.ru\forum\viewtopic.php on line 1313
а вот и сама 1313 строка(собственно, кусок мода):

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

$message = preg_replace($priv_ptrn, "<i>"$lang['priv_msg_txt'].$add_text.":<br>\\2</i>", $message, 1);
Jumangee
phpBB 1.4.0
Сообщения: 39
Стаж: 18 лет

Сообщение Jumangee »

$message = preg_replace($priv_ptrn, "<i>"$lang['priv_msg_txt'].$add_text.":<br>\\2</i>", $message, 1);
Пропущена точка перед $lang['priv_msg_txt'], надо:

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

$message = preg_replace($priv_ptrn, "<i>".$lang['priv_msg_txt'].$add_text.":<br>\\2</i>", $message, 1);
Возможно кнопка будет, но пока ещё сам мод тестируется, у меня на форуме вчера при просмотре страницы со скрытым текстом стало вылетать в ошибку 500, чего до этого небыло :( Разбираюсь в чем проблема...
Аватара пользователя
PhoeNiXX
phpBB 1.4.0
Сообщения: 31
Стаж: 16 лет 4 месяца
Откуда: Питер

Сообщение PhoeNiXX »

Jumangee писал(а):Разбираюсь в чем проблема...
Надеюсь, разберетесь. Мод очень полезный ИМХО
Будем ждать стабильного релиза :)
Аватара пользователя
-=XaKeP=-
Former team member
Сообщения: 291
Стаж: 17 лет 4 месяца
Откуда: Донецк

Сообщение -=XaKeP=- »

У меня после установки не открывается вьютопик, грузится просто белая страница
Лучше синица в руках, чем утка под кроватью ©
Jumangee
phpBB 1.4.0
Сообщения: 39
Стаж: 18 лет

Сообщение Jumangee »

Она самая, ошибка 500, не могу понять из-за чего возникает, вроде бы как в строке:

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

$message = preg_replace($priv_ptrn, "", $message, 1);
Jumangee
phpBB 1.4.0
Сообщения: 39
Стаж: 18 лет

Сообщение Jumangee »

Не понимаю в чём проблема! Всё вроде бы правильно, а в логах ругаеццо на тайм-аут выполнения (у меня 30 сек) или не ругается совсем. Пробовал делать проверки на анонимов и обрабатывать их "быстрее", но результатов не дало. Проблема ещё и в том, что хостинг (платная агава) похоже подглючивает в последнее время и часто не понятно - глючит скрипт, или он нормальный а глюки - агавовские. Может быть, кто-то из знатоков поможет - в чем может быть проблема?
Valiks
phpBB 1.4.1
Сообщения: 46
Стаж: 17 лет 9 месяцев

Выдает сообщение 404 - страницы не существует

Сообщение Valiks »

Установил мод.
При входе как админ все видно ОК
А вот при попытке войти как гость, не открывается даже страница, на которой был использован этот мод.
Выдает сообщение 404 - страницы не существует
Алмин входит без проблем

Ставил мод из архива, с изменениями, указанными чуть выще
http://www.phpbbguru.net/community/view ... 867#171867
Jumangee писал(а):Пропущена точка перед $lang['priv_msg_txt'], надо:

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

$message = preg_replace($priv_ptrn, "<i>".$lang['priv_msg_txt'].$add_text.":<br>\\2</i>", $message, 1);
В чем может быть ошибка? Устанавливал все правильно
Может быть конфликтует с кем-то?

Предложение - добавить возможность видеть

- зарегистрированным
- определенным группам
Val
Midi
phpBB 1.0.0
Сообщения: 4
Стаж: 16 лет 10 месяцев

Сообщение Midi »

Jumangee писал(а):Не понимаю в чём проблема! Всё вроде бы правильно, а в логах ругаеццо на тайм-аут выполнения (у меня 30 сек) или не ругается совсем. Пробовал делать проверки на анонимов и обрабатывать их "быстрее", но результатов не дало. Проблема ещё и в том, что хостинг (платная агава) похоже подглючивает в последнее время и часто не понятно - глючит скрипт, или он нормальный а глюки - агавовские. Может быть, кто-то из знатоков поможет - в чем может быть проблема?
в коде есть один недочет:

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

			for ($i = 0; $i < count($userlist); $i++)
			{			
				$userlist[$i] = trim($userlist[$i]);			
				if (strcasecmp($userlist[$i], $userdata['username'])==0)
				{
					$found = true;
					break;
				}
			}
не должна участвовать переменная $i, тк она используется в цикле выше. попробуй поменять ее на $t например - должно помочь

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

			for ($t = 0; $t < count($userlist); $t++)
			{			
				$userlist[$t] = trim($userlist[$t]);			
				if (strcasecmp($userlist[$t], $userdata['username'])==0)
				{
					$found = true;
					break;
				}
			}
Добавлено спустя 2 минуты 45 секунд:

Valiks

мой пост выше для Вас тоже подойдет - админы видят все скрытые сообщения, поэтому выделенный в предыдущем моем посте кусок не отрабатывает. а вот для того, кто сообщение видеть не должен - он как раз и срабатывает, вгоняя viewtopic в ступор

Добавлено спустя 5 минут 45 секунд:

и еще - у мода есть 2 очень больших недостатка.

1) например админ оставил скрытое сообщение для пользователя 2 в сообщении пользователя 1. пользователь 1 увидит это сообщение и сможет его редактировать
2) после нажатия кнопки "цитировать" - тег priv также цитируется вместе с остальным сообщением. правится это легко: в posting.php после

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

                        if ( !empty($orig_word) )
                        {
                                $subject = ( !empty($subject) ) ? preg_replace($orig_word, $replace_word, $subject) : '';
                                $message = ( !empty($message) ) ? preg_replace($orig_word, $replace_word, $message) : '';
                        }
добавить

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

if ( !empty($message) )
                       {
$message = preg_replace("#\[priv=([А-Яа-яa-z, ]+)\](.*?)\[/priv\]#is", '', $message);
}
Valiks
phpBB 1.4.1
Сообщения: 46
Стаж: 17 лет 9 месяцев

Сообщение Valiks »

Поменял код, как было сказано Midi.
Все заработало, теперь "ошибка 404" не выскакивает,
но есть сомнение в правильности работы кода,
думаю, все же мод работает неправильно.

Если процитировать сообщение со скрытым текстом,
то скрытое становится видимым, причем вместе с тэгами.
Если опубликовать новое сообщение с этой цитатой,
то скрытый текста опять невидим.

Как он работает у других?
Вообще неясно, что должно быть в результате применения кода - должно быть какое-то сообщение где-то, наверное, вот это "Скрытое сообщение" и "Для" из языкового файла? У меня оно не появляется,- стоит просто чистое поле. А вот раньше было

Пока писал появился ответ, но
вставил

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

if ( !empty($message) ) 
                       { 
$message = preg_replace("#\[priv=([А-Яа-яa-z, ]+)\](.*?)\[/priv\]#is", '', $message); 
}
в posting.php,
и перестало цитироваться скрытое
но не выводится - "Скрытое сообщение" и "Для"
Последний раз редактировалось Valiks 22.12.2007 17:36, всего редактировалось 1 раз.
Val
Аватара пользователя
PhoeNiXX
phpBB 1.4.0
Сообщения: 31
Стаж: 16 лет 4 месяца
Откуда: Питер

Сообщение PhoeNiXX »

Вроде все ок заработало, только обнаружил один нехороший баг - если оставлять скрытое сообщение для пользователя у которого ник состоит только из одних цифр - фича не работает - просто постится сообщение с тегами, видными всем

Добавлено спустя 10 минут 29 секунд:

еще неплохо бы сделать, чтобы данную функцию могли пользовать только админы и модеры, а для обычных пользователей, при попытке вставить этот тег - он бы удалялся из сообщения (после того, как оно будет отправлено).
Да и еще слова "скрытое сообщение для /ник/:" - видны только админу, а пользователь, для которого оно было предназначено, видит только - "скрытое сообщение:" - неплохо бы сделать, чтобы и пользователь видел слова "для /ник/"
Valiks
phpBB 1.4.1
Сообщения: 46
Стаж: 17 лет 9 месяцев

Цитирование

Сообщение Valiks »

У меня заработало все. Действительно вставлять надо было в posting.php.
Вначале, сбило с толку одинаковость кода

Это
PhoeNiXX писал(а):Да и еще слова "скрытое сообщение для /ник/:" - видны только админу, а пользователь, для которого оно было предназначено, видит только - "скрытое сообщение:"
я тоже заметил и тоже присединяюсь к мнению -
неплохо бы сделать, чтобы и пользователь видел слова "для /ник/"
и
еще неплохо бы сделать, чтобы данную функцию могли пользовать только админы и модеры, а для обычных пользователей, при попытке вставить этот тег - он бы удалялся из сообщения (после того, как оно будет отправлено).
Val
Аватара пользователя
PhoeNiXX
phpBB 1.4.0
Сообщения: 31
Стаж: 16 лет 4 месяца
Откуда: Питер

Сообщение PhoeNiXX »

И еще как вариант, по желанию, что нужно изменить в коде, чтобы для всех, кому это сообщение должно быть скрыто, отображалось следущее: "cкрытое сообщение для /ник/:" далее под ней белое поле, типа как при цитировании, с надписью: "у вас нет прав для просмотра этого текста" ?

Добавлено спустя 44 минуты 2 секунды:

Проблему с никами из одних цифр решил так:

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

$priv_ptrn = "#\[priv=([А-Яа-яa-z, ]+)\](.*?)\[/priv\]#is";
исправил на:

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

$priv_ptrn = "#\[priv=([А-Яа-яa-z,0-9 ]+)\](.*?)\[/priv\]#is";
Правильно я сделал?
Вроде стало работать.

Добавлено спустя 4 минуты 46 секунд:

Мда, получается, что это действует только на ники, состоящие из букв и цифр, а если в нике присутствуют символы типа @ & $ и т.п. - фича не работает - надо и эти символы туда добавить, правильно я понимаю?

Вернуться в «Бета-версии модов для phpBB 2.0.x»