Новости Joomla

20 лет Joomla: Ринат Кажетов.В 2025 году Joomla исполнилось 20 лет

20 лет Joomla: Ринат Кажетов.В 2025 году Joomla исполнилось 20 лет

👩‍💻 20 лет Joomla: Ринат Кажетов.В 2025 году Joomla исполнилось 20 лет. Вокруг неё сложилось большое интернациональное русскоязычное сообщество. На сайте нашего сообщества и на Хабре к юбилею были собраны интервью с его видными представителями. Сегодня мы читаем интервью с Ринатом Кажетовым (@rkazhet). Ринат - один из администраторов чата русскоязычного Joomla-сообщества, из Казахстана. Это человек, который всегда знает или найдёт нужную ссылку, пристально следит за новостями в мире Joomla, многое узнаёт первым и просто очень отзывчивый человек. Интервью с Ринатом взял Евгений Сивоконь.Читать интервью@joomlafeed#joomla #community

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

srg

  • Захожу иногда
  • 209
  • 41 / 1
Добрый день, можно как-нибудь интегрировать jcomments в компоненты с разным видом, например в одном должны быть новые с низу, а для другого новые сверху?

Если по умолчанию новые с низу, то
Код
global $mainframe;
$comments = $mainframe->getCfg('absolute_path'). '/components/com_jcomments/jcomments.php';
if (file_exists($comments)) {
           require_once($comments);
           // ЗДЕСЬ БЫ ИЗМЕНИТЬ КОНФИГУРАЦИЮ ДЛЯ ВЫВОДА "НОВЫЕ СВЕРХУ"
echo JComments::showComments($group->id, 'com_sg_wall', $group->name);
}
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Можно попробовать сделать вот так:
Код: php
$comments = JPATH_SITE . '/components/com_jcomments/jcomments.php';
if (file_exists($comments)) {
require_once($comments);
$config = JCommentsFactory::getConfig();
$config->set('comments_list_order', 'DESC'); // Последние - в начале
echo JComments::show($group->id, 'com_sg_wall', $group->name);
}

Другое дело, что это повлияет лишь на первичное отображение, а вот когда нажмете Добавить комментарий или что-то подобное - там внутри, параметр-то никто не переопределит, и, следовательно, отображение придет старое. Как вариант решения - написать небольшой плагин, на события вроде onJCommentsCommentBeforeAdd, и в этом плагине анализировать object_group и проставлять необходимые параметры в конфиг.
« Последнее редактирование: 08.07.2013, 20:46:02 от smart »
*

srg

  • Захожу иногда
  • 209
  • 41 / 1
Можно сделать вот так:
Огромное спасибо, если это можно решить на уровне плагинов, это уже супер, ну а раз это решаемо, еще вдогонку 2 подобных вопросика:
 - сменить тип представления с линейного на древовидный это какой параметр конфига $config->set('XXXXX', 'XXXX'); ?
 - сменить шаблон для разных компонентов? нужно в статьях один шаблон, для галереи второй $config->set('XXXXX', 'XXXX');
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Шаблон - параметр template, вид - template_view (list или tree).
*

srg

  • Захожу иногда
  • 209
  • 41 / 1
Все! Спасибо за решение!
*

srg

  • Захожу иногда
  • 209
  • 41 / 1
Шаблон - параметр template, вид - template_view (list или tree).
Сделал смену конфига при интеграции, сделал плагин, для подмены конфига на лету, все работает ок! Встала еще одна задачка для интеграции в часть компонента с фотографиями. Фото переключаются на AJAX. Как на AJAX обновить листинг JC для нового id объекта.
т.е.
Код
// загрузка первого фото на php HTML
....
// первая интеграция jc
global $mainframe;
$comments = $mainframe->getCfg('absolute_path'). '/components/com_jcomments/jcomments.php';
if (file_exists($comments)) {
  require_once($comments);
  echo JComments::showComments($photocurrent, 'com_sg_photos', $photoname[$photocurrent]);
}

<script type="text/javascript">
// здесь обновление фото+1
.....
// здесь обновить комментарии
document.getElementById('bullwall').innerHTML =  // а вот сюда нужно следующие интеграции js::showComments($photocurrent+1, 'com_sg_photos', $photoname[$photocurrent+1]);
</script>

Вот как вызвать обновление листинга для нового id объекта.
Может лучше на
jQuery.ajax({   url: УРЛ_к_обновлению_листинга,
      type: "POST",
          data: ТУТ_наверно_параметры_object_id,
      success:function(result){//а тут ответ в div запихать}
});
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Вот так можно перегрузить список комментариев - первый параметр идентификатор объекта, второй - группа объектов.
Код: javascript
<script type="text/javascript">
JComments.reinit(1, 'com_content');
</script>
*

srg

  • Захожу иногда
  • 209
  • 41 / 1
Спасибо все ок, работает!

Забыли один момент, для формы добавления изменить id объекта для пост данных. В моем случае, например, для следующего фото.
Код
<script type="text/javascript">
    // id_photo+1 подгружаем следующее фото
    .....
    JComments.reinit((id_photo+1), 'com_content');
    document.getElementsByName('object_id')[0].value = id_photo+1;
</script>

В противном случае новые комментарии полетят на старый id объекта.
« Последнее редактирование: 10.07.2013, 19:12:13 от srg »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться