Новости Joomla

👩‍💻 SW JProjects v.2.6.1 - компонент каталога расширений для веб-приложений.

👩‍💻 SW JProjects v.2.6.1 - компонент каталога расширений для веб-приложений.

Компонент позволяет сделать свой мини-Joomla Extensions Directory - каталог расширений для CMS (не только для Joomla) или файлов. Есть возможность скачивания по лицензионным ключам создания кастомных схем данных для сервера обновлений.

👩‍💻 v.2.6.1. Что нового?
- Правки наследования схем серверов обновлений. Улучшена логика наследования схем серверов обновлений для проектов компонент - категория - проект.
- Не стабильные релизы в сервере обновлений. Теперь в данные сервера обновлений попадают все версии (alpha, beta и т.д.), а не только stable.
- Косметические изменения. В шаблоне по умолчанию сделаны замены некоторых CSS-классов, уточнено присвоение атрибутов loading=lazy и fetchpriority.
- Рефакторинг и правки кода. Текущее обновление кодовой базы.
- Исправление ошибок.

👩‍💻 Больше спасибо за помощь в тестировании участникам нашего сообщества Александру Новикову (@pro_portal) и Александру Судьбинову (@alexrevo).

- Страница расширения
- GitHub расширения
- Joomla Extensions Directory

@joomlafeed

Событие Pizza, Bugs & Fun - 29-30 января 2026 года.

Событие Pizza, Bugs & Fun  - 29-30  января 2026 года.

Уже несколько лет в мире Joomla проводятся мероприятия "Pizza, Bugs & Fun" (#PBF), где каждый может посвятить несколько часов своего мозгового времени тому, чтобы наша любимая CMS стала ближе к идеалу.

Ссылки на видео и статьи из этого поста рассказывает об организационных вопросах, которые пригодятся для участия в PBF, а так же что и как делать.

В рамках события PBF все желающие могут собираться в общий онлайн чат, обсудить вопросы Joomla и приложить к их разрешению свою руку. Самый классный вариант, когда эта встреча происходит оффлайн: тогда организовывается пицца, напитки по вкусу и несколько часов совместного творчества.

Каждый помогает тем, что он умеет:

  • кто-то пишет недостающую документацию,
  • кто-то пишет код,
  • кто-то тестирует как исправлены ошибки или сделан новый функционал.

На сайте события есть карта, можно "захостить" свою локацию. Практически все движки в мире развиваются за счёт спонсирующих их компаний. Joomla одна из немногих, где развитие идёт только усилиями международного сообщества энтузиастов.

https://www.youtube.com/watch?v=a-FuVKXg_Uw 

На момент написания данного поста в репозитории Joomla 810 открытых Issue (как правило это баги) и 236 Pull request (PR, исправление багов и новый функционал). Все PR обязательно тестируются минимум двумя участниками сообщества, дабы в конечный код движка не проскочила ошибка.

Если каждый из участников только нашего сообщества сделает даже одно тестирование, то, боюсь, PR и Issue на всех не хватит 😀 И ничего не останется нашим коллегам из международных Joomla-чатов.

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

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
Просмотров: 3003
Последний ответ 22.05.2022, 08:12:16
от arma
Error!-Error-Reordering Category (invalid slug)

Автор sig_

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

Автор face2005

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

Автор frolov.ar

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

Автор saschka

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