Решал задачу, как просто ограничить доступ в конкретную тему только администрации и конкретному пользователю. В результате получился довольно интересный с моей точки зрения код, который позволяет самим пользователям создавать приватные темы, доступ к которым описывается через их описание.
Например если в описании написать
Цитата: Эта тема доступна только для #Вася и #Петя
то доступ в эту тему будут иметь только администрация и пользователи с никами Вася с Петя
Код ищет в описании имя пользователя с стоящим перед ним маркером #
Для установки нужно сделать следующее...
Открываем fm.class.php и ищем строку
code:$string = preg_replace_callback("#(^|\s)
перед которой вставляем
code:$string = str_replace("#", "", $string);
Затем открываем файл topic.php в котором ищем строку
code:$topic = $list[$topic_id];
после которой вставляем
code:if ( (!defined('IS_ADMIN') && !$fm->_Moderator && strpos($topic['desc'],'#') !== FALSE) && strpos($topic['desc'],'#'.$fm->user['name']) === FALSE )
{$fm->_Message($fm->LANG['MainMsg'],$fm->LANG['PrivatRule']);}
если нужно, что бы эта возможность работала только в приватных форумах, последний код должен быть таким
code:if ( (!defined('IS_ADMIN') && !$fm->_Moderator && strpos($topic['desc'],'#') !== FALSE && $topic['fid'] == $privateID) && strpos($topic['desc'],'#'.$fm->user['name']) === FALSE )
{$fm->_Message($fm->LANG['MainMsg'],$fm->LANG['PrivatRule']);}
Код не применять!!! Есть серьёзные побочные эффекты. |