Быстрый лёгкий надёжный форумный движок
Вы не вошли.
проба пера, грубый набросок
файл include\parser.php
перед
$pattern = array('#\[b\](.*?)\[/b\]#s',
добавляем первый код из второго поста
з.ы. эмм... а как бы еще параметр передавать? т.е. если
[hide=10]sample text[/hide]
то текст высвечивается только при наличии у юзера более 10 постов.
Редактировался vvik (2006-04-10 16:57:52)
в общем на последнее (с ограничением на количество постов)
пришлось двумя if'ами как все в одно совместить - не в курсах, а мож оно так и лучше...
правда в конце концов надо будет еще post.php корректировать, чтобы при цитировании хайд оставался хайдом, если оно для текущего юзера запрещено. (проще и имхо актуальнее вообще не показывать скрытый текст в цитате - код ниже).
гляньте плз, если ошибки где в коде.
// begin test "hide" with "="
// если указано число ограничение постов [hide=число_ограничения_постов]
if (strpos($text, 'hide=') !== false)
{
if ($pun_user['is_guest'])
{
$text = preg_replace("#\[hide=([0-9]*)](.+?)\[/hide\]#is", '<b>[hided text]</b>', $text);
}
else
{
// выбираем число для ограничения из [hide=число_ограничения_постов] - по идее должно оказаться в $hide_count[1] =)
preg_match('#\[hide=([0-9]*)]#s',$text,$hide_count);
// админы, модеры и те, у кого количество постов больше, чем указано в ограничении - входят в if
if(($pun_user['g_id'] == PUN_MOD) || ($pun_user['g_id'] == PUN_ADMIN) || (($pun_user['num_posts']) >= ($hide_count[1])))
{
$text = preg_replace('#\[hide=([0-9]*)](.*?)\[/hide\]#s', '<blockquote>hided=$1:<br><i>$2</i></blockquote>', $text);
}
else
{
// иначе обламываем и говорим, сколько постов необходимо набрать, чтобы увидеть скрытый
$text = preg_replace("#\[hide=([0-9]*)](.+?)\[/hide\]#is", '<b>[hided text. u need '.$hide_count[1].' messages or more.]</b>', $text);
}
}
}
// another "hide"
// ну, тут все без изменений
if (strpos($text, 'hide') !== false)
{
if ($pun_user['is_guest'])
{
$text = preg_replace("#\[hide\](.+?)\[/hide\]#is", '<b>[hided text]</b>', $text);
}
else
{
$text = str_replace('[hide]', '<blockquote>hided:<br><i>', $text);
$text = preg_replace('#\[\/hide\]\s*#', '</i></blockquote>', $text);
}
}
// end test "hide"
чтобы скрытый текст нельзя было процитировать в ответе, в post.php
перед этой строкой
$q_message = pun_htmlspecialchars($q_message);
надо добавить вот эти две строчки
$q_message = preg_replace("#\[hide=([0-9]*)](.+?)\[/hide\]#is", '[b][hided text][/b]', $q_message);
$q_message = preg_replace("#\[hide](.+?)\[/hide\]#is", '[b][hided text][/b]', $q_message);
Редактировался vvik (2006-04-10 16:55:43)
кому нить вообще эт надо?
ДА, я уже поставил. удобно скрываться от поисковиков и гостей.
зарелизил
http://www.punres.org/viewtopic.php?id=1322
русский язык для него:
// MOD HIDE TAG begin
'Hidden text guest' => 'Вы должны зайти под своим именем, чтобы увидеть скрытый текст.',
'Hidden text' => 'Скрытый текст',
'Hidden count begin' => 'Количество Ваших сообщений должно быть равным',
'Hidden count end' => 'или более, чтобы увидеть скрытый текст.',
// MOD HIDE TAG end
мож кому пригодится. если есть идеи как и что улучшить в самом коде - буду благодарен и, конечно же, впишу имя в заголовок
vvik
Работает.
Прикольный модик. Мне понравился.
Не понял как задавать значение на зависимость возможности просмотра скрытого текста от постов?
просто писать не [hide][/hide], а [hide=33][/hide]
там считается как два разных тэга со знаком "=" и без него
Блин классно! Сами юзеры могут устанавливать
ну да, даже гости - только потом сами обломаются смотреть свой же скрытый текст
С гостями не тестил - у меня строгая регистрация.
Идейка такая есть:
Чтобы как-то показывалось для тех, кто видит текст - каким образом он скрыт.
Например так:
Этот текст скрыт только от незарегистрированных юзеров.
Этот текст скрыт от юзеров ещё не имеющих 10 постов.
Этот текст скрыт от юзеров ещё не имеющих 50 постов.
И т.д.
А то он скрыт, а не понятно от кого.
как так непонятно? если чел зарегистрировался, то ему показывается, сколько постов ему надо набрать, чтобы увидеть скрытый текст
а для гостей - все едино, они все равно не могут посты набирать (они же гости)
Я говорю только про тех кто видит (разрешено).
Т.е. понятно что тот, кому запрещено - он видит почему он не видит, а также об этом знает тот кто постил (потому что он сам выбрал число).
Но те кто видят не знают от кого текст скрыт они видят надпись "Скрытый текст:" и всё.
А например лучше было бы если бы они видели соответственно надписи:
Этот текст скрыт только от незарегистрированных юзеров.
Этот текст скрыт от юзеров ещё не имеющих 10 постов.
Этот текст скрыт от юзеров ещё не имеющих 50 постов.
Этот текст скрыт от юзеров ещё не имеющих 150 постов.
Этот текст скрыт от юзеров ещё не имеющих 390 постов.
И т.д.
а, понял
панрес что-то не открывается, но вот апдейт
##
##
## Mod title: tag [hide]
##
## Mod version: 1.1
## Works on PunBB: 1.2.11
## Release date: 2006-04-11
## Author: angelsin (board.angelsin.net)
##
## Description: zero: sorry for poor eng =)
## update - just if u need it
## that update add text for authorized users - how many posts
## need for non authorized users to see hidden text
## thnx for idea Demo from punbb.ru =)
##
##
## Affected files: include/parser.php
## lang/LANGUAGE/topic.php
##
## Affects DB: No
##
## Notes: None
##
## DISCLAIMER: Please note that "mods" are not officially supported by
## PunBB. Installation of this modification is done at your
## own risk. Backup your forum database and any and all
## applicable files before proceeding.
##
##
#
#
#---------[ 1. MAKE BACKUP! ]---------------------------------------------
#
Copy affected files and save it!.
#
#---------[ 2. OPEN ]-----------------------------------------------------
#
include/parser.php
#
#---------[ 3. FIND ]-----------------------------------------------------
#
$text = preg_replace('#\[hide=([0-9]*)](.*?)\[/hide\]#s', '<blockquote>'.$lang_topic['Hidden text'].':<br><i>$2</i></blockquote>', $text);
#
#---------[ 4. REPLACE WITH ]---------------------------------------------
#
$text = preg_replace('#\[hide=([0-9]*)](.*?)\[/hide\]#s', '<blockquote>'.$lang_topic['Hidden text count'].' '.$hide_count[1].':<br><i>$2</i></blockquote>', $text);
#
#---------[ 5. OPEN ]----------------------------------------------------
#
lang/LANGUAGE/topic.php
#
#---------[ 6. FIND ]----------------------------------------------------
#
'Hidden text' => 'Hidden text',
#
#---------[ 7. ADD AFTER ]-----------------------------------------------
#
'Hidden text count' => 'Hidden text can view with posts equal or more',
#
#---------[ 8. SAVE/UPLOAD ]----------------------------------------------
#
enjoy =)
з.ы. англичанка бы меня убила в свое время в школе, за такую корявость. может кто подсобит и переведет по челочески? а то стыдно.
Редактировался vvik (2006-04-11 11:20:51)
Ага, классно!
Если нужна ещё идейка то могу подкинуть
Значит ситуация такая:
два юзверя плотно общаются в теме с переходом на личностные отношения, выяснение отношений (очень частое явление). Само собой их пререкания видеть никому не надо... вот тут им кстати можно использовать скрытый текст, адресованный для просмотра только им двоим.
Например другим юзверям светится надпись: "Этот текст может просмотреть только юзер под ником NIKNAME".
И естественно юзверь NIKNAME его читает под надписью "Скрытый текст:".
Что-то типа ткого варианта:
[hide=NIKNAME]sample text[/hide]
Если нужна ещё идейка то могу подкинуть
Значит ситуация такая:
два юзверя плотно общаются в теме с переходом на личностные отношения, выяснение отношений (очень частое явление). Само собой их пререкания видеть никому не надо... вот тут им кстати можно использовать скрытый текст, адресованный для просмотра только им двоим.Например другим юзверям светится надпись: "Этот текст может просмотреть только юзер под ником NIKNAME".
И естественно юзверь NIKNAME его читает под надписью "Скрытый текст:".Что-то типа ткого варианта:
[hide=NIKNAME]sample text[/hide]
АГА, только что об этом подумал. было бы очень неплохо..ну и естейственно все скрытое должно быть доступно администратору
Редактировался kisin (2006-04-11 13:31:33)
а имхо для этого существует ПМ на форуме, аська, мсн, почта
форум же - это общение для многих, а не для выяснения отношения двух людей
джаст имхо
саму обработку hide=NIKNAME заюзать можно, но вот актуальности - как то не видно: иначе ПМ для чего?
вот для чего можно hide=NIKNAME еще заюзать?
Редактировался vvik (2006-04-11 14:12:25)
Ну это же к примеру выяснение отношений. Юзвери народ догадливый, применят ещё куда-нить
тогда уж подойдет что то типа такого мода http://www.ibresource.ru/db/434/ а не хайд
Тоже прикольно. Но гемороя наверно.....
Это что-то типа личной гостевой для каждого отдельно взятого юзера.
ну, там сравнение идет с мини-аськой - полагаю (сам скрипт еще не смотрел), что сообщения сохраняются лишь на один сеанс (смысла оставлять на дольший срок - нет)
все таки нельзя путать аську с форумом - одно для одного, другое для другого. "все в одном" - будет намного хуже, чем тоже самое по отдельности.
От поиска данный тег не скрывает
А польза имхо больше не от hide=NIKNAME, а от hide=GROUPNAME.
Спасибо за мод
Мод интересный, на тему hide=GROUPNAME согласен - оно явнополезнее, ибо hide=NIKNAME - это личка, зачем дублировать функции?
Редактировался SDTux (2006-06-03 23:13:03)