0 Пользователей и 1 Гость просматривают эту тему.
  • 10 Ответов
  • 2976 Просмотров
*

vrazum

  • Новичок
  • 13
  • 0 / 0
Подскажите пожалуйста, как создать материал, который видели бы все, но комментировать могли только определённые пользователи?
*

beliyadm

  • Легенда
  • 8862
  • 1624 / 63
  • Севастополь == Россия
как простой путь я лично вижу создание (руками по инструкции) дополнительной группы пользователей только для комментирования
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb
*

vrazum

  • Новичок
  • 13
  • 0 / 0
Спасибо. Правильно ли я понял, что тегу {jcomments lock} можно задать какое-нибудь исключение, например id группы?
*

smart

  • Администратор
  • 6485
  • 1315 / 15
  • Хочешь сделать хорошо — сделай!
Ну теоретически, можно сделать обработку некоего дополнительного тега, который будет позволять комментировать только заданным пользователям. Т.е. например вот-так...

Открываем /plugins/content/jcomments.php и перед строчкой:

Код: php
if ($this->_jcomments_locked) {
добавляем:
Код: php
global $my;
if ($article->id == 5 && ($my->id == 62 || $my->id == 63))  {
  $this->_jcomments_locked = false;
}

Т.е. если статья с идентификатором 5, и идентификатор текущего пользователя 62 или 63 (ну для примера), то блокировка не учитывается.
« Последнее редактирование: 25.12.2009, 12:00:53 от smart »
*

vrazum

  • Новичок
  • 13
  • 0 / 0
Не могу найти строку  if ($this->_jcomments_locked)  или что-либо похожее .. :(
*

smart

  • Администратор
  • 6485
  • 1315 / 15
  • Хочешь сделать хорошо — сделай!
В указанном файле (для версии 2.1.0.0) это 240-я строка... Если у вас более свежая версия (из тех, что я давал на тестирование), то там надо перед строчкой:

Код: php
$config->set('comments_locked', intval($commentsLocked));
вставить
Код: php
global $my;
if ($article->id == 5 && ($my->id == 62 || $my->id == 63))  {
  $commentsLocked = false;
}
*

vrazum

  • Новичок
  • 13
  • 0 / 0
Спасибо большое! Отлично получилось!
А можно такой же фокус сделать с категорией и группой?
*

smart

  • Администратор
  • 6485
  • 1315 / 15
  • Хочешь сделать хорошо — сделай!
Можно, для статьи, категории и группы код будет такой:

Код: php
global $my;
if (
    ($article->id == 5 && ($my->id == 62 || $my->id == 63 || $my->usertype == 'Administrator')) ||
    ($article->catid == 15 && ($my->id == 62 || $my->id == 63 || $my->usertype == 'Administrator'))
  )
  {
  $commentsLocked = false;
}

Т.е. для статьи с ID = 5, для пользователей с ID 62 или 63, или группы Администратор, и для материалов категории 15 и таких же пользователей...
*

vrazum

  • Новичок
  • 13
  • 0 / 0
Работает и для категорий и для групп!
Если кому понадобится, не забудте в материале должен быть тэг {jcomments lock}.
smart ещё раз спасибо..
А как в стандартном текстовом редакторе админки изменить кнопку {jcomments ON} на {jcomments lock}?
*

smart

  • Администратор
  • 6485
  • 1315 / 15
  • Хочешь сделать хорошо — сделай!
Откройте файл /plugins/editors-xtd/jcommentson.php и замените в нем:

Код: javascript
jInsertEditorText('{jcomments on}', editor);
на
Код: javascript
jInsertEditorText('{jcomments lock}', editor);

и

Код: php
$button->set('text', 'JComments ON');
на
Код: php
$button->set('text', 'JComments Lock');
*

vrazum

  • Новичок
  • 13
  • 0 / 0
Спасибо! Вопросов по данной теме более не имею. Прошу пометить топик, как "решено".
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться