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

schel4ok

  • Захожу иногда
  • 219
  • 4 / 1
мне нужно создать альтернативный макет категории для вывода каталога товаров в виде НАЗВАНИЕ - КАРТИНКА
делаю все как написано во всех инструкциях:
1) создаю каталог templates/protostar/html/com_content/category

2) из каталога components/com_content/views/category/tmpl копирую файлы
blog.php
blog_items.php
blog_children.php
blog_links.php

3) переименовываю файлы
furniture.php
furniture_items.php
furniture_children.php
furniture_links.php

4) захожу в админке в настройки категории и выбираю альтернативный макет furniture
обновляю страницу и получаю В данной категории нет материалов.


похоже что все эти инструкции сырые и внутри самих файлах надо что-то редактировать
никаких файлов XML не копировал (копировал только те файлы, которые перечислил)
пункт меню для данной категории не создавал
*

schel4ok

  • Захожу иногда
  • 219
  • 4 / 1
если копирую файл default.php и переименовываю, то все работает
но в этом случае я получаю альтернативный макет списка категории и не могу вставить в него картинку intro_image

вот эта конструкция тут не работает (нашел это где-то на форуме)
Код
<?php $images = json_decode($item->images); ?>
<img src="<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>" />

и эта тоже не работает (это выдрал из макета блога)
Код
<?php echo JLayoutHelper::render('joomla.content.intro_image', $this->item); ?>
*

AnimalInstinct

  • Осваиваюсь на форуме
  • 36
  • 1 / 0
Тоже не могу никак разобраться, делаю файл альтернативного макета, выбираю его, и никакого эффекта, все равно он использует стандартный blog.php
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Помимо php-файлов, там есть еще и xml-файл, который тоже необходимо переопределить: blog.xml => furniture.xml
Именно xml-файл говорит J о существовании вашего альт.макета и возможности его использовать.
В переопределенном xml-файле в секции layout меняем выделенное:

   <layout title="COM_CONTENT_CATEGORY_VIEW_BLOG_TITLE" option="COM_CONTENT_CATEGORY_VIEW_BLOG_OPTION">
      <help key = "JHELP_MENUS_MENU_ITEM_ARTICLE_CATEGORY_BLOG" />
      <message>
         <![CDATA[COM_CONTENT_CATEGORY_VIEW_BLOG_DESC]]>
      </message>
   </layout>

Первое - наименование (заголовок) вашего альтернативного макета, второе - его описание.

Секция <fields name="request"> служит для указания связанному пункту меню дополнительных параметров, ее лучше не трогать, удалять нельзя.

Секция <fields name="params"> - это параметры макета. Чтобы добавить свои параметры, придется править весь компонент вывода контента, в т.ч. его непереопределяемые части, поэтому лучше этого не делать (иначе вы не сможете корректно обновить вашу J, не потеряв всех ваших правок). Но модно удалить те параметры, которые вы хотите не будут поддерживаться вашим альт.макетом, или те, значения которых всегда гарантированно (для вашего частного случая) будут использоваться из общих параметров компонентов, т.е. значения по умолчанию. Именно те параметры, которые здесь описаны, будут показаны в пункте меню на дополнительных вкладках.

PS: топик в FAQ.
« Последнее редактирование: 06.04.2015, 09:21:49 от AlekVolsk »
*

master-smeta

  • Захожу иногда
  • 298
  • 10 / 0
У меня тоже не работает
Сделал те же шаги, что и ТС + переопределил .xml файл. Т.е. у меня в папке templates/shablon/html/com_content/category лежит 5 фалов
wiki.php
wiki.xml
wiki_items.php
wiki_children.php
wiki_links.php

при этом, после переопределения .xml файла, в параметрах категории пропадают все макеты "из шаблона", остаются только вариант "из общих настроек" и "из компонента", т.е. своего макета я даже и не вижу. Если .xml файл удалить, или переименовать, то в параметрах категории появляется мой макет, но он не работает.

Может я что-то забыл?

ps Joomla 3.4.2

ps2  Всё, разобрался. Оказывается теперь в меню нужно выбирать не блог категории, а "мой появившийся макет" :)
« Последнее редактирование: 01.07.2015, 17:16:09 от master-smeta »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

offcanvas не работает с joomshoping

Автор kibervolk

Ответов: 5
Просмотров: 11243
Последний ответ 01.05.2022, 09:29:57
от kibervolk
После добавления контента сайт не работает

Автор Эллочка

Ответов: 11
Просмотров: 6540
Последний ответ 18.03.2021, 16:49:13
от morskoj
Категории как в joomla1.5 при добавлении/редактировании материала

Автор virtucom

Ответов: 1
Просмотров: 1124
Последний ответ 11.02.2021, 17:38:28
от virtucom
Youtheme не работает своя анимация

Автор Lemonez

Ответов: 0
Просмотров: 703
Последний ответ 16.01.2021, 07:13:34
от Lemonez
Не работает модальное окно

Автор Lemonez

Ответов: 2
Просмотров: 811
Последний ответ 27.11.2020, 11:08:16
от draff