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

Striker _Dev

  • Новичок
  • 7
  • 0 / 0
Реализация: при переходе на страницу подсвечивается соответствующий пункт меню.

Изначально у меня было свое меню, созданное списком и с помощью ассоциативного массива php я реализовал, что когда пользователь кликнет на элементе меню, то пункт меняет вид (изменив css) и так и остается подсвеченным, говорящий о том, в каком пункте меню находится юзер.

Далее я перешел на меню joomla, и теперь возник вопрос, как можно реализовать вышеописанное действие с подсвеченным пунктом меню?
Какой класс отвечает в joomla 1.5  за элементы меню и как к ним можно обратиться?

Буду очень благодарен за ответы.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
выделение текущего пункта меню уже существует в стандартном модуле mainmenu и большинстве сторонних. Изучите структуру выводимого хтмл, там должны быть классы active && current для активного пункта меню
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Striker _Dev

  • Новичок
  • 7
  • 0 / 0
<ul class="menu"><li id="current" class="active item1"><a href="http://www.###.com/"><span>Home</span></a></li><li class="item24"><a href="http://www###.com/services.html"><span>Services</span></a></li><li class="item25"><a href="http://www.###.com/component/option,com_alfcontact/Itemid,25/"><span>Order</span></a></li><li class="item26"><a href="http://www.###.com/contacts.html"><span>Contacts</span></a></li></ul>

Что посоветуете, какие дальнейшие действия предпринять?
« Последнее редактирование: 24.05.2009, 23:34:41 от Striker _Dev »
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
в стилях шаблона описывать li#current {} или li.active {}
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Striker _Dev

  • Новичок
  • 7
  • 0 / 0
Спасибо, ясно.
Еще один вопрос.
Сейчас у меня изменяется внешний вид меню сл способом:
  <div class="LBContent">
           <jdoc:include type="modules" name="left" style="-3" />
 </div>

т.е. стиль описывается в LBContent и распространяется на список со ссылками.
Но я хотел бы решить это через суффикс
Т.е. в коде у меня будет просто:
           <jdoc:include type="modules" name="left" style="-3" />
Для этого я захожу в админке joomla в модуль mainmenu и меняю суффикс:
Menu Class Suffix    _menu
Module Class Suffix _menu

В css

Прописываю
.moduletable_menu{
/*описываю стиль*/
}

Но ничего не меняется, что следует изменить или дополнить?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
можно задавать суффикс не для модуля, а для меню (ID Меню в расширенных параметрах) и выводить меню списком, тогда будет вот такая структура
ul#указанный_суффикс li a {}
то есть задать суффикс для UL и дальше работать с наследованием классов в CSS
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

elph

  • Новичок
  • 6
  • 0 / 0
А немогли бы вы подсказать поподробнее как сделать чтобы кнопки активные в меню подсвечивались?
Я новичек, пока еще незнаю толком ни CSS ни php, поверхностно CSS только.... где что менять и если можно прям полный кусок кода, чтоб вставить куда надо и все заработало...
Был бы очень признателен!!
*

Mazur24

  • Новичок
  • 4
  • 0 / 0
в стилях шаблона описывать li#current {} или li.active {}
Помогите пожалуйста. Такая же проблема-не подсвечивается активный (выбранный) пункт меню...
HTML
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr ><td><a href="/company/glavnaya.html" class="mainlevel" >Главная</a></td></tr>
<tr ><td><a href="/company/nachalo.html" class="mainlevel" >Начало</a></td></tr>
</table>      </div>
 
CSS
a.mainlevel:hover,
a.mainlevel:active,
a.mainlevel:focus {
   color: #4F4F4F;
   background: #F8F8F8;
   text-decoration: none;
}

a.mainlevel#active_menu {
   background: #F8F8F8;
   color: #6DA43A;
   font-weight: bold;
   text-decoration: none;
}
Не пойму как решить.. Будьте добры,подскажите пожалуйста.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
потому что надо использовать плоский список UL LI в настройках модуля, для табличных выводом классы активного пункта не присваиваются
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Mazur24

  • Новичок
  • 4
  • 0 / 0
потому что надо использовать плоский список UL LI в настройках модуля, для табличных выводом классы активного пункта не присваиваются
Пробовал использовать плоский список. По-прежнему не подсвечиваются.
Сейчас просматривал код другого сайта, сделанного на таком же шаблоне.
Там активные пункты подсвечиваются.
HTML
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr ><td><a href="/index.php/home-mainmenu-1" class="mainlevel" >Главная</a></td></tr>
<tr ><td><a href="/index.php/author" class="mainlevel" >Авторские права</a></td></tr>
<tr ><td><a href="/index.php/news" class="mainlevel" id="active_menu">Немного об авторах</a></td></tr>
<tr ><td><a href="/index.php/userguide-mainmenu-51" class="mainlevel" >Как прослушать</a></td></tr>
<tr ><td><a href="/index.php/2009-11-24-11-21-02" class="mainlevel" >Гостевая</a></td></tr>
</table>      </div>
При выборе пункта там появляется  id="active_menu". У меня же ничего подобного не происходит.
Так же остается  один class="mainlevel" и всё… Подскажите, в чем причина..
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

убрать из меню заголовки 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
Просмотров: 4162
Последний ответ 01.03.2019, 11:12:18
от vasmed