Новости 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 Гость просматривают эту тему.
  • 2 Ответов
  • 3079 Просмотров
*

rain_heart

  • Новичок
  • 4
  • 1 / 0
Возникла такая необходимость в модуле ZOO Category показывать не только категории а еще заголовки элементов. Немного изменил модуль и все заработало.
Версия Zoo 3.1
Версия Joomla 3.3.0


1. Добавляем строчку в файл: administrator/language/en-GB/en-GB.com_zoo.ini

Код: ini
SHOW_ITEMS_DESCRIPTION="If set to yes, it will show the elements from category"
я добавил после строчки
Код: ini
SHOW_ITEM_COUNT_DESCRIPTION="If set to yes, it will show the number of items present in the category"

это дескриптор для будущей радиокнопки (вкл/выкл показ элементов)

2. Добавляем в файл: modules/mod_zoocategory/mod_zoocategory.xml в раздел <fieldset></fieldset>
Код: xml
<field name="add_items" type="radio" default="0" label="Show elements in category" description="SHOW_ITEMS_DESCRIPTION">
     <option value="1">JYES</option>
     <option value="0">JNO</option>
</field>[/color]
это радиокнопка в настройках модуля Zoo Category

3. Добавляем в файл: modules/mod_zoocategory/helper.php кусочек кода
Код: php
if ($params->get('add_items', 0)) {
   if ($category->getItems()) {
      $result[] = "<ul $attribs>";
      $arr_items = $category->getItems();
      foreach ($arr_items as $currentitem) {
        $url = $this->app->route->item($currentitem, true);
        $result[] = "<li$class>";
        $result[] = "<a href=\"$url\"$class><span>{$currentitem->name}</span></a>";
         $result[] = '</li>';
      }
      $result[] = '</ul>';
    }
}

!этот кусочек надо добавить после кода!
Код: php
if ($params->get('add_count', 0)) {
     $result[] = "<a href=\"$url\"$class><span>{$category->name} ({$category->itemCount()})</span></a>";
} else {
      $result[] = "<a href=\"$url\"$class><span>{$category->name}</span></a>";
}

В результате можно выводить не только список категорий и подкатегорий но еще и список элементов категорий со ссылками на них.
P.S. Я не волшебник, я только учусь поэтому комментарии от гуру приветствуются, возможно это можно было сделать более изящней.
*

rain_heart

  • Новичок
  • 4
  • 1 / 0
UPD!

Посмотрел внимательно код: modules/mod_zoocategory/helper.php
обнаружил
строчку (у меня 37)
Код: php
$parent = $category->hasChildren() && !($max_depth && $max_depth < $depth + 1));

надо заменить на строку
Код: php
$parent = ($category->hasChildren() && !($max_depth && $max_depth < $depth + 1)) || ($category->getItems());

она добавляет в класс значение ' parent' для категории в которой есть элементы.

Так как дальше собираюсь сделать завернуть список категорий в аккордеон меню, кажется это правильно.
*

rain_heart

  • Новичок
  • 4
  • 1 / 0
UPD 2.0

В приложенном выше коде получается что элементы директорий будут всегда отображаться в независимости активная директория или нет это при использовании темы "warp6-sidebar-menu"
чтоб это исправить надо немного изменить условие в строке

вот это
Код: php
if ($category->getItems()) {
...
}

меняем на это
Код: php
if ($category->getItems() && $active) {
...
}


в результате получаем вот такой полный код в modules/mod_zoocategory/helper.php

Код: php
<?php
/**
* @package   ZOO Category
* @author    YOOtheme http://www.yootheme.com
* @copyright Copyright (C) YOOtheme GmbH
* @license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 only
*/

/*
Class: CategoryModuleHelper
The category module helper class
*/
class CategoryModuleHelper extends AppHelper {

    public function render($category, $params, $level = 0, $flat = false, $attribs = null, $expanded = false) {

// init vars
$menu_item = $params->get('menu_item');
$max_depth = (int) $params->get('depth', 0);
if (!$current_id = (int) $this->app->request->getInt('category_id', $this->app->system->application->getParams()->get('category'))) {
if ($item = $this->app->table->item->get((int) $this->app->request->getInt('item_id', $this->app->system->application->getParams()->get('item_id', 0)))) {
$current_id = $item->getPrimaryCategoryId();
}
}

$result = array("<ul $attribs>");
foreach ($category->getChildren($flat ? true : false) as $category) {

$path = array_reverse($category->getPath());
$depth = count(array_slice($path, array_search($params->get('category', 0), $path))) - 1;
if ($max_depth && $max_depth < $depth) {
continue;
}

$current = $current_id == $category->id;
$active = $current || in_array($current_id, array_keys($category->getChildren(true)));
$parent = ($category->hasChildren() && !($max_depth && $max_depth < $depth + 1)) || ($category->getItems());
$url = $this->app->route->category($category, true, $menu_item);
$class = ' class="'.($flat ? '' : 'level'.$level).($parent ? ' parent' : '').($current ? ' current' : '').($active ? ' active' : '').'"';

$result[] = "<li$class>";
           
           if ($params->get('add_count', 0)) {
$result[] = "<a href=\"$url\"$class><span>{$category->name} ({$category->itemCount()})</span></a>";
                   
} else {
$result[] = "<a href=\"$url\"$class><span>{$category->name}</span></a>";
}
           
           
            /* Вывод элементов категории   */
             if ($params->get('add_items', 0)) {
                if ($category->getItems() && $active) {
                    $result[] = "<ul $attribs>";
                    foreach ($category->getItems() as $currentitem) {
                        $url = $this->app->route->item($currentitem, true);
                        $result[] = "<li$class>";
                        $result[] = "<a href=\"$url\"$class><span>{$currentitem->name}</span></a>";
                        $result[] = '</li>';
                    }
                    $result[] = '</ul>';
                }
             }
           
if (!$flat && ($active || $expanded) && $parent) {
$result[] = $this->render($category, $params, $level+1, $flat, 'class="level'.($level+1).'"', $expanded);
}
$result[] = '</li>';

}
$result[] = '</ul>';

return implode("\n", $result);
}

}
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Дополнительное поле с редактором для категории. Zoo

Автор rch.sergeevich

Ответов: 1
Просмотров: 2774
Последний ответ 22.05.2022, 08:12:16
от arma
Error!-Error-Reordering Category (invalid slug)

Автор sig_

Ответов: 2
Просмотров: 4181
Последний ответ 27.11.2020, 08:59:35
от vasmed
Вывод материала категории

Автор face2005

Ответов: 0
Просмотров: 3527
Последний ответ 28.09.2018, 18:26:52
от face2005
[Решено] Как в модуле ZOO Item вывести название и описание категории?

Автор frolov.ar

Ответов: 13
Просмотров: 6282
Последний ответ 01.04.2017, 13:29:52
от rivermc
URL нескольких страниц категории

Автор saschka

Ответов: 2
Просмотров: 2287
Последний ответ 08.02.2017, 13:45:36
от saschka