Новости Joomla

Joomla 6: Автоматические обновления ядра в Joomla

Joomla 6: Автоматические обновления ядра в Joomla

👩‍💻 Joomla 6: Автоматические обновления ядра в Joomla. В октябрьском номере официального журнала Joomla - Joomla Community Magazine вышла статья David Jardin, где рассказывается о внедрении функционала автоматического обновления ядра Joomla.❓Почему сейчас? Joomla же жила как-то 20 лет без автоматических обновлений?Это оказалась самая востребованная за последнее время от пользователей Joomla функция. Но, основная причина внедрения - проблемы безопасности. Всякий раз, когда в новой версии Joomla устраняется уязвимость, злоумышленники начинают анализировать код, чтобы выяснить, какая именно уязвимость была исправлена. И как только они это выясняют - начинается разработка автоматизированных скриптов для взлома как можно большего количества сайтов. Затем доступы к автоматически взломанным сайтам продаются в профильных чатах и ресурсах "пачками" по несколько сотен тысяч или миллионов сайтов. Ваш сайт могли взломать несколько лет назад, но воспользоваться уязвимостью могут не сразу, а тогда, когда у злоумышленников возникнет необходимость. И только после этого вы может быть узнаете об этом.Анализ патча, понимание проблемы и разработка скрипта требуют времени. И если владелец сайта не обновит его до истечения этого срока, сайт может быть взломан. А хакеры действуют быстро! Для критических, легко эксплуатируемых уязвимостей речь идёт о временном окне в 10–12 часов — и этого времени явно недостаточно, чтобы все успели обновить свои сайты.Здесь выходят на первый план автоматизированные обновления: проект Joomla теперь может активно устанавливать обновления (и, следовательно, исправления безопасности) на сайты, чтобы гарантировать, что сайты действительно обновляются вовремя.🕘 От первых идей до реализации прошло 5 лет. И здесь можно вспомнить, как в Joomla 5.1 внедрили TUF - The Update Framework, позволяющий устанавливать защищённое соединение между сайтом и сервером обновлений и исключает возможность supply chain attack (атаки на цепочку поставок).Об особенностях реализации и требованиях к сайту читаем подробнее в статье на JCM.@joomlafeed#joomla #secutiry #jcm

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™. Интервью с волонтёрами 🎈Ну что, друзья, вот и настал этот долгожданный момент. Мы выпустили первое издание собственного журнала под эгидой NorrNext, который включает в себя интервью с видными деятелями сообщества из разных стран и континентов.Общий нарратив: показать, что нас объединяет (Joomla) и узнать больше о людях, которые вносят свой вклад в развитие платформы в своих сообществах. 20 лет — это много. Давайте же узнаем о коллегах 🎁 Первый цикл включает такие страны, как Австрия, Испания, Латвия, Россия, Румыния, Тайланд, Черногория, Чехия.⚙️ С кем интервью: ✔️ Владимир Елисеев 🇷🇺✔️ Дмитрий Рекун 🇱🇻✔️ Дмитрий Цымбал 🇷🇺✔️ Евгений Сивоконь 🇷🇺 ✔️ Сергей Толкачёв 🇷🇺✔️ Dénes Székely 🇷🇴✔️ Jan Pavelka 🇨🇿✔️ Miljan Vujosevic 🇲🇪✔️ Sergio Iglesias 🇪🇸✔️ Sigrid Gramlinger 🇦🇹✔️ Pisan Chueatchatchai 🇹🇭‼️ Новые интервью будут добавляться до конца декабря 2025. Заходите по ссылке время от времени💡👉 Читать далее

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

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 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться