Новости Joomla

SW JProjects v.2.6.0 - компонент каталога расширений для Joomla

👩‍💻 SW JProjects v.2.6.0 - компонент каталога расширений для Joomla.Компонент позволяет сделать свой мини-Joomla Extensions Directory - каталог расширений для CMS (не только для Joomla) или файлов. Есть возможность скачивания по лицензионным ключам.👩‍💻 v.2.6.0. Что нового?Этот релиз прежде всего связан с SEO и AI-оптимизацией. - Микроразметка Schema.org.Добавлен плагин микроразметки Schema.org для сущностей компонента. Для списков используется ListItem, для страницы проекта и версии - SoftwareApplication, для страницы документации - TechArticle. Плагин группы schemaorg в отличие от стандартных плагинов заполняет данные автоматически, но встраивает данные в граф сущностей микроразметки Joomla. Также исправляется одна ошибка генерируемой ядром микроразметки в зоне ответственности компонента.- Улучшение поиска по ключам. В панели администратора в списке ключей теперь можно искать по номеру заказа, email, домену, содержимому примечания к ключу.- Список ключей в админке. В списке ключей в панели администратора добавлен вывод домена и примечания- Поиск в списке проектов. Поиск в списке проектов в панели администратора стал более точным. Из полей для поиска убраны лишние поля.Компонент работает на Joomla 6 без включённого плагина обратной совместимости.Страница расширения и скачатьGitHub расширения.Joomla Extensions Directory#joomla #расширения

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

👩‍💻 Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях. На старте его сайт на Joomla 3 вообще не смог обновиться на Joomla 5. Пришлось делать экспорт/импорт материалов. Проделав всё это он запустил-таки этот объём данных на Joomla 5. Тестовый скрипт грузил 200 материалов из этого объёма всего за 94 секунды ))) А главная страница с категориями грузилась 20 секунд. Добавив индекс для таблицы #__content

CREATE INDEX idx_catid_state ON #__content (catid, state);
он сократил время загрузки категорий до 1 секунды. Затем наш герой решил поковырять SQL-запрос в ArticleModel, который отвечает за выборку материалов. И решил заменить тип JOIN на STRAIGHT_JOIN для категорий.
// ->from($db->quoteName('#__content', 'a'))->from(    $db->quoteName('#__content', 'a')    . ' STRAIGHT_JOIN ' . $db->quoteName('#__categories', 'c')    . ' ON ' . $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))// ->join('LEFT', $db->quoteName('#__categories', 'c'), $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))
Что сократило загрузку 200 материалов из 150к с 94 секунд до 5. К слову сказать, боевой сайт на Joomla 3 крутится на 12CPU 64GB рамы. А все манипуляции с кодом он делает на базовом 1CPU 1GB сервере и замеры скорости даны именно для базового сервера. Но это всё в дискуссии, хотя в идеале должно вылиться в Pull Requests. Мы - Open Source сообщество, где никто никому ничего не должен. Джунгли. Но человек ищет пути оптимизации Joomla и предлагает решения. Если оказать поддержку и предложить помощь хотя бы с тестированием самых разнообразных сценариев, то возможно эти улучшения смогут войти в ядро. Пусть не быстро, пусть через несколько лет, пусть не все, но войдут. Достаточно предложить руку помощи и приложить немного усилий.
Дискуссию на GitHub можно почитать здесь.@joomlafeed#joomla #community #php

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

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Всем привет!
Возможно кто-то такое уже делал.
В блоге категории хотелось бы вывести значение одного из дополнительных полей (custom fields) каждого материала. Я такое уже делал многократно в Joomla 3.X с помощью запроса к базе данных. Очень удручает этот способ. Вот решил узнать, может в последних версиях движка появилась возможность это сделать красиво, с помощью нативных методов Joomla.

Заранее спасибо!
« Последнее редактирование: 05.03.2025, 14:43:24 от goga_pgasovav »
*

sivers

  • Живу я здесь
  • 2596
  • 360 / 0
Так писали ж и не раз.
Код
use Joomla\Component\Fields\Administrator\Helper\FieldsHelper;
...
$fields = FieldsHelper::getFields('com_content.article', $article, true);

Где $article - это ваш материал. В цикле он может называться $item.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
sivers, вы мне уже помогали с подобной задачей для вывода подобной информации в модулях!
За что вам в очередной раз низкий поклон. Я думал, что каким-то особенным образом это делается в блоге категории, а оказалось, что практически идентично!

В итоге, получается нечто подобное:

Код
use Joomla\Component\Fields\Administrator\Helper\FieldsHelper;
$customFields = FieldsHelper::getFields('com_content.article', $this->item, true);
$rawValues = array_column($customFields, 'rawvalue', 'name');
print_r($rawValues);
Т.е. в данном случае ключевое - $this->item.

Я тогда сделал всё немного другим способом, используя цикл (foreach ($customFields as $customField) { ... и так далее).
Буду благодарен, если вы направите на верный путь, подсказав, как именно вывести значение одного поля по его имени, используя именно ваш код. ::)
Для общего развития и образования так сказать!
*

sivers

  • Живу я здесь
  • 2596
  • 360 / 0
Для начала желательно посмотреть через print_r($this->item); (в цикле) нет ли в этих объектах изначально данных из доп.полей. Чтоб не читать их лишний раз из базы.

как именно вывести значение одного поля по его имени
Ну так сперва получить значения полей через array_column, потом вывести значение одного поля echo $rawValues['field_name']

Читать отдельные поля из базы хелпер полей не умеет. Только все разом. Если хотите читать только одно поле, тогда запросом читайте значение одного поля для всех материалов из $this->items сразу. Наиболее экономичный вариант получится.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
sivers, в очередной раз благодарю за подсказки и оптимальный вариант решения задачи!
Итоговый код:

Код
use Joomla\Component\Fields\Administrator\Helper\FieldsHelper;
$customFields = FieldsHelper::getFields('com_content.article', $this->item, true);
$rawValues = array_column($customFields, 'rawvalue', 'name'); /* "чистое" значение, в том виде, в котором оно хранится в БД */
$values = array_column($customFields, 'value', 'name'); /* преобразованное значение */
echo $rawValues['field_name'];
echo $values['field_name'];
Где field_name - имя вашего поля.

Для тех, кто не знает в чём отличие между rawvalue и value, поясню на примере поля, в котором хранится изображение.

rawvalue:
Код
/images/your_image.jpg
value:
Код
<img src="/images/your_image.jpg" alt="">
« Последнее редактирование: 05.03.2025, 14:43:06 от goga_pgasovav »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Откуда берётся h1 для категории?

Автор creative3d

Ответов: 2
Просмотров: 148
Последний ответ 13.11.2025, 12:24:59
от creative3d
Ошибка БД при создании материала

Автор kunsaid

Ответов: 6
Просмотров: 1567
Последний ответ 29.10.2025, 19:36:49
от artem1977gri
Как расположить заголовок материала в под фото в модуле?

Автор sergspb

Ответов: 6
Просмотров: 679
Последний ответ 02.10.2025, 19:18:18
от fbr
Получение объектов из материала(статьи) по ее id

Автор muzzy76

Ответов: 2
Просмотров: 743
Последний ответ 05.07.2025, 10:33:26
от muzzy76
Количество просмотров материала. Реально ли оно?

Автор kysin

Ответов: 3
Просмотров: 945
Последний ответ 21.05.2025, 12:17:07
от wishlight