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

Nouveau

  • Новичок
  • 2
  • 0 / 0
Добрый день товарищи.

Моим преподавателем по веб дизайну была поставлена задача сделать галарею в Joomla при помощи ССК форм и Пиашпи Эррея. Сам я в этом не разбираюсь и туториалов по созданию галереи такими средствами не нашел. Каким то чудом Галерея все таки была создана. Теперь я могу загружать туда картинки При этом генерируются зумбнейлы которые мы видим во фронтенде. Болие того при клике на зумбнеил уже даже открывается большая картинка(оригинал). Последнее что осталось мне сделать для задания это вставить туда яваскрипт открывающий картинку в новом псевдоокне и уводящий бекграунд в тень, вы знаете о чем я.(лайтбокс)

Так как я только начинаю разбираться в этом всем,- единственный мой источник знаний и проводник, это туториалы и инструкции прилогаемые к плагинам, к сожалению как правило там рассматривается вариант интеграции в простой шттп.

Я понимаю что мой вопрос может звучать абсурдно, но мне очень надо это сделать и сдать, основной вопрос :

Как вставить яваскрипт(лайтбокс) в галлерею состоящую из ССК форм в Joomla.



Спасибо.

*

Nouveau

  • Новичок
  • 2
  • 0 / 0
Вот так выглядит сейчас пшп

<?php
/**
* @version                     1.7.0
* @author                   http://www.jseblod.com
* @copyright            Copyright (C) 2009-2010 jSeblod. All Rights Reserved.
* @license                     GNU/GPL V2 License. http://www.jseblod-cck.com
* @package                    Gallery Content Template (Custom) - jSeblod CCK ( Content Construction Kit )
**/
 
// No Direct Access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
 
<?php
/**
* Init jSeblod Process Object { !Important; !Required; }
**/
$jSeblod    =    clone $this;
?>
 
 
<p><?php echo $jSeblod->g2_desc->value; ?></p>
<p><?php echo $jSeblod->g2_title->value; ?></p>
 
<?php for ($i = 0, $n = sizeof($jSeblod->g2_image_x); $i< $n; $i++ ){ ?>
<a href="<?php echo $jSeblod->g2_image_x[$i]->value; ?>">
<img src="<?php echo $jSeblod->g2_image_x[$i]->thumb1; ?>"  />
</a>
<?php } ?>
*

AmiGator

  • Захожу иногда
  • 56
  • 3 / 0
в jseblod есть шаблон называемый "авто" - он сам показывает все загруженые картинки с помощью лайтбокса. а если воспользоваться fieldX то загружать можно сколько угодно картинок.
ну если очень хочется добавить сюда, то читай инструкцию к выбранному лайтбоксу
*

Urso

  • Новичок
  • 9
  • 1 / 0
вот как лайтбоксы реализованы у меня:
в самом начале шаблона статьи
Код
<?php
JHTML::_( 'behavior.modal' );
?>
дальше вывод изображения:
Код
<?php if ($jSeblod->imagest->thumb1) echo "<a class=\"modal\" href=\"".$jSeblod->imagest->value."\" rel=\"{handler:'image'}\" title=\"кликните для увеличения\" >
<img src=\"".$jSeblod->imagest->thumb1."\" class=\"m_image\"></a>";?> 
без class=\"modal\" и rel=\"{handler:'image'}\" картинки открывались в новом окне.
По опыту скажу, что подключенная где-то в странице prototype.js может поломать кучу функциональных плюшек jSeblod'a. Так что, если помимо лайтбокса не работают всплывающие подсказки, всплывающий WYSIWYG редактор и ниспадающие вкладки - стоит отловить эту заразу=) Лично я ограничил область её применения теми местами, где она не может помешать jSeblod'y.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться