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

oshaly

  • Захожу иногда
  • 60
  • 0 / 0
vm - столько косяков.....
« : 12.02.2010, 11:24:46 »
что-то я уже пожалела, что связалась с этим модулем. Вижу, что его "допиливать" и "допиливать" напильниками)
Столько неоптимизированных запросов, сейчас надо их все разом оптимизировать, иначе сайт практически лежит. И увеличение ресурсов хостинга почти не помогает.
Как справляетесь, тоже оптимизируете каждый раз?
*

pervoi

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: vm - столько косяков.....
« Ответ #1 : 12.02.2010, 12:36:35 »
Ещё не проводили нагрузочное тестирование. В тестовой базе болтается несколько продуктов - для разработки достаточно.
В каких случаях возникают галюны?
*

oshaly

  • Захожу иногда
  • 60
  • 0 / 0
Re: vm - столько косяков.....
« Ответ #2 : 12.02.2010, 23:00:19 »
15000 товаров в базе и все, список товарв в рубрике грузится полчаса, а то и вобще ошибка 500.
*

pervoi

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: vm - столько косяков.....
« Ответ #3 : 13.02.2010, 00:17:06 »
Перспектива печальная. А с хостингом проблемы исключены?
*

oshaly

  • Захожу иногда
  • 60
  • 0 / 0
Re: vm - столько косяков.....
« Ответ #4 : 13.02.2010, 05:11:03 »
насчет хостинга - сменили тариф, сейчас виртуальный выделенный сервер, 128 оперативка и много другого. счас вожусь с оптимизацией запросов, т.к. хостер грозится отключить аккаунт.
*

oshaly

  • Захожу иногда
  • 60
  • 0 / 0
Re: vm - столько косяков.....
« Ответ #5 : 13.02.2010, 06:51:32 »
вот этот запрос
Код
SELECT DISTINCT `product_name`,`products_per_row`,`category_browsepage`,`category_flypage`,`jos_vm_category`.`category_id`,
                                `jos_vm_product`.`product_id`,`product_full_image`,`product_thumb_image`,`product_s_desc`,`product_parent_id`,`product_publish`,`product_in_stock`,`product_sku`, `product_url`,
                                `product_weight`,`product_weight_uom`,`product_length`,`product_width`,`product_height`,`product_lwh_uom`,`product_in_stock`,`product_available_date`,`product_availability`,`jos_vm_product`.`mdate`, `jos_vm_product`.`cdate`
  FROM (`jos_vm_product`, `jos_vm_category`, `jos_vm_product_category_xref`,`jos_vm_shopper_group`)
  LEFT JOIN `jos_vm_product_price`
  ON `jos_vm_product`.`product_id` = `jos_vm_product_price`.`product_id`
  WHERE (`jos_vm_product_category_xref`.`product_id`=`jos_vm_product`.`product_id` OR `jos_vm_product_category_xref`.`product_id`=`jos_vm_product`.`product_parent_id`)
 
  AND `jos_vm_product_category_xref`.`category_id`=`jos_vm_category`.`category_id`
 
  AND `jos_vm_product_category_xref`.`category_id`=2
 
  AND ((`jos_vm_product`.`product_id`=`jos_vm_product_price`.`product_id`
  AND `jos_vm_shopper_group`.`shopper_group_id`=`jos_vm_product_price`.`shopper_group_id`) OR `jos_vm_product_price`.`product_id` IS NULL)
 
  AND `jos_vm_shopper_group`.`default` = 1
 
  AND `product_parent_id`=0
 
  AND `product_publish`='Y'
 
  AND `category_publish`='Y'
 
  GROUP BY `jos_vm_product`.`product_sku`
 
  ORDER BY `jos_vm_product`.`product_name` ASC
  LIMIT 1100, 100

убивает все, что было "нажито непосильным трудом".


он выполняется от 30 до 100 сек.
и кто такой криволапый написал его, да еще зашил непонятно где - не могу найти.

*

oshaly

  • Захожу иногда
  • 60
  • 0 / 0
Re: vm - столько косяков.....
« Ответ #6 : 13.02.2010, 08:18:54 »
Рою дальше. Вышеук.запрос формируется  в .../www/administrator/components/com_virtuemart/html/shop_browse_queries.php  - специально для страницы со списком товаров.
Непонтяно пока как он может повлиять на другие страницы магазина (в том числе админку), но если его хорошенько подчистить прямо тут, то жить станет легче. А также добавить несколько индексов на некотоыре таблицы.

Далее на странице списка товаров окромя этого запроса формируется по 22(!) запроса на каждый товар. Т.е. если выводим по 100 товаров, то считай более 2200 запросов на странице, весело. Запросы по большей части.. хм.. можно было некотоыре вобще убрать нфк.

Вот серия запросов для одного товара, блин как бы  их до одного сократить....

Код
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_session.php:518
Execute time:6.6E-5 sec.
SELECT id
  FROM jos_menu
  WHERE link='index.php?option=com_virtuemart'
  AND params LIKE '%product_id=5306%'
  AND published=1
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_session.php:527
Execute time:5.9E-5 sec.
SELECT id
  FROM jos_menu
  WHERE link='index.php?option=com_virtuemart'
  AND params LIKE '%category_id=2%'
  AND published=1
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_session.php:535
Execute time:0.000112 sec.
SELECT id
  FROM jos_menu
  WHERE link='index.php?option=com_virtuemart'
  AND params LIKE '%flypage=flypage.tpl%'
  AND published=1
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_session.php:543
Execute time:8.3E-5 sec.
SELECT id
  FROM jos_menu
  WHERE link='index.php?option=com_virtuemart'
  AND params LIKE '%page=shop.product_details%'
  AND published=1
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_product.php:1092
Execute time:8.5E-5 sec.
SELECT product_id, `jos_vm_product`.*
  FROM `jos_vm_product`
  WHERE `product_id`=5306
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_product.php:2374
Execute time:0.000321 sec.
SELECT amount,is_percent
  FROM jos_vm_product,jos_vm_product_discount
  WHERE product_id='5306'
  AND (start_date<='1266037494' OR start_date=0)
  AND (end_date>='1266017760' OR end_date=0)
  AND product_discount_id=discount_id
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_product.php:2387
Execute time:6.2E-5 sec.
SELECT product_parent_id
  FROM jos_vm_product
  WHERE product_id=5306
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_product.php:2392
Execute time:0.000194 sec.
SELECT amount,is_percent
  FROM jos_vm_product,jos_vm_product_discount
  WHERE product_id='0'
  AND (start_date<='1266037494' OR start_date=0)
  AND (end_date>='1266017760' OR end_date=0)
  AND product_discount_id=discount_id
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_shopper_group.php:374
Execute time:6.3E-5 sec.
SELECT shopper_group_id,shopper_group_discount
  FROM jos_vm_shopper_group
  WHERE vendor_id='1'
  AND `default`='1'
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_product.php:1819
Execute time:6.6E-5 sec.
SELECT `product_price`, `product_price_id`, `product_currency`
  FROM `jos_vm_product_price`
  WHERE product_id=5306
  AND shopper_group_id=5   
  ORDER BY price_quantity_start
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_product.php:1092
Execute time:8.0E-5 sec.
SELECT product_id, `jos_vm_product`.*
  FROM `jos_vm_product`
  WHERE `product_id`=5306
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_product.php:1626
Execute time:6.3E-5 sec.
SELECT tax_rate
  FROM jos_vm_product, jos_vm_tax_rate
  WHERE product_tax_id=tax_rate_id
  AND product_id=5306
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_product.php:1092
Execute time:0.000122 sec.
SELECT product_id, `jos_vm_product`.*
  FROM `jos_vm_product`
  WHERE `product_id`=5306
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_product.php:1626
Execute time:8.3E-5 sec.
SELECT tax_rate
  FROM jos_vm_product, jos_vm_tax_rate
  WHERE product_tax_id=tax_rate_id
  AND product_id=5306
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_product_files.php:667
Execute time:7.2E-5 sec.
SELECT *
  FROM `jos_vm_product_files`
  WHERE `file_product_id`=5306
  AND `file_is_image`=1
  AND `file_published`=1
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_product_files.php:669
Execute time:5.9E-5 sec.
SELECT product_parent_id
  FROM jos_vm_product
  WHERE product_id=5306
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_product_files.php:670
Execute time:6.5E-5 sec.
SELECT *
  FROM `jos_vm_product_files`
  WHERE `file_product_id`=0
  AND `file_is_image`=1
  AND `file_published`=1
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_product_files.php:678
Execute time:6.7E-5 sec.
SELECT *
  FROM `jos_vm_product_files`
  WHERE `file_product_id`=5306
  AND `file_is_image`=0
  AND `file_published`=1
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_product_files.php:680
Execute time:6.1E-5 sec.
SELECT product_parent_id
  FROM jos_vm_product
  WHERE product_id='5306'
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_product_files.php:683
Execute time:6.6E-5 sec.
SELECT *
  FROM `jos_vm_product_files`
  WHERE `file_product_id`=0
  AND `file_is_image`=0
  AND `file_published`=1
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_product.php:1058
Execute time:6.3E-5 sec.
SELECT `product_id`
  FROM `jos_vm_product_attribute_sku`
  WHERE `product_id`=5306
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_product.php:1063
Execute time:6.1E-5 sec.
SELECT `attribute`,`custom_attribute`
  FROM `jos_vm_product`
  WHERE `product_id`=5306
#
/administrator/components/com_virtuemart/classes/ps_database.php:120
/administrator/components/com_virtuemart/classes/ps_product.php:1092
Execute time:8.1E-5 sec.
SELECT product_id, `jos_vm_product`.*
  FROM `jos_vm_product`
  WHERE `product_id`=5306
« Последнее редактирование: 13.02.2010, 08:22:08 от oshaly »
*

pervoi

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: vm - столько косяков.....
« Ответ #7 : 13.02.2010, 11:06:34 »
 :o класс.
В оптимизации не силён, как вы оптимизируете запросы?
*

oshaly

  • Захожу иногда
  • 60
  • 0 / 0
Re: vm - столько косяков.....
« Ответ #8 : 13.02.2010, 14:40:19 »
книжек много написано :) + делаем индексы.
Данный запрос просится на мощную переделку. Но в текущем проекте пока переделывать не стала, установила кеш, добавила индексы, +гзипование страниц. Ну вроде чуток пошустрее стало.  Товаров около 20 000. Когда по 100 на странице - думает секунд 10 и выше. При открытии страницы товара тоже долго думает.
Закешированным страницам YSlow дает оценку Grade C   Overall performance score 71
Незакешированным (по 100 на странице) -- Grade D   Overall performance score 68   
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться