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

Alex_gs

  • Захожу иногда
  • 161
  • 2 / 0
Есть много расширений, модули которых самостоятельно поддерживают многоязычность.

Соответственно вопрос - как сделать заголовок модуля тоже многоязычным, чтобы не дублировать модули (2 или 3-х язычный сейчас норма у нас).
Дело в том, что следующий проект будет на 4 языка добавят польский. И даже захотели и немецкий...

Возможно другое решение.
Есть ли модуль, который бы выводил 1 языковую константу. Я бы ставил его перед функциональными модулями.
*

sivers

  • Живу я здесь
  • 2596
  • 360 / 0
Re: Языковая константа в Module Header
« Ответ #1 : 29.07.2022, 23:48:40 »
Проще всего, пожалуй, будет поставить в настройках модуля "Стиль модуля" = none, тем самым отключится стандартный вывод заголовка и обрамляющего блока. И выбрать переназначенный макет, в котором самостоятельно выводить заголовок через JText::_() и обрамляющий блок (если нужен).

Того же эффекта можно достичь, если добавить соотв. стиль модуля через переназначение или добавление нового (если это вам проще).
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Akeksandr

  • Захожу иногда
  • 396
  • 12 / 0
Re: Языковая константа в Module Header
« Ответ #2 : 30.07.2022, 08:44:23 »
Почитайте ещё советы с темы. Мне sivers очень помог советом и я сделал такое.
Перевод заголовков модулей?
*

Alex_gs

  • Захожу иногда
  • 161
  • 2 / 0
Re: Языковая константа в Module Header
« Ответ #3 : 03.08.2022, 12:03:41 »
С переопределением модулей и JText понятно. Я так делаю в критичных моментах. Title не менял пока.

В основном внутри php бывают моменты в англоязычных модулях, когда строки вывода модуля задаются при настройке модуля в админке.
Обычно добавляю сравнение начала строки на "MOD" ну и константы так называю. Т.е. вывожу или обычный текст или константу (если начало строки MOD).

Где выводится module title?
Пробовал поменять в \templates\{template}\html\modules.php .
Тут - echo '<' . $headerTag . ' class="' . $headerClass . '">' . $module->title . '</' . $headerTag . '>';
Не работает.
« Последнее редактирование: 03.08.2022, 12:36:10 от Alex_gs »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Привязан header ко всем языкам

Автор records44

Ответов: 0
Просмотров: 403
Последний ответ 11.07.2023, 17:00:38
от records44
advanced module manager в J4 показывает все модули на всех страницах

Автор androv77

Ответов: 2
Просмотров: 722
Последний ответ 30.09.2022, 13:57:50
от androv77