Новости Joomla

👩‍💻 Joomla включена в программу Google Summer of Code 2026.

👩‍💻 Joomla включена в программу Google Summer of Code 2026.

Google Summer of Code (GSoC) - программа компании Google, которая позволяет участникам программы под руководством опытных наставников писать код для организаций, занимающейся открытым исходным кодом. Joomla принимает участие в этой программе не в первый раз и в 2026 году снова включена в список GSoC. Для программы утверждается список "идей", воплотить которые должны участники под руководством наставников.

Проекты Joomla в рамках программы GSoC 2026.

Проект I: Ajax-бэкенд.
- Действия в административной панели без необходимости обновлять страницу.
- Автоматическое сохранение содержимого во время редактирования.
- Расширенный фильтр - поиск и фильтрация по пользовательским полям.

Проект II: Автоматизация рабочих процессов (workflow + task scheduler).
Joomla имеет функцию процессов и планировщика задач. Теперь эти две функции следует объединить, чтобы пользователь мог настраивать назначенные рабочие процессы таким образом, чтобы переходы выполнялись автоматически, с возможностью точного определения времени. Должна быть возможность создавать циклы или прямые запланированные рабочие процессы. Предполагается, что интерфейс должен учитывать хороший пользовательский опыт, удобство использования и современные стандарты доступности. Ожидается, что будет добавлен интерфейс для управления процессами и их расписанием на страницах категорий и материалов. Так же ожидается, что сторонние компоненты также смогут воспользоваться этим функционалом.

Проект III: Мультикатегории.
В настоящее время Joomla! не позволяет назначать один элемент нескольким категориям. Хотя система тегов часто используется в качестве замены, существует острая потребность в нативной поддержке нескольких категорий, чтобы привести Joomla! в соответствие с другими современными системами управления контентом.

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

Принять участие GSoC 2026
Подробнее о проектах Joomla GSoC 2026
Чат GSoC в Mattermost (международное сообщество Joomla)

Вышли релизы Joomla 6.0.3 и Joomla 5.4.3

Релиз Joomla 6.0.3 и Joomla 5.4.3

Проект Joomla рад сообщить о выпуске Joomla 6.0.3 и Joomla 5.4.3. Это релиз исправлений ошибок и улучшений для серии Joomla 6.0 и Joomla 5.4.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

Подходы, описанные в статье, полезны в тех случаях, когда вы работаете с данными в com_fields - механизме создания и редактирования пользовательских полей ядра Joomla и при использовании FieldsHelper. Многие сторонние компоненты не используют эту возможность, поэтому данная статья будет полезна лишь частично.

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

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Тут без вмешательства в код ядра не обошлось, но у меня все характеристики должны быть с мультивыбором и других вариантов я не увидел, так-что хакаем ядро:

Админка

1. \administrator\components\com_jshopping\controllers\products.php
Меняем строку
Код: php
$obj->values = JHTML::_('select.genericlist', array_merge($f_option, $tmp), $name, '', 'id', 'name', $product->$name);

На
Код: php
$selected = explode(',', $product->$name);
                $obj->values = JHTML::_('select.genericlist', array_merge($f_option, $tmp), $name.'[]', 'class="inputbox" size="10" multiple="multiple"', 'id', 'name', $selected);

2. После строки
Код: php
$dispatcher->trigger( 'onBeforeDisplaySaveProduct', array(&$post) );

Вставляем

Код: php
$newPost = array();
        foreach($post as $k => $v){
            if(is_array($v) && strpos($k,'extra_field')!== false){
                $newPost[$k] = implode(',', $v);
            }
            else{
                $newPost[$k] = $v;
            }
        }

3. БД сделать запрос
Код: sql
ALTER TABLE `jos_jshopping_products` CHANGE `extra_field_1` `extra_field_1` VARCHAR( 255 ) NOT NULL
естественно поменять префикс таблиц на свой,и ко всем полям, содержащим в названии extra_field. Иначе будет запоминаться только первое выбранное значение.

Морда
\components\com_jshopping\tables\product.php

Код: php
        foreach($fields as $field_id){
            $field_name = "extra_field_".$field_id;
            if ($this->$field_name!=0){
                $rows[] = array("name"=>$listfield[$field_id]->name, "value"=>$fieldvalues[$this->$field_name]);
            }
        }

Меняем на
Код: php
        foreach($fields as $field_id){
            $field_name = "extra_field_".$field_id;
            if ($this->$field_name!=0){
                //экомир добавил мультихарактеристики
                $fvalues = explode(',', $this->$field_name);
                if(count($fvalues)>1){
                    $fstring = array();
                    foreach($fvalues as $fvalue){
                        $fstring[] = $fieldvalues[$fvalue];
                    }
                    $fstring = implode(', ', $fstring);
                    $rows[] = array("name"=>$listfield[$field_id]->name, "value"=>$fstring);
                }
                else{
                    $rows[] = array("name"=>$listfield[$field_id]->name, "value"=>$fieldvalues[$this->$field_name]);
                }

            }
        }

Отбор товаров по мультихарактеристикам


Скоро
« Последнее редактирование: 03.01.2012, 14:36:13 от Arkadiy »
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Т.е. чтобы правильно понимать...
Это возможнсть присвоения нескольких характеристик товару имено в админке ?
А сама возможность фильтеринга с фронта будет "Скоро" ?

Супер !
Давно думал об этом.. но.. уповать приходилось только на разработчиков..
Однако теперь понимаю, что не только на них ;)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Вышла 3.3.0, если бы не этот факт, то доделал бы завтра, но завтра придется делать ревизию компонента и совмещать правки и новый компонент, но думаю завтра-же и решу.
*

fliginskih

  • Захожу иногда
  • 197
  • 15 / 1
блин, ребята, давайте правильно выражаться!
ибо я боюсь неправильно вас понять.
не путайте характеристику с опцией ! есть характеристика "цвет" и ее опции "зеленый, синий и т.д."

так что же вы имеете в виду?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
У меня терминология от вирта осталась, там все несколько по-другому, привыкнешь.
*

fliginskih

  • Захожу иногда
  • 197
  • 15 / 1
проверим, испытаем...
*

RUslankaRU

  • Новичок
  • 4
  • 0 / 0
Большое спасибо за проделанную работу, очень помогло.
Правда, есть нюанс. Не работал скрипт, пока не внесла после пункта 2 в вашем посте строку:
Код
 $post = $NewPost; 

Поиск joomla_module_JoomShopping-Search-3.1.2 прекрасно работает с вашим патчем.
*

leopoldus

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
 делаю SQL запрос
Код
ALTER TABLE `d1x3p_jshopping_products` CHANGE `extra_field_1` `extra_field_1` VARCHAR( 255 ) NOT NULL
и мне пишет #1054 - Unknown column 'extra_field_1' in 'd1x3p_jshopping_products' Прилагаю скриншот. Подскажите пожалуйста
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
делаю SQL запрос
Код
ALTER TABLE `d1x3p_jshopping_products` CHANGE `extra_field_1` `extra_field_1` VARCHAR( 255 ) NOT NULL
и мне пишет #1054 - Unknown column 'extra_field_1' in 'd1x3p_jshopping_products' Прилагаю скриншот. Подскажите пожалуйста
Заведите сначала в настройках магазина одну характеристику.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

leopoldus

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Цитировать
Заведите сначала в настройках магазина одну характеристику.
Сделал - все осталось также.
 У меня были с десяток характеристик, но я все же создал новую и подключил в настройка.

 Получается что сам мультивыбор в характеристиках есть, он выберает с контролом несколько пунктов, НО НЕ СОХРАНЯЕТСЯ
*

leopoldus

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Цитировать
и ко всем полям, содержащим в названии extra_field.

Как это сделать в PHP My Admin
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Данный SQL-запрос увеличивает ширину строки до 255 символов.
Посмотрите в таблице d1x3p_jshopping_products последние поля. Если есть характеристики, то это обычно extra_field_idхарактеристики.
Так вот для каждой характеристики которая будет "мультиселект", надо сделать такой запрос. А лучше использовать улучшенную версию Мультивыбора.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться