в общем на последнее (с ограничением на количество постов)
пришлось двумя 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);
just imho