Вход • Регистрация

Раздельный доступ к категории

  • 24 января 2012 г.
  • Здравствуйте. Подскажите, как лучше реализовать закрытость категории форума от незарегистрированных пользователей? Чтобы при создании категории была галочка как по аналогии со страницами - "Доступ только для зарегистрированных" - и только зарегистрированные бы смогли видеть и писать в нее.
    Пытался сделать следующее: в modules/forum/admin/forum.admin.categoty.php в конструкторе класса добавил еще одно поле
    Код
    'reg'=>'checkbox'

    в БД, в таблице forum_category добавил поле reg - enum('0', '1')
    далее, правильно ли я рассуждаю? Нужно написать функцию, которая бы в ответ на чекбокс меняла значение поля reg на "1", и при выводе категорий поставить условие наподобие этого
    Код

    if ( пользователь авторизован) && (чекбокс категории "N" reg=1)
    {
    вывод темы "N"
    }

    Может есть более простое решение? Думал над другими вариантами, попробовал сделать полный дубликат модуля форум и прикрепить его к другой странице, доступ к которой ограничил. Почти получилось, но все же не хотелось бы так нагромождать)
    • 30 января 2012 г.
    • А у Вас одна-две категории, которые надо закрыть? Или Вы хотите ставить галку напротив категорий в админке каждый раз?
      Если первый вариант, то это просто: в условии тогда
      if ( пользователь авторизован) && (cat_id=14)
      прямо в скрипте и все.
      Если чекбокс, в категории, то рассуждаете правильно.
      1. в БД поле
      2. в админке в конструктор добавляем поле для управления этой галкой
      3. на сайте в model где идет отбор категорий из таблицы отбор этого поля
      4. на сайте в view условие "если зареганный и есть галка"
      • 01 февраля 2012 г.
      • спасибо за ответ, решил сделать первый вариант.
        В файле forum.view.php в функции first_page, где выводятся категории тем первого уровня, перед выводом поставил условие if ( $this->diafan->_user->id) {вывод}
        - для незарегистрированных ничего не выводится, как и должно быть. Вопрос такой - не могу понять какая переменная отвечает за id категории форума, чтобы поставить дополнительное условие (как у Вы написали: && (cat_id=14) )? на cat_id ругается)
        • 01 февраля 2012 г.
        • Если в функции list_category, то там переменная $row["id"]
          cat_id это я так привел, условную переменную, конечно

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум