[FINAL] In-post hidden messages BBcode Mod

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

[FINAL] In-post hidden messages BBcode Mod

Сообщение Jumangee » 01.12.2007 15:30

Название мода: 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 раз(а).
Jumangee
phpBB 1.4.0
 
Сообщения: 33
Зарегистрирован: 28.04.2006 10:46
CPCH

Сообщение V.I.P.o2 » 09.12.2007 3:41

А может перетащить всё в bbcode.php?
Да и маленькое слово для в языковую переменную закотать бы... так, на всякий случай...
Всё вроде как хорошо... или будет...
Аватара пользователя
V.I.P.o2
phpBB 1.2.1
 
Сообщения: 26
Зарегистрирован: 22.01.2007 11:10
Откуда: Москва

Сообщение Jumangee » 09.12.2007 21:57

А может перетащить всё в bbcode.php?

Я сначала там и сделал, но потом мне показалось что там этому не место. Я не прав? Просто хотелось бы услышать почему лучше по-вашему?

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

Да, Вы правы, подправлю

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

Подправил, добавил переменную для "для". Неукого спросить, можно ли мод считать законченным, или надо как-то по-особенному тестировать?
Jumangee
phpBB 1.4.0
 
Сообщения: 33
Зарегистрирован: 28.04.2006 10:46

Сообщение PhoeNiXX » 18.12.2007 1:08

Мод супер! Как раз такое искал, надеюсь работает) Спасибо!
Предложения по усовершенствованию:
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);
Аватара пользователя
PhoeNiXX
phpBB 1.4.0
 
Сообщения: 32
Зарегистрирован: 07.12.2007 2:20
Откуда: Питер

Сообщение Jumangee » 18.12.2007 9:15

$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, чего до этого небыло :( Разбираюсь в чем проблема...
Jumangee
phpBB 1.4.0
 
Сообщения: 33
Зарегистрирован: 28.04.2006 10:46

Сообщение PhoeNiXX » 18.12.2007 11:25

Jumangee писал(а):Разбираюсь в чем проблема...

Надеюсь, разберетесь. Мод очень полезный ИМХО
Будем ждать стабильного релиза :)
Аватара пользователя
PhoeNiXX
phpBB 1.4.0
 
Сообщения: 32
Зарегистрирован: 07.12.2007 2:20
Откуда: Питер

Сообщение -=XaKeP=- » 18.12.2007 13:22

У меня после установки не открывается вьютопик, грузится просто белая страница
Аватара пользователя
-=XaKeP=-
phpBB 2.0.7
 
Сообщения: 281
Зарегистрирован: 15.12.2006 12:02

Сообщение Jumangee » 18.12.2007 15:36

Она самая, ошибка 500, не могу понять из-за чего возникает, вроде бы как в строке:
Код: Выделить всё
$message = preg_replace($priv_ptrn, "", $message, 1);
Jumangee
phpBB 1.4.0
 
Сообщения: 33
Зарегистрирован: 28.04.2006 10:46

Сообщение Jumangee » 20.12.2007 22:57

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

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

Сообщение Valiks » 22.12.2007 13:47

Установил мод.
При входе как админ все видно ОК
А вот при попытке войти как гость, не открывается даже страница, на которой был использован этот мод.
Выдает сообщение 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
Valiks
phpBB 1.4.1
 
Сообщения: 47
Зарегистрирован: 10.07.2006 19:07

Сообщение Midi » 22.12.2007 17:03

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);
}
Midi
phpBB 1.0.0
 
Сообщения: 4
Зарегистрирован: 13.06.2007 12:05

Сообщение Valiks » 22.12.2007 17:15

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

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

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

Пока писал появился ответ, но
вставил
Код: Выделить всё
if ( !empty($message) )
                       {
$message = preg_replace("#\[priv=([А-Яа-яa-z, ]+)\](.*?)\[/priv\]#is", '', $message);
}

в posting.php,
и перестало цитироваться скрытое
но не выводится - "Скрытое сообщение" и "Для"
Последний раз редактировалось Valiks 22.12.2007 17:36, всего редактировалось 1 раз.
Val
Valiks
phpBB 1.4.1
 
Сообщения: 47
Зарегистрирован: 10.07.2006 19:07

Сообщение PhoeNiXX » 22.12.2007 17:46

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

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

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

Цитирование

Сообщение Valiks » 22.12.2007 17:52

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

Это
PhoeNiXX писал(а):Да и еще слова "скрытое сообщение для /ник/:" - видны только админу, а пользователь, для которого оно было предназначено, видит только - "скрытое сообщение:"


я тоже заметил и тоже присединяюсь к мнению -
неплохо бы сделать, чтобы и пользователь видел слова "для /ник/"


и

еще неплохо бы сделать, чтобы данную функцию могли пользовать только админы и модеры, а для обычных пользователей, при попытке вставить этот тег - он бы удалялся из сообщения (после того, как оно будет отправлено).
Val
Valiks
phpBB 1.4.1
 
Сообщения: 47
Зарегистрирован: 10.07.2006 19:07

Сообщение PhoeNiXX » 22.12.2007 19:09

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

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

Проблему с никами из одних цифр решил так:
Код: Выделить всё
$priv_ptrn = "#\[priv=([А-Яа-яa-z, ]+)\](.*?)\[/priv\]#is";

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

Правильно я сделал?
Вроде стало работать.

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

Мда, получается, что это действует только на ники, состоящие из букв и цифр, а если в нике присутствуют символы типа @ & $ и т.п. - фича не работает - надо и эти символы туда добавить, правильно я понимаю?
Аватара пользователя
PhoeNiXX
phpBB 1.4.0
 
Сообщения: 32
Зарегистрирован: 07.12.2007 2:20
Откуда: Питер

След.

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

 


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0