хочу замутить такую нужную штуку как... форум, на форуме есть темы... на сегодняшний момент гость может видеть все темы форума. Вот как сделать чтоб гость видел только одну тему форума которую я оставлю для обзора, а остальные темы будут скрыты с его любопытных глаз.
URL разобран и мы готовы вызвать модуль и action. На вход хука приходят параметры, полученные из URL. Какой модуль и действие будет вызванно, зависит именно от того, что вернет плагин. В идеале он должен вернуть массив типа:
<?php array('module', 'action'[, 'param1'[, 'param2',]]); ?>
Что мы можем делать? Проверяем гость ли запросил страницу. Если нет, то просто возвращаем тоже что и получили на вход. Если все таки гость, переходим ко второй части...
Проверяем что запросил гость. Если это не форум или разрешенная паблик тема, возвращаем тоже, что и получили. Если это одна из запрещенных тем, выдаем сообщение мол "сории, но ты не в праве это смотреть" и редиректим на главную.
Добавлено2012.02.17 20-08
Как делать плагины уже есть не одна тема, но вот примерное содержание основной функции под вашу задачу
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
<?php public function common($params) {
// Пользователь авторизован
if (!empty($_SESSION['user'])) return $params;
// Пользователь запросил не страницу форума или по крайней мере не просмотрт темы форума
if ($params[0] != 'forum' || $params[1] != 'view_theme') return $params;
if (empty($params[2])) return $params; // ИД вообще не передан
if ($params[2] == 47) return $params; // Полученый ИД совпадает с ИД публичной темы
// Запрос на просмотр темы но не публичной
if ($params[0] == 'forum' && $params[1] == 'view_theme' && $params[2] != 47) {
return showInfoMessage(__('Permission denied'), '/');
}