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

n1ksa

  • Новичок
  • 8
  • 0 / 0
В общем вот. делаю инет-магазин. на поддомене. до сегодняшнего вечера все ок.
Много чего переделывала в плане дизайна как шаблона самой Joomla 2.5 так и в вирте 2
Убрала регистрацию. убрала в корзине выставить счет. авторизацию, чекбокс о принятии условий.
В общем все это работает.
Модуль корзины тоже изменила. Он стоит в узкой полоске.  из всего модуля оставила
Цитировать
корзина пуста
при пустой корзине и
Цитировать
1(2,3,n) товаров: (сумма товаров) и Корзина(ссылкой переходит в корзину)
Сегодня с утра озадачилась что нужно после того как заказ оформлен и появляется сообщение благодарности http://clip2net.com/s/2cQWR "спасибо за заказ" с номеров заказа и суммой убрать строку "способ оплаты и его значение"
искала на форумах как на наших так и на зарубежных. Нашла как убрать и в чем проблема только на 1 сайте зарубежном. Ошибка там оказывается и была в следующем: таблица в которой выводятся данные о способе оплаты о номере заказа и сумме сверстана с ошибками разработчиков и вместо <td class="vmorder-done-payinfo">Способ оплаты</td> такого вида столбцов в ячейках стояло <td  vmorder-done-payinfo="">Способ оплаты</td> так. устранила неполадки в файле оплаты в плагинах /plugins/vmpayment/standard/standard.php
изменила строки с 119 по 137
Код
$html = '<table class="vmorder-done">' . "\n";
$html .= $this->getHtmlRow('STANDARD_PAYMENT_INFO', $dbValues['payment_name'], "vmorder-done-payinfo");
if (!empty($payment_info)) {
    $lang = JFactory::getLanguage();
    if ($lang->hasKey($method->payment_info)) {
$payment_info = JText::_($method->payment_info);
    } else {
$payment_info = $method->payment_info;
    }
$html .= $this->getHtmlRow('STANDARD_PAYMENTINFO', $payment_info, "vmorder-done-payinfo");
}
if (!class_exists('VirtueMartModelCurrency'))
    require(JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'currency.php');
$currency = CurrencyDisplay::getInstance('', $order['details']['BT']->virtuemart_vendor_id);
$html .= $this->getHtmlRow('STANDARD_ORDER_NUMBER', $order['details']['BT']->order_number, "vmorder-done-nr");
$html .= $this->getHtmlRow('STANDARD_AMOUNT', $currency->priceDisplay($order['details']['BT']->order_total), "vmorder-done-amount");
//$html .= $this->getHtmlRow('STANDARD_INFO', $method->payment_info);
//$html .= $this->getHtmlRow('STANDARD_AMOUNT', $totalInPaymentCurrency.' '.$currency_code_3);
$html .= '</table>' . "\n";
на эти
Код
$html = '<table class="vmorder-done">' . "\n";
$html .= $this->getHtmlRow('STANDARD_PAYMENT_INFO', $dbValues['payment_name'], "class='vmorder-done-payinfo'");
if (!empty($payment_info)) {
    $lang = JFactory::getLanguage();
    if ($lang->hasKey($method->payment_info)) {
$payment_info = JText::_($method->payment_info);
    } else {
$payment_info = $method->payment_info;
    }
$html .= $this->getHtmlRow('STANDARD_PAYMENTINFO', $payment_info, "class='vmorder-done-payinfo'");
}
if (!class_exists('VirtueMartModelCurrency'))
    require(JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'currency.php');
$currency = CurrencyDisplay::getInstance('', $order['details']['BT']->virtuemart_vendor_id);
$html .= $this->getHtmlRow('STANDARD_ORDER_NUMBER', $order['details']['BT']->order_number, "'vmorder-done-nr'");
$html .= $this->getHtmlRow('STANDARD_AMOUNT', $currency->priceDisplay($order['details']['BT']->order_total), "class='vmorder-done-amount'");
//$html .= $this->getHtmlRow('STANDARD_INFO', $method->payment_info);
//$html .= $this->getHtmlRow('STANDARD_AMOUNT', $totalInPaymentCurrency.' '.$currency_code_3);
$html .= '</table>' . "\n";
после чего ячейки стали с класами  проверила все норм прописала стиль для пары ячеек(для классов ячеек таблицы) display:none. и все не нужные мне блоки исчезли из виду. пока нашла  решение перерыла кучу файлов у себя на хостинге  перепробовала кучу вариантов.
к чему я это все :(
вечером зашла на сайт и обнаружила что блок с корзиной съехал вниз :o(с той узкой полосы в шапке) на одну строчку. причем в корзине и в карточке товара отображается на месте
скрины  2-х видов страниц: 1 - http://clip2net.com/s/2cQPQ - так отображается на всех страницах сайта и на страницы категории где все товары и на стронице ввода данных для оформление покупки.
2 - http://clip2net.com/s/2cQRK - тут все ок. так только в корзине (на всех шагах где ссылка через cart идет,а на странице ввода данных там ссылка идет через user там также внизу) и в карточке товара норм..
все перерыла не пойму в чем дело.
исходный код и там и там одинаковый. в другую позицию модуля ставила на тех же страницах та же ошибка.
единственно когда нажала "исходный код" скопировала код(в браузере) и вставила в нотепад++ то на страницах где корзина съехала перед блоком с корзиной стоит "?"
Код
	<div class="zt-search">
                        [b][color=red]?[/color][/b]
<!-- VirtueMart 2 AJAX Card -->
<div class="vmCartModule " id="vmCartModule">

<table class="color-cart"><tr><td><div id="cartbg-bg">&nbsp;</div></td><td><div class="total_products">Корзина пуста  </div></td>
<td>
<div class="total" >
 
</div>
</td><td>
<div class="show_cart">
</div></td></tr></table>
<div style="clear:both;"></div>

<noscript>
Пожалуйста, подождите</noscript>
</div>


                        </div>
а на на страницах где норм отображается такого перед блоком корзны нет.
в общем попыталась наиболее подробно описать что делала и в чем проблема.
я просто в ауте 2 недели делаю сайт и под конец на тебе называется.. голова кругом. надеюсь хоть на чьюто помощь...
проблема очень не стандартная >:( >:( >:( >:(
*

magic7tyle

  • Осваиваюсь на форуме
  • 37
  • 1 / 0
Насколько мне известно в PHP лучше писать не "class='vmorder-done-nr'", а 'class="vmorder-done-nr"'/
Хотя к вашей проблеме это вряд ли относится... По поводу проблемы: есть вероятность что у корзины что-то с CSS свойствами... ИМомжет какой-нибудь "line-height" etc...
*

Katen`ka

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
да уж а у меня вообще при наведении на корзину она прыгает когда раскрывается где подробности с картинкой и впоймать трудно запаришься пока   впоймаешь чтоб не шевелилась гадина! Во! Живая корзина, развлечение для клиентов! Интересно что будет когда клиенты начнут говорить это моей директору?! Ха=Ха
*

Katen`ka

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Помогите с этой корзиной неесчастной вожусь несколько дней, ку ча работы стоит... модуль корзины  minicart / Вот ссылка на скриншот: http://joxi.ru/Ad92Cvp
*

Katen`ka

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
А еще как идите там английский ! Вот хочу заменить чо то не получается уже и в файле default.php в ковычках 'cart' исправляла и ini файл создавала только не нашла что (т.е. COM_/////) переводить . Помогите пожалуйста решить эту малую проблемку. пожалуйста.
*

jouser

  • Захожу иногда
  • 124
  • 9 / 0
обнови ссылки, а то 404 выдает
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как вывести модуль в страницу VirtueMart?

Автор harddrop

Ответов: 11
Просмотров: 4868
Последний ответ 13.11.2022, 13:11:37
от Evgen Kulibin
Модуль mod_virtuemart_search с пустым полем поиска [VM3]

Автор shmily96@bk

Ответов: 1
Просмотров: 2617
Последний ответ 03.05.2022, 13:59:47
от beliyadm
Ошибка mError: Could not find product with id 385, entries exists for language?

Автор sergspb

Ответов: 0
Просмотров: 2792
Последний ответ 11.03.2022, 14:00:28
от sergspb
Ошибка при экспорте категорий

Автор tmpnikl

Ответов: 3
Просмотров: 979
Последний ответ 06.05.2021, 13:36:08
от tmpnikl
Ошибка "vmError: Имя пользователя занято" при попытке сохранить настройки магазина

Автор Cueball

Ответов: 7
Просмотров: 6210
Последний ответ 16.05.2020, 17:05:15
от d0ublezer0