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

m_smirnoff

  • Осваиваюсь на форуме
  • 46
  • 2 / 0
Вводные:
Joomla 2.5.14
JoomShopping 3.15
Шаблон магазина default_div (шаблон на дивах от Nevigen)
Итак, ситуация в следующем:
Редактирую отображение страницы товара (файл product_default.php), а именно вывод превью изображений. Хочу сделать их списком и обрамить каждое изображение в <li></li>.
В исходно коде за вывод превьюшек отвечает код:
Код
<span id='list_product_image_thumb'>
   <?php if ( (count($this->images)>1) || (count($this->videos) && count($this->images)) ) {?>
      <?php foreach($this->images as $k=>$image){?>
         <img class="jshop_img_thumb" src="<?php print $this->image_product_path?>/<?php print $image->image_thumb?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" onclick="showImage(<?php print $image->image_id?>)" />
      <?php }?>
   <?php }?>
</span>

Мой код для вывода списком выглядит так:
Код
<ul class="thumbnails" id="list_product_image_thumb">
   <?php if ( (count($this->images)>1) || (count($this->videos) && count($this->images)) ) {?>
      <?php foreach($this->images as $k=>$image){?>
      <li class="span3">
         <img class="jshop_img_thumb" src="<?php print $this->image_product_path?>/<?php print $image->image_thumb?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" onclick="showImage(<?php print $image->image_id?>)" />
      </li>
      <?php }?>
   <?php }?>
</ul>

Вроде как все нормально работает и после легких манипульций с CSS все выглядит так, как требовалось:

Скриншот: http://redpen.io/r3w5qd

И тут сама проблема. Если я выбираю на странице товара значение какого-либо из атрибутов, то отображение превьюшек ломается. При обзоре исходного кода выясняется что мои теги <li></li> просто исчезают:

Скриншот: http://redpen.io/x2zv4s

После некоторого ковыряния нашел, что если в файле /components/com_jshopping/controllers/product.php закомментировать или убрать строки (примерно 522-526 строка):
Код
$displayimgthumb = intval( (count($images)>1) || (count($videos) && count($images)) );
$rows[] = '"images":['.implode(",", $tmp).'],"displayimgthumb":"'.$displayimgthumb.'"';
то эта проблема исчезает и все прекрасно работает.
Вопрос вот в чем: это какой-то глюк или я просто не там копаю. Хотелось бы выяснить этот вопрос ибо не хочется править файлы магазина, а обходиться только шаблоном.

Надеюсь понятно описал проблему.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
не глюк. просто при обновлении атрибута обновляются в том числе привязанные к нему (атрибуту) картинки. внешний вид их определяется в functions.js функция reloadAttribSelectAndPrice. этим хаком при обновлении атрибута убираете смену картинок. можно изменить так как вам надо в функции. а можно даже плагином, чтобы без хаков.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

m_smirnoff

  • Осваиваюсь на форуме
  • 46
  • 2 / 0
не глюк. просто при обновлении атрибута обновляются в том числе привязанные к нему (атрибуту) картинки. внешний вид их определяется в functions.js функция reloadAttribSelectAndPrice. этим хаком при обновлении атрибута убираете смену картинок. можно изменить так как вам надо в функции. а можно даже плагином, чтобы без хаков.

Спасибо за разъяснение. Получается что в любом случае надо хакать файлы самого магазина, что не есть хорошо для обновления. Ну а написать плагин я пока не силен. Может есть существующие плагины? Да и зачем вообще делать смену картинок?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну как зачем? затем что разные атрибуты могут иметь разные изображения.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

m_smirnoff

  • Осваиваюсь на форуме
  • 46
  • 2 / 0
ну как зачем? затем что разные атрибуты могут иметь разные изображения.
Ну хорошо, с этим понятно. И с functions.js разобрался — такое решение гораздо правильней, чем мое. Но это не выход.
Плохо что элементарное изменение разметки нельзя провести без хаков или написания дополнительного плагина. Задача-то простая — обернуть превьюшку или в <div> или в <li>, кому как удобнее для задания стилей. И тут приходится писать дополнительные расширения или хакать файлы. Как-то не совсем правильно на мой взгляд. Сама-то структура шаблонов весьма удобна для редактирования.
Может все-таки есть какие-то пути. Или никто не сталкивался?
« Последнее редактирование: 09.09.2013, 17:57:56 от m_smirnoff »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Цитировать
элементарное изменение разметки нельзя провести без хаков или написания дополнительного плагина
ну... что сказать :) особо не поспоришь. но почему то разработчики пошли таким путем (формируют разметку в js). напишите в хотелки, может доработают. а пока - хак functions.js либо плагин
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
1. Configuration / Shop function
Extended parameters for attributes: Отключть
 
или

2.
Свой стиль для images
нужно добавить javascript
Код
<script type="text/javascript">
reloadAttribEvents[reloadAttribEvents.length] = function(json){
     var html_thumb_img = "";
     if (json.images && json.images.length>0){
      for(var j=0;j<count_prod_img;j++){
                    html_thumb_img+='<img class="jshop_img_thumb" src="'+liveproductimgpath+'/thumb_'+json.images[j]+'" onclick = "showImage('+j+')" /> ';
                    tmp = 'style="display:none"';
                    if (j==0) tmp = '';
                    html_middle_img+='<a class="lightbox" id="main_image_full_'+j+'" href="'+liveproductimgpath+'/full_'+json.images[j]+'" '+tmp+'><img id="main_image_'+j+'" src="'+liveproductimgpath+'/'+json.images[j]+'" />'+html_zoom_img+'</a>';
                }
                if (json.displayimgthumb=="1")
                    jQuery("#list_product_image_thumb").html(html_thumb_img);
                else
                    jQuery("#list_product_image_thumb").html("");        
     }
</script>
« Последнее редактирование: 09.09.2013, 18:43:24 от victorantoniak »
*

m_smirnoff

  • Осваиваюсь на форуме
  • 46
  • 2 / 0
Всем спасибо за ответы. В чем-то помогло. Наверное действительно надо добавить в хотелки разработчикам, чтоб по-умолчанию вывод превьюшек формировался списком. Это даст больше возможностей для стилизации.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Код
надо добавить в хотелки разработчикам, чтоб по-умолчанию вывод превьюшек формировался списком
нет. в хотелки надо добавить, чтобы вывод формировался в php, и передавался в js в готовом виде. тогда можно использовать шаблон, в котором каждый как ему надо, так и будет выводить изображения.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

m_smirnoff

  • Осваиваюсь на форуме
  • 46
  • 2 / 0
Код
надо добавить в хотелки разработчикам, чтоб по-умолчанию вывод превьюшек формировался списком
нет. в хотелки надо добавить, чтобы вывод формировался в php, и передавался в js в готовом виде. тогда можно использовать шаблон, в котором каждый как ему надо, так и будет выводить изображения.
В принципе именно это я и хотел сказать :)
*

alikxus

  • Новичок
  • 7
  • 0 / 0
Подскажите, пожалуйста, такую вещь. Я добавил в атрибуты в файле product.php возможность увеличения картинки атрибутов. Все хорошо работает. Но появилась проблема. Так как у меня неаколько видов атрибутов, то при выборе одного (типа селект), происходит обновление всех остальных. Вот логическим путем сначала дошел до reloadAttribSelectAndPrice(), потом до if (json.images && json.images.length>0){ ну а потом с помощью Google и до этой темы. В программировании не силен, не пойму где нужно подправить, чтобы картинки атрибутов не теряли свои свойства
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

500 ошибка при попытке зайти в настрйоки магазина

Автор Ragivort

Ответов: 1
Просмотров: 717
Последний ответ 25.12.2025, 17:09:41
от kit2m2
Уведомление о превышении доступного количества товара

Автор goga_pgasovav

Ответов: 1
Просмотров: 1852
Последний ответ 03.02.2025, 18:48:10
от kit2m2
Артикул или код товара?

Автор goga_pgasovav

Ответов: 3
Просмотров: 1990
Последний ответ 28.11.2024, 19:03:59
от goga_pgasovav
Странная задача: получить псевдоним товара по его ID в шаблоне статьи

Автор goga_pgasovav

Ответов: 4
Просмотров: 2424
Последний ответ 04.07.2024, 13:06:45
от goga_pgasovav
Ошибка при изменении статуса товара

Автор itbc

Ответов: 4
Просмотров: 2093
Последний ответ 08.05.2024, 10:31:16
от itbc