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

selimoff

  • Захожу иногда
  • 243
  • 16 / 0
  • heads up!!!
Уважаемые программисты и продвинутые чайники:

Хотел у вас спросить КАК ДОБАВИТЬ КОД HTML В ПОЛЕ ИМЯ КОМПОНЕНТА.
Думаю что это возможно, но не знаю как!
конкретно хочу ставить код для показа кол-во не прочитанных сообщении для компонента Uddeim. (Сообщение (1))
Думаю, что это полезно для всех!

Пожалуйста, кто-нибудь
JNavigation скачать Здесь
*

selimoff

  • Захожу иногда
  • 243
  • 16 / 0
  • heads up!!!
Привет еще раз,

извиняюсь что пишу сразу на следующий день, но хотя мне бы хотелось знать если реально такое сделать или нет
JNavigation скачать Здесь
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
не знаю что такое в "имя компонента", но то что ты хочешь делается совсем другими средствами
Сначала делаем запрос в БД SELECT count, после записываем полученное значение в переменную и выводим
Код: php
echo 'сообщений ('.$count.')';
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

selimoff

  • Захожу иногда
  • 243
  • 16 / 0
  • heads up!!!
не знаю что такое в "имя компонента"
имя компонента = пункт меню :)

вот это результат хочу
« Последнее редактирование: 29.12.2009, 23:49:40 от selimoff »
JNavigation скачать Здесь
*

beliyadm

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

selimoff

  • Захожу иногда
  • 243
  • 16 / 0
  • heads up!!!
а, так стандартными средствами нельзя.
нет, нельзя!
а как подробно это реализовать? пожалуйста!
JNavigation скачать Здесь
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
а как подробно это реализовать?
в index.php шаблона руками прописывать меню и внедрять SQL запрос
Можно еще с помощью JS подставлять в определенный блок полученное из запроса значение (тогда не придется дублировать меню) - но это как удобней
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

selimoff

  • Захожу иногда
  • 243
  • 16 / 0
  • heads up!!!
значить что можно! это очень хорошо!
Теперь как это реализовать - это другой вопрос crazy!
JNavigation скачать Здесь
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
beliyadm, а если совсем по дурацки, тоесть вот так
<слой в котором первая часть меню (мэйн-меню)><слой в котором переменная  со значением из иддема><слой с продолжением мэйн-меню>
я так пробовал - нормально. Просто вручную не всегда удобно прописывать меню - например, если возникает потребность привязать другой шаблон к пункту этого меню.
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
не, совсем просто решение (по мне) - в индексе шаблона прописываем SQL запрос к БД, в переменную получаем определенное значение, дальше через mootools либо jquery либо чистым JS делаем add к содержимому нужного элемента меню и все
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
а зачем мутулсы и джейквери? разве просто нельзя вывести эхом переменную ?
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

beliyadm

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

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
beliyadm, а не подскажешь решение такого момента? если это не очень трудно? То есть сам запрос к базе, и как вывести переменную к конкретному пункту меню. Я как то этим не заморачивался, а вот узнал что так можно и стало интересно)))
Заранее спасибо!
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Получили что то из базы
Код: php
$query = 'SELECT count(*) AS count FROM #__table_name';
$db->setQuery($query);
$row = $db->loadObject();
$allcount = $row->count;
и привожу пример на jquery как это добавить к определенному пункту меню (достаточно одной строки :))
Код: javascript
$(".item125").append("<?php echo $allcount; ?>");
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
Цитировать
$(".item125")

а вот это, я так понимаю, определенный пунк в меню? тоесть если напрмер нам нужно добавить переменную к другому пункту, то пишем

$(".item126")?

И еще вопрос - jquery - это надо добавлять файл с библиотекой ?
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
а вот это, я так понимаю, определенный пунк в меню? тоесть если напрмер нам нужно добавить переменную к другому пункту, то пишем
$(".item126")?
Именно так
И еще вопрос - jquery - это надо добавлять файл с библиотекой ?
Да, подключать в шаблон, если у тебя используется стандартный mootools то погугли на тему mootools DOM, просто не интересовался потому не в курсе
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
Цитировать
mootools DOM
а это файл какой то или что? ну, всмысле что искать? как я понимаю,это файл, его тоже надо добавить в определенную папку (JS например) и в шаблоне подключить так же, как подключаем файлы CSS?
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
mootools.js в 1.5 по умолчанию всегда подключается из ядра, jquery нужно подключать дополнительно, лучше всего с гугля, в head индекса шаблона добавить строку
Код: html4strict
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
Что токео DOM - Document Object Model
Не пойму я тебя, вроде не новичок, а вопросы такие странные.. или уже весь в празднике :)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

selimoff

  • Захожу иногда
  • 243
  • 16 / 0
  • heads up!!!
Не пойму я тебя, вроде не новичок, а вопросы такие странные.. или уже весь в празднике :)
Вопросы нормальные! давай, давай! :D
JNavigation скачать Здесь
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
Цитировать
или уже весь в празднике
если бы!
я просто не так сформулировал и ошибся, не мутулс конечно а jquery . Имелось ввиду, можно ли ее подключить файлом, а не с гугля?
Вот собсна правильный вопрос.))
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

beliyadm

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

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
спасибо, понял! Раз правильней с гугля, будем с гугля. А вот еще вопрос - это полная библиотека на все случаи жизни, я так понимаю? Тоесть для выполнения любых сценариев она подгружается в единственном виде, и не нужно для одного подключать одну библиотеку, а для другого - другую?
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
ну я привел пример для версии библиотеки 1.3.2, как подключать при необходимости другие версии - в тот же проекте гугля можно почитать, 1.3.2 на данный момент это последняя стабильная версия
Тоесть для выполнения любых сценариев она подгружается в единственном виде, и не нужно для одного подключать одну библиотеку, а для другого - другую?
Те, что расчитаны на работу с jquery - будут все (если только не редкий вариант конфликта версий).
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
Спасибо, очень полезная инфа, потому как я как раз подхожу к тому, что без jquery не обойтись. Хотя, быть может, можно будет и джавой попробовать. Но jquery я так понимаю прогрессивней и моднее?
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Но jquery я так понимаю прогрессивней и моднее?
намного проще и быстрей (особенно учитываю богатую документацию и наличие кучи плагинов)
Хотя настоящие маньяки везде предпочитают чистый JS (больные люди ей богу :))

По поводу DOM есть замечательная статья jQuery API: Manipulation - манипуляции элементами DOM
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
Мега ресурс. В крацце посмотрел - вроде толково и понятно описано, с примерами. Спасибо , beliyadm ! Буду изучать))
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Jroute компонента альбомов

Автор Koot

Ответов: 2
Просмотров: 987
Последний ответ 03.08.2019, 10:21:04
от Aleks.Denezh
Как использовать функции компонента в модуле?

Автор specialist-web

Ответов: 6
Просмотров: 1300
Последний ответ 12.05.2019, 12:26:10
от AlekVolsk
Как добавить много меток сразу?

Автор Sergeyy

Ответов: 1
Просмотров: 1120
Последний ответ 10.12.2018, 16:49:03
от Sergeyy
params->get для компонента, как получить свои собственные параметры для компонента

Автор klubnichkaaa

Ответов: 13
Просмотров: 14362
Последний ответ 01.06.2017, 20:20:28
от Septdir
Плагин Smart Search для своего компонента

Автор ftp27

Ответов: 1
Просмотров: 2107
Последний ответ 07.01.2017, 19:44:04
от newvideo