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

D-Nik Lubny

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Здравствуйте. Сайт на Joomla.
В админпанели есть страница с объявлением. На этой странице есть кнопка "Опубликовать". При нажатии на эту кнопку открывается стандартная страница добавления материала на сайт.
Нужно чтобы при нажатии на кнопку "Опубликовать" не просто открывалась страница публикации материала, но и некоторые поля в ней были уже заполнены (Заголовок, Текст материала, Категория)

Скрины этих двух страниц прилагаются.


Нужно с первой страницы взять "Заголовок" и перенести его в поле "Заголовок" второй страницы, поле "Рубрика" - в поле "Категория", поле "Оголошення" - в редактор текста.

Сейчас код кнопки "Опублікувати оголошення" следующий:

Код
<a href="index.php?option=com_content&task=article.add" target="_blank" class="btn btn-success"><?php echo JText::_('Опублікувати оголошення');?></a>

Фрагмент кода первой страницы (отсюда нужно выбрать поля):

Код
<!-- Begin Content -->

<div class="row-fluid">
<div class="span12">
<div id="system-message-container">
</div>

<div class="row-fluid">
<div class="row-fluid">
<div>
<div class="span6">
<h2>Объявление</h2>
</div>
<div class="span6">
<p class="text-right"><a href="/index.php?option=com_joomlyform&amp;view=form&amp;form=advertisement" class="text-right">Вернуться к списку</a></p>
</div>
</div>
<div>
<table id="myTable" class="table table-striped">
<tbody>
<tr><th>id:</th><td> 1</td></tr><tr><th>Дата:</th><td> 2018-03-15 16:09:00</td></tr><tr><th>Страница:</th><td> /1-podati-ogoloshennya</td></tr><tr><th>IP:</th><td> 1.1.1.62</td></tr><tr><th>ФІО:</th><td> Иванов Иван Иванович </td></tr><tr><th>Email:</th><td> vanooo@gmail.com</td></tr><tr><th>Телефон:</th><td> 0000000000</td></tr><tr><th>Заголовок:</th><td> Няня</td></tr><tr><th>Рубрика:</th><td> Пропоную роботу</td></tr><tr><th>Оголошення:</th><td> Потрібна відповідальна дівчина  (няня) для шестирічного здорового хлопчика. </td></tr><tr><th>К-сть слів:</th><td> 8</td></tr><tr><th>Дублировать в газету, или нет:</th><td> </td></tr> </tbody>
</table>

<p><a href="index.php?option=com_content&amp;task=article.add" target="_blank" class="btn btn-success">Опублікувати оголошення</a></p>

</div>
</div>
</div>

</div>
</div>
<!-- End Content -->
                  
Фрагмент кода второй страницы (здесь нужно вставить поля):

Код панели с заголовком
Код
<div class="control-label"><label id="jform_title-lbl" for="jform_title" class="hasTooltip required invalid" title="" data-original-title="<strong>Заголовок</strong>">
Заголовок<span class="star">&nbsp;*</span></label>
</div>

Код выбора категории
Код
<div class="chzn-container chzn-container-single chzn-with-drop chzn-container-active" style="width: 220px;" title="" id="jform_catid_chzn"><a class="chzn-single"><span>Без категорії</span><div><b></b></div></a><div class="chzn-drop"><div class="chzn-search"><input autocomplete="off" type="text"></div><ul class="chzn-results"><li class="active-result result-selected" style="" data-option-array-index="0">Без категорії</li><li class="active-result" style="" data-option-array-index="1">Новини</li><li class="active-result" style="" data-option-array-index="2">- Новини 2</li><li class="active-result" style="" data-option-array-index="3">- Новини 3</li><li class="active-result" style="" data-option-array-index="4">Оголошення</li><li class="active-result" style="" data-option-array-index="5">- Куплю</li><li class="active-result" style="" data-option-array-index="6">- Продам</li><li class="active-result" style="" data-option-array-index="7">- Обміняю</li><li class="active-result" style="" data-option-array-index="8">- Здам</li><li class="active-result" style="" data-option-array-index="9">- Шукаю</li><li class="active-result" style="" data-option-array-index="10">- Пропоную</li><li class="active-result" style="" data-option-array-index="11">- Інше</li><li class="active-result" style="" data-option-array-index="12">Інформація</li></ul></div></div>

Код редактора текста
Код
<div class="mceIframeContainer"><iframe id="jform_articletext_ifr" src="javascript:&quot;&quot;" allowtransparency="true" title="Область оформленного текстаНажмите ALT F10 для вызова панели инструменов. Нажмите ALT 0 для вызова справки." style="height: 387px;" frameborder="0"></iframe></div>
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Сколько должна стоить разработка сайта?

Автор Мария13

Ответов: 5
Просмотров: 744
Последний ответ 03.08.2022, 14:32:42
от web3.0
Простенький калькулятор одной функции на JS (не Joomla)

Автор Dorfman

Ответов: 10
Просмотров: 1119
Последний ответ 23.11.2020, 13:39:14
от sivers
Настройка сайта на шаблоне Vina Orion

Автор Proka

Ответов: 15
Просмотров: 1421
Последний ответ 04.08.2020, 17:00:46
от khan-alex
[РЕШЕНО] Скроллинг страницы вниз?

Автор warlocksp

Ответов: 3
Просмотров: 1010
Последний ответ 02.02.2020, 15:56:55
от warlocksp
На сайте страницы, которые я не создавал

Автор Андрей Купцов

Ответов: 0
Просмотров: 685
Последний ответ 18.12.2019, 10:22:27
от Андрей Купцов