Новости 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

Перевод и публикация интервью с Joomla евангелистом на греческом портале Joomla

Перевод и публикация интервью на греческом портале Joomla 🇬🇷

Утро, просматриваешь входящие письма и изучаешь новости и внезапно обнаруживаешь, что инициатива, которую ты начал, подхватывается другими людьми. 🎉

Недавно я взял интервью у Билла (Василиса) Коциаса - руководителя студии, читающего лекции в университете и популяризатора Joomla в Греции. Это интервью из журнала NorrNext, в оригинале на английском, теперь доступно на греческом языке и опубликовано на портале joomla.gr. 🎉

До чего же приятно… 😇😊 Работа замечена и с ней посчитали необходимым ознакомить аудиторию страны, в которой Билл читает лекции. И это солнечная Греция - страна, страна, с которой Россию многое связывает. 🇬🇷🇷🇺🕊

Смотрю на греческий алфавит и тут же рисуются картины белоснежных зданий в окружении винограда и амфор, красивых женщин в сандалиях и мужественных воинов, охраняющих покой полисов, в которых ученые мужи работают над трудами, позже вошедшими в века. Красиво! 😇Но вернемся к интервью.

Из него вы узнаете, что в Греции доля Joomla среди CMS занимает порядка 30-40%. По моему мнению это - самый высокий показатель во всем мире. Также чтение лекций о Joomla в университетах позволит привести новых пользователей и к тому же молодое поколение. Ну и огромное кол-во сертификтатов Билла на стене (смотрим фото в статье) свидетельствует о том, что Joomla может применяться как профессиональный инструмент.

🌐 Оригинальное интервью (на английском)
🇬🇷 Интервью на греческом портале (joomla.gr)

Что насчет перевода на русский? Увы, времени всего 24 часа в сутках. Я продолжаю готовить новые интервью. Возможно, после завершения выпуска журнала, рассмотрю перевод некоторых интервью на русский. Но я об этом не говорил. 😊 В блоге @eugenius_blog публикую анонсы интересных событий из мира Joomla, интервью, уроки и полезные советы, а также делюсь мыслями:, связанными с разработкой и веб-дизайном.

0 Пользователей и 1 Гость просматривают эту тему.
  • 13 Ответов
  • 2239 Просмотров
*

tomclancys

  • Захожу иногда
  • 152
  • 3 / 0
Здравствуйте.

Возник вопрос, как можно присвоить альтернативный макет модулю/компоненту через сам шаблон.
Пример - у нас 2 шаблона и для каждого шаблона свои альтернативные макеты модулей/компонентов, получается мы их дублируем в панели управления но по сути они выводят одно и тоже но в разных стилях.

В каждом модуле/компоненте есть параметр отвечающий за макет по умолчанию:
Код
$params->get('layout', 'default');

Буду благодарен за ответы. Погуглил, ничего подобного не нашёл.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
как можно присвоить альтернативный макет модулю/компоненту через сам шаблон.
у нас 2 шаблона и для каждого шаблона свои альтернативные макеты модулей/компонентов
Разве вы не ответили на свой вопрос? Или у вас слово "шаблон" еще имеет другое значение?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

tomclancys

  • Захожу иногда
  • 152
  • 3 / 0
Нет, не ответил.

В самом шаблоне нам нужно например один и тот же модуль вывести два раза с разными альтернативными макетами. Вот ещё пример:

Шаблон - /tamplate/name/
Альтернативный макет №1 - /tamplate/name/html/module1/new1.php
Альтернативный макет №2 - /tamplate/name/html/module1/new2.php

В идеале было бы конечно как то так но в документации такого нету:
<jdoc:include type="modules" name="module1" style="none" layout="new1" />
<jdoc:include type="modules" name="module2" style="none" layout="new2" />
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
А разве копия модуля со своим макетом не дает такого результата?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

tomclancys

  • Захожу иногда
  • 152
  • 3 / 0
Можно так.
Спасибо. Это уже ближе к ответу. Но всё равно не ясно как задать макет модуля. Таким образом не работает:
Код
$document   = & JFactory::getDocument();
$renderer   = $document->loadRenderer('module');
$options    = array('style' => 'none');
$module     = JModuleHelper::getModule('mod_menu');
$module->params    = "layout=new1";
echo $renderer->render($module, $options);
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Код: php-brief
$module->params = '{"layout":"new1"}';
Но я так и не понял, зачем вы делаете это в шаблоне?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

fbr

  • Завсегдатай
  • 1681
  • 210 / 7
Если правильно вас понял, то наверное можно проще

Шаблон 1: просто переименуйте назад new1 -> default
Шаблон 2: new2 -> default

Теперь в шаблонах по умолчанию будет выводить разные макеты под одним именем
*

tomclancys

  • Захожу иногда
  • 152
  • 3 / 0
Если правильно вас понял, то наверное можно проще

Шаблон 1: просто переименуйте назад new1 -> default
Шаблон 2: new2 -> default

Теперь в шаблонах по умолчанию будет выводить разные макеты под одним именем
new1 и new2 в каждом шаблоне есть.
*

tomclancys

  • Захожу иногда
  • 152
  • 3 / 0
Код: php-brief
$module->params = '{"layout":"new1"}';
Но я так и не понял, зачем вы делаете это в шаблоне?
Модуль так даже не выводится.
Код
$document   = & JFactory::getDocument();
$renderer   = $document->loadRenderer('module');
$options    = array('style' => 'none');
$module     = JModuleHelper::getModule('mod_menu');
$module->params = '{"layout":"default"}';
echo $renderer->render($module, $options);       

*

tomclancys

  • Захожу иногда
  • 152
  • 3 / 0
Всё, разобрался. Заработало так:
Код
      jimport( 'joomla.application.module.helper' );
      $module = JModuleHelper::getModule( 'mod_menu' );
      $attribs = array('style' => 'none');
      $module->params = "menutype=mainmenu\nlayout=default\nshowAllChildren=1";
      echo JModuleHelper::renderModule($module, $attribs);

В зависимости от модуля меняются параметры "$module->params ="
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Не будь паразитом, сделай что-нибудь самостоятельно!
*

tomclancys

  • Захожу иногда
  • 152
  • 3 / 0
J!1.5, что ли?
Нет. Joomla 3.6.
Это нужно было для следующего:
- Есть 3 шаблона. Каждый шаблон для конкретной цели.
- В каждом шаблоне по 2-3 одинаковых модуля которые выводят какую то информацию.
- Чтобы не дублировать в панели управления для каждого шаблона один и тот же модуль по несколько раз.
- Сейчас мы добавляем 1 модуль в панели управления и выводим его как нам надо в разных шаблонах.
- Меньше мусора и дублей в панели управления.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Я понимаю, что вас не переубедить, но все равно напишу для других посетителей.
1. Ваш способ может быть оправдан где угодно, кроме в шаблоне: механизм вывода модулей в нем - как раз большой плюс CMS, к которому прилагали немало усилий.
2. Модуль будет выводиться даже тогда, когда он не опубликован.
3. 2 строки в панели управления, IMHO, не мусор, в отличие от ваших повторяющихся врезок в шаблонном индексе. Вы сами рискуете путаться в них, не говоря о ваших возможных "преемниках", которые будут проклинать вас до седьмого колена.
« Последнее редактирование: 28.06.2017, 11:10:04 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Шаблон jm MyPlace - не воспроизводится видео

Автор THE KILLERS

Ответов: 2
Просмотров: 2179
Последний ответ 23.07.2024, 13:58:16
от THE KILLERS
Ошибка при входе в корзину шаблон jmart

Автор dimiur

Ответов: 5
Просмотров: 5047
Последний ответ 24.05.2023, 14:24:30
от Gleb72
Почему обновление шаблона ломает шаблон?

Автор gorbi_U

Ответов: 8
Просмотров: 3564
Последний ответ 03.05.2023, 22:54:19
от SmiP
Нужно ли переносить custom.css при переезде на новый шаблон?

Автор gorbi_U

Ответов: 3
Просмотров: 2892
Последний ответ 09.02.2023, 21:05:42
от marksetter
Разобраться с областью компонента в шаблоне

Автор gorbi_U

Ответов: 7
Просмотров: 2227
Последний ответ 04.02.2023, 10:45:14
от sivers