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

webusver

  • Захожу иногда
  • 77
  • 9 / 0
Есть замечательный и рабочий гайд по добавлению собственного поля для материала
http://joomlaforum.ru/index.php/topic,40455.0.html

В результате этого гайда Вы сможете получить поле типа input в которое можно вставлять текст. Немного поупражнявшись, можно сделать радио-кнопки, флажки и т.п.

Но самое "вкусное" поле - это поле по добавлению изображения, которое бы не было частью верстки материала, а было бы его отдельным свойством, полем...

Причём, что обидно, для Разделов и Категорий можно выбрать изображение с сервера, а для Материалов - нет. Ну ладно там с масштабированием превьюшек, возможностью загрузки файла с локального компьютера... Была бы хоть возможность просто выбрать изображения с сервера, как это делается для Разделов и Категорий.

В итоге некоторого ковыряния admin.content.html.php и admin.categories.html.php с попыткой перенести
Код
<tr>
<td class="key">
<label for="image">
<?php echo JText::_( 'Image' ); ?>:
</label>
</td>
<td>
<?php echo $lists['image']; ?>
</td>
</tr>
<tr>
<td class="key">
<label for="image_position">
<?php echo JText::_( 'Image Position' ); ?>:
</label>
</td>
<td>
<?php echo $lists['image_position']; ?>
</td>
</tr>

из файла категорий в файл контента, эти элементы не отобразились.

Может ли столбец из таблицы БД относящийся к контенту иметь заголовок image или image_position, тогда как такие заголовки уже используются в таблицах БД, относящихся к категориям?

Где формируются эти "$lists"? Очень хочется перекинуть селектор по выбору изображения, используемый для Категорий, для использования в Материалах.

PS: K2 - это "не наш путь". И без jSebloda тоже желательно обойтись. Другие CMS не предлагать...
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
ставь form2content
компонент использует стандартный компонент материалов, расширяя его функционал.
фактически, ты сейчас хочешь его переизобрести )
*

webusver

  • Захожу иногда
  • 77
  • 9 / 0
ставь form2content
компонент использует стандартный компонент материалов, расширяя его функционал.
фактически, ты сейчас хочешь его переизобрести )
Поставил, потестил Lite версию.
На практике я вижу, что могу выбрать из двух предложенных шаблонов, могу создать новый тип материала... Здесь сразу вопрос, этот новый тип материала можно использовать для стандартных модулей типа "Вывод последних новостей", для многих сторонних модулей показа новостей на главной странице? Т.е. будут ли материалы иметь стандартный джумловский id или у них будет свой id (как в К2).
Создал поле типа Image  оно немного не того вида - оно предлагает загрузить картинку с сервера а не выбрать из тех что уже есть на сервере.
А где редактировать текст? В общем редакторе? Открыл общий редатктор, так там картинка где-то посередине какого-то текста...

Когда я передам сайт заказчику, где он будет создавать общее оформление материала?  Картинку в form2content, а текст где?
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
на практике надо осваивать компонент. лично я пользуюсь FLEXIcontent когда мне нужна гибкость, form2content потестил-понравилось, но понял, что хочу большего
*

webusver

  • Захожу иногда
  • 77
  • 9 / 0
на практике надо осваивать компонент. лично я пользуюсь FLEXIcontent когда мне нужна гибкость, form2content потестил-понравилось, но понял, что хочу большего
Но FLEXIcontent это такая же НАДстройка как типа К2, а не интеграция типа jSeblod? jSeblod мне поначалу понравился правильностью своей идеи, но потом, оказалось, что он как-бы незакончен... для каких-то полей так и висит coming soon... Уныло, плюс масса не особо нужных настроек. К2 же прост и логичен и дает как-раз то о чем просили. Вот только идея - неправильная :) Ведь пользователю остается меню, в котором можно создавать обычные материалы, тогда как ему надо создавать материалы К2. Получается, что при внедрении К2 надо отрубать возможность добавления обычных материалов.
FLEXIcontent честно говоря не пробовал, чем он лучше К2?
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
дело не в том, что "лучше", а в том, что подходит
во флекси мне нравится идея с полями, которые можно обрамлять спецсинтаксиовм.
в итоге я не использую встроенное поле "image" а просто создаю тектсовое поле в которое пишу путь к картинке или папке с картинкой.
но это фича для продвинутых юзеров, боюсь. во флекси тоже просят добавить поле с выбором картинок на хостинге и там тоже на самом интересном месте возник застой..
так что form2content видится лучшим решением.
либо zoo2, как активно развиваемый. имхо, прискрцчивать поля к стандартному компоненту-задача неблагодарная и тупиковая. будет в итоге у тебя "недозоо_чисто_для_меня" )
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как добавить статью в созданный новый раздел (меню)

Автор Lzrv

Ответов: 1
Просмотров: 1641
Последний ответ 16.11.2017, 09:00:15
от Lzrv
Изображение-ссылка в материале

Автор Omedius

Ответов: 4
Просмотров: 2493
Последний ответ 02.07.2017, 21:11:10
от vipiusss
Модуль "Случайное изображение"

Автор irina 4444

Ответов: 16
Просмотров: 8577
Последний ответ 26.05.2017, 12:47:56
от gvg
Как добавить новый модуль?

Автор kirill-juk

Ответов: 1
Просмотров: 1525
Последний ответ 02.02.2016, 22:11:41
от vipiusss
Меню привязанное к материалу

Автор Cheese

Ответов: 3
Просмотров: 2166
Последний ответ 29.12.2015, 17:28:53
от voland