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

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Привет, кто в теме, есть вопрос по совместимости интерфейса в админке, есть какие гайды по переходу, или полностью надо перепиливать?
Пока такой вариант ну так себе выглядит  и не работает(
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Вопрос по верстке админки
« Ответ #1 : 23.09.2021, 15:31:03 »
Сам в октябре начну это проходить, гайдов нет - смотреть исходники. Да и тяжело это гайдом описать...
Может попробую какие-то основные вещи зафиксировать.
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Re: Вопрос по верстке админки
« Ответ #2 : 23.09.2021, 17:30:20 »
Я просто напросто сделал свой MVC и свои стили. Теперь можно ставить на любую CMS без большого напильника.

В целом, существенной разницы нет. Несколько функций J3 убыло и были заменены. Самая большая проблема - админ меню. Теперь оно не гибкое, жестко прописывается при установке расширения, и манипуляции при необходимости, только через \JFactory::getDBO(). А \JHtmlSidebar в концепт J4 не очень вписывается.

В остальном что касается перехода, по сути, между J3 и J4 только в CSS разница.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

ShopES

  • Захожу иногда
  • 426
  • 11 / 0
Re: Вопрос по верстке админки
« Ответ #3 : 23.09.2021, 18:11:03 »
по факту нет дропдауна это минус
пример те же материалы
раньше правишь материал.
надо глянуть в меню категорий навел мышкой кликнул в новом окне и готово
теперь хрен
одним словом меню минус
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Re: Вопрос по верстке админки
« Ответ #6 : 28.09.2021, 21:02:17 »
Call to undefined method Joomla\CMS\HTML\HTMLHelper::startTabSet() - да и других методов не видно что-то
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Вопрос по верстке админки
« Ответ #7 : 29.09.2021, 09:50:09 »
Call to undefined method Joomla\CMS\HTML\HTMLHelper::startTabSet() - да и других методов не видно что-то
Попробуй так

Код
\Joomla\CMS\HTML\HTMLHelper::_('bootstrap.startTabSet', '#selector', [])
selector - селектор идентификатора для панели вкладок (без #).
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Re: Вопрос по верстке админки
« Ответ #8 : 29.09.2021, 10:05:42 »
Попробуй так

Код
\Joomla\CMS\HTML\HTMLHelper::_('bootstrap.startTabSet', '#selector', [])
selector - селектор идентификатора для панели вкладок (без #).
Я так и делаю) просто решил попробовать разные методы.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Вопрос по верстке админки
« Ответ #9 : 29.09.2021, 14:13:23 »
Хмм, ну по факту в классе метод есть:

public static function startTabSet($selector = 'myTab', $params = []) :string

https://github.com/joomla/joomla-cms/blob/4.0-dev/libraries/src/HTML/Helpers/Bootstrap.php#L809

Тогда так получется:
Код
\Joomla\CMS\HTML\Helpers\Bootstrap::startTabSet()
Хотя это неправильно, нет кэширования вызова. HTMLHelper кэширует себе все функции.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Вопрос по верстке админки
« Ответ #10 : 29.09.2021, 14:21:57 »
Кстати, для админки используется HTMLHelper::_('uitab.startTabSet'). Но такое только в четверке походу и это не Бутстрап  ^-^

Вот поиск по коду:
https://github.com/joomla/joomla-cms/search?q=startTabSet%28%29

Код
<?php echo HTMLHelper::_('uitab.startTabSet', 'myTab', ['active' => 'description', 'recall' => true, 'breakpoint' => 768]); ?>
    <?php echo HTMLHelper::_('uitab.addTab', 'myTab', 'description', Text::_('COM_TEMPLATES_TAB_DESCRIPTION')); ?>
    <div class="card">
        <div class="card-body">
            <?php echo $this->loadTemplate('description'); ?>
        </div>
    </div>
    <?php echo HTMLHelper::_('uitab.endTab'); ?>
<?php echo HTMLHelper::_('uitab.endTabSet'); ?>

https://github.com/joomla/joomla-cms/blob/4.0-dev/libraries/src/HTML/Helpers/UiTab.php
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Re: Вопрос по верстке админки
« Ответ #11 : 29.09.2021, 15:45:56 »
Может пример есть какой для удобного использования разрешений? Там тоже не бутстрап использовали вроде как)
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Вопрос по верстке админки
« Ответ #12 : 29.09.2021, 17:00:36 »
Может пример есть какой для удобного использования разрешений? Там тоже не бутстрап использовали вроде как)
А откуда его взять? ;)
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Re: Вопрос по верстке админки
« Ответ #13 : 29.09.2021, 20:39:26 »
LayoutHelper::render('joomla.content.options_default', $this) по сути это
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вопрос по шаблону Protostar для Joomla 5

Автор Mick_20

Ответов: 2
Просмотров: 735
Последний ответ 06.03.2025, 12:24:37
от web1
Вопрос про макет отображения Блога Категорий - в меню

Автор Lann

Ответов: 7
Просмотров: 931
Последний ответ 31.01.2025, 16:12:36
от Lann
Не могу из Joomla админки отправить тестовое сообщение

Автор androv77

Ответов: 0
Просмотров: 626
Последний ответ 03.12.2024, 20:25:36
от androv77
Вопрос по пункту меню Блог категории и выводу изображений

Автор Serebro2009

Ответов: 6
Просмотров: 1220
Последний ответ 26.07.2024, 22:24:37
от Vastriet
Вопрос по helix и русским символам в unicode

Автор Magnum79

Ответов: 0
Просмотров: 678
Последний ответ 12.06.2024, 13:39:12
от Magnum79