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

inom

  • Осваиваюсь на форуме
  • 16
  • 3 / 0
Может кто подскажет как выравнить картинку элемента в меню Joomla! сверху (есть ли например стороний модуль или как отредактировать стандартный)

Хочется вот так:

 К а р т и н ка        К а р т и н ка          К а р т и н ка
     Надпись               Надпись                  Надпись
*

inom

  • Осваиваюсь на форуме
  • 16
  • 3 / 0
Решил добавив div для ссылки и заключил картинку и ссылку меню в ячейку... (modules\mod_mainmenu\legacy.php)
*

Sergvideo

  • Осваиваюсь на форуме
  • 41
  • 3 / 0
А можно подробнее, кусоу кода, где производились манипуляции. Очень надо.
Спасибо заранее. +уже
*

inom

  • Осваиваюсь на форуме
  • 16
  • 3 / 0
Сейчас точно не скажу что надо делать, но вроде надо так. 1 в настройке модуля меню ставим legacy гориз. список. и в modules\mod_mainmenu\legacy.php ищем это:

Код
	switch ($mitem->browserNav)
{
// cases are slightly different
case 1 :
// open in a new window
$txt = '<a href="' . $mitem->url . '" target="_blank" class="' . $menuclass . '" ' . $id . '>' . $mitem->name . '</a>';
break;

case 2 :
// open in a popup window
$txt = "<a href=\"#\" onclick=\"javascript: window.open('" . $mitem->url . "', '', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=550'); return false\" class=\"$menuclass\" " . $id . ">" . $mitem->name . "</a>\n";
break;

case 3 :
// don't link it
$txt = '<span class="' . $menuclass . '" ' . $id . '>' . $mitem->name . '</span>';
break;

default : // formerly case 2
// open in parent window
$txt = '<a href="' . $mitem->url . '" class="' . $menuclass . '" ' . $id . '>' . $mitem->name . '</a>';
break;
}

if ($params->get('menu_images'))
{
$menu_params = new stdClass();
$menu_params = new JParameter($mitem->params);

$menu_image = $menu_params->def('menu_image', -1);
if (($menu_image <> '-1') && $menu_image) {
$image = '<img src="'.JURI::base(true).'/images/stories/' . $menu_image . '" border="0" alt="' . $mitem->name . '"/>';
if ($params->get('menu_images_align')) {
$txt = $txt . ' ' . $image;
} else {
$txt = $image . ' ' . $txt;
}
}
}

return $txt;
}

Вот за вывод текста с сылкой и картинкой отвечает переменная $txt, выше там условия для вывода...

Вроде как можно добавить доп. опцию и поменять кусок кода

Код

if ($params->get('menu_with_image')) {
$txt = $image . '<br /> ' . $txt;
}
elseif ($params->get('menu_images_align')) {
$txt = $txt . ' ' . $image;
} else {
$txt = $image . ' ' . $txt;
}

в mod_mainmenu.xml для menu_with_image ставим

      <param name="menu_with_image" type="radio" default="1" label="menu_with_image" description="menu_with_image">
         <option value="0">No</option>
         <option value="1">Yes</option>
      </param>

Не забываем в настройке модуля применить (главное чтобы в params.ini появился параметр) и для стиля меню наверное надо задать text-align:center;

Пишу по памяти не факт что сработает =)
*

inom

  • Осваиваюсь на форуме
  • 16
  • 3 / 0
Там я не помню как div-ы генерируются но главное добится приблизительно такого вывода:

Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>Menu</title>
<style type="text/css">
.menu div{
text-align:center;
float:left;
padding-right:8px;
}
</style>
</head>
<body>
<div class="menu">
<div>
<img src="http://joomlaforum.ru/Themes/default/images/useron.gif" alt="" /><br />
Menu 1
</div>
<div>
<img src="http://joomlaforum.ru/Themes/default/images/useron.gif" alt="" /><br />
Menu 2
</div>
<div>
<img src="http://joomlaforum.ru/Themes/default/images/useron.gif" alt="" /><br />
Menu 3
</div>
<div>
<img src="http://joomlaforum.ru/Themes/default/images/useron.gif" alt="" /><br />
Menu 4
</div>
</div>
</body>
</html>

+ Этот legacy.php можно было запихать в папку HTML шаблона.
*

Sergvideo

  • Осваиваюсь на форуме
  • 41
  • 3 / 0
Спасибо большое буду пробовать.
*

Sergvideo

  • Осваиваюсь на форуме
  • 41
  • 3 / 0
Не получается(((
*

akondr

  • Захожу иногда
  • 112
  • 0 / 0
Кто еще пробовал, у кого вышло подобное?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

убрать из меню заголовки h3

Автор nexter

Ответов: 19
Просмотров: 8692
Последний ответ 03.02.2020, 18:49:47
от durte
При добавлении нового пункта меню не отображается содержимое

Автор Denko

Ответов: 2
Просмотров: 3815
Последний ответ 16.01.2020, 18:40:55
от Denko
Не нажимается пункт меню на мобильной версии

Автор Sensession

Ответов: 7
Просмотров: 5466
Последний ответ 04.01.2020, 16:45:27
от xpank
Не отображаются пункты в меню

Автор physic

Ответов: 20
Просмотров: 23939
Последний ответ 20.09.2019, 16:54:01
от beliyadm
Как в ARI Ext Menu добиться работы параметра "Показать в меню"?

Автор vasmed

Ответов: 1
Просмотров: 4163
Последний ответ 01.03.2019, 11:12:18
от vasmed