Язык
Контакты
GitHub
Поддержка
Регистрация
Войти
Логин: Пароль: Запомнить:
Пользователи
Последние сообщения
Ответить
1

как оставить одну тему форума открытой

VAio

  • Свой человек
  • Юзер
  • 82
  • Репутация:0 
  • Предупреждения: 0 
  • Регистрация:
    22 Авг 2011
#1
хочу замутить такую нужную штуку как... форум, на форуме есть темы... на сегодняшний момент гость может видеть все темы форума. Вот как сделать чтоб гость видел только одну тему форума которую я оставлю для обзора, а остальные темы будут скрыты с его любопытных глаз.

Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:110 
  • Предупреждения: 0 
  • Регистрация:
    30 Ноя -0001
#2
Есть такой хук как before_call_module

Цитата
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'), '/');
        }
        
        return 
$params// На всякий случай
    
}?>

Я горжусь тем, что создал бесплатную CMS - AtomX. И люблю нашу команду)

VAio

  • Свой человек
  • Юзер
  • 82
  • Репутация:0 
  • Предупреждения: 0 
  • Регистрация:
    22 Авг 2011
#3
а где вставлять эту бяку которую ты тут написал? )))

1
Сейчас online: 42. Зарегистрированных: 0. Гостей: 42.