Новости 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 Ответов
  • 3233 Просмотров
*

Lovrentiy

  • Захожу иногда
  • 97
  • 0 / 2
Доброго дня, форумчане!

Сломал голову, правил шаблон и залез в оформление статьи, в итоге вывод времени поправил, добавил стили, по глупости не перенес в HTML шаблона.

В итоге вначале всё работало, потом (вероятно я успел сменить отображение с материала на блог материалов) стала вылетать ошибка:

Спойлер
[свернуть]

Поясните мне, который в танке:
1. Какой файл отвечает за вывод артикулов (где отображается автор, дата создания, дата публикации и т.д.) - тут? домен\components\com_content\views\article\tmpl\default.php
2. Как отобразить дату опубликования в шаблоне вывода материала (например в моем случае под в линию с заголовком)?

Код: php
<?php if ($params->get('show_title')) : ?>
<h2 itemprop="name" class="left_h2">
<?php if ($params->get('link_titles') && $params->get('access-view')) : ?>
<a href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($displayData->slug, $displayData->catid)); ?>" itemprop="url">
<?php echo $this->escape($displayData->title); ?></a>
<?php else : ?>
<?php echo $this->escape($displayData->title); ?>
<?php endif; ?>
</h2>
                 <div class="publish_time">
<span class="icon-calendar"></span>
                    [color=red][font=Verdana]Тут нужно вывести дату[/font][/color]
</div>
<?php endif; ?>

Огромное спасибо всем откликнувшимся!
*

fbr

  • Завсегдатай
  • 1681
  • 210 / 7
1. да, этот файл
2. для j3.3.6 - в этом файле,  строки 117-142, выводятся даты, выбирайте..
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
1. Делайте переопределения
2. Если вы сменили материал на блог категории, то за вывод материала отвечает уже другой файл: \components\com_content\views\category\tmpl\blog_item.php
*

Lovrentiy

  • Захожу иногда
  • 97
  • 0 / 2
Спасибо за Ваши ответы и ссылки.

Открываю blog_item.php, вижу там следующий код:
Код: php
<?php echo JLayoutHelper::render('joomla.content.blog_style_default_item_title', $this->item); ?>

Я так понимаю, он намекает, что вывод заголовка и дополнительной информации определен в layouts/joomla/content/blog_style_default_item_title.php

и действительно правки в этом файле производят изменения.


ААААА я запутался. Вернул исходные значения в файлы, и теперь активно туплю.  В layouts/joomla/content/blog_style_default_item_title.php, есть заголовок <h2>, а времени и других ссылок нет, они, если я правильно понял, находятся в com_content/views/article/tmpl/default.php, разместить код вывода времени непосредственно в blog_style_default_item_title.php у меня не выходит, я плохо понимаю какая переменная хранит данные и как конкретно выводится дата публикации, а в default.php почему то не вижу что бы изменения применялись....
оба файла лежат как и указаны выше в тексте в папке с шаблоном в папке HTML
*

Lovrentiy

  • Захожу иногда
  • 97
  • 0 / 2
Победил.

Действительно все объявления блока категорий лежат в blog_item.php, из него идёт ссылка на block.php, а оттуда уже на разные файлы в зависимости от того что нужно, в моем случае на publish_date.php.

Все файлы поправил, всё работает как надо. Всем спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Разобраться с областью компонента в шаблоне

Автор gorbi_U

Ответов: 7
Просмотров: 2227
Последний ответ 04.02.2023, 10:45:14
от sivers
При обновлении плагина helix3 слетает сендвич в мобильном шаблоне

Автор gorbi_U

Ответов: 0
Просмотров: 1611
Последний ответ 25.01.2023, 10:55:44
от gorbi_U
Как сделать вывод ссылок в обратном порядке (com_weblinks)?

Автор Slava77

Ответов: 0
Просмотров: 850
Последний ответ 24.11.2022, 16:42:09
от Slava77
Вывод материалов блогом с фильтром по меткам

Автор muzzy76

Ответов: 7
Просмотров: 1339
Последний ответ 06.10.2022, 13:57:56
от muzzy76
Криво выводятся `title` & `data-original-title` в шаблоне

Автор Аня

Ответов: 2
Просмотров: 2218
Последний ответ 16.04.2022, 23:44:10
от onniby