Главная Корисне
бер.
13
Virtuemart - ускорение роботы магазина.

Привет!
Но вот сегодня настал момент оптимизации моего небольшого магазинчика и я начал рыть...Не суть, нашел решение. Применил у себя на сайте, был потрясен результатами и удивлен что на форуме никто еще об этом не написал. Поэтому специально восстановил забытый пароль и спешу...кароче начинаем! Azn

Идем вот суда:

Цитировать
/ваш_сайт/www/administrator/components/com_virtuemart/html/

там находим файл shop_browse_queries.php
открываем и ищем 61 строчку

$where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id` OR `#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_parent_id`)";

заменяем ее на

Код:
$where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id`)";
жмакаем сохранить, обновляем файл на сервере, очищаем кэши. Радуемся жизни.

Оригинальная тема на форуме виртуамарта - http://forum.virtuemart.net/index.php?topic=65103.0
Висит с января 2010 как видите..там же дальше в 3-ех страницах можете почитать благодарственные отзывы народа, с каталогом в 5000-30.000 товаров, и как у них все стало летать. К слову там же можно найти и каммент разработчика по этому поводу. А если копнуть свосем глубоко, некий малый, я так понимаю русский (нкто haword) выложил свой вариант файла shop_browse_queries.php

Кому лень копаться в коде, вот ссылки (файл приаттачить почему-то не могу)
http://slil.ru/29548397 - версия от Udo
http://slil.ru/29548399 - версия от haword

ВАЖНО: кол-во запоросов не уменьшилось. Изменилось само качество запроса.
ВАЖНО №2: чтобы уменьшить кол-во запросов к БД (тобишь кэшировать их) юзайте вот этот замечтательный компонент:
QueryCache 1.5.0 RC2 (for Joomla 1.5.x) - http://www.joomlaperformance.com/component/option,com_docman/task,cat_view/gid,41/Itemid,39/
Мануалка по установке  - http://www.joomlaperformance.com/component/option,com_easyfaq/task,view/id,28/Itemid,7/
ВАЖНО №3: Сам еще пока не проверял (в ближайшие пару часов) нашел еще вот такой интересный вариант кэша - http://forum.virtuemart.net/index.php?topic=43602.0

Обо мне:
Joomla 1.5.18
Virtuemart 1.1.4
После установки QueryCache кол-во запросов в VirtueMart при просмотре товара сократилось в 1.5 раза
После установки хака + querycache магазин стал грузится за
Цитировать
Application afterLoad: 0.000 seconds, 0.40 MB
Application afterInitialise: 0.188 seconds, 4.55 MB
Application afterRoute: 0.197 seconds, 5.46 MB
Application afterDispatch: 0.455 seconds, 18.28 MB
Application afterRender: 0.519 seconds, 19.36 MB
Успехов ребят! Azn

Источник: http://joomlaforum.ru/index.php/topic,124933.0.html ... Детальніше...
черв.
4
IceVmCart+SEF - модуль корзины для VirtueMart
IceVmCart - очень неплохой модуль корзины для VirtueMart. Корзина не занимает много места и всплывает по требованию. Можно разместить в шапке шаблона.


Разработчик: IceTheme

Лицензия: GNU GPL v.2

Демо разработчика: http://demo.icetheme.com/extensions/icevmcart.html

Загрузить с сайта разработчика: http://icetheme.com/Download-Extensions/Download-document/96-IceVmCart.html

Установка:  В архиве есть инструкция, но установка нестандартная, поэтому немножко помогу:

  1. Установите модуль из файла mod_IceVmCart_v.x.x.zip .
  2. Файл minicart.tpl.php скопируйте  в папку ...componentes/com_virtuemart/themes/default/templates/common/

Чтобы вверху Cart (0 Items) отображалось на русском языке, необходимо немножко изменить файл \www\имя сайта\modules\mod_ice_vmcart\tmpl\default.php

1. Найдите строку №15
if ($total > 0) $totalString = '(<strong>'.$total.'</strong> Items)';
и замените "Items" на "шт."
if ($total > 0) $totalString = '(<strong>'.$total.'</strong> шт.)';
*
2. Найдите строку №26
<a href="javascript:void(0)" id="cart-button" ><span><?php echo JText::_('Cart').' '.$totalString; ?></span></a>
и замените "Cart" на "Корзина"
<a href="javascript:void(0)" id="cart-button" ><span><?php echo JText::_('Корзина').' '.$totalString; ?></span></a>

 

 

 

 

 

 

 

 

Если Вам не нравится, что корзина появляется слишком медленно, то удалите или переименуйте файл ajax-loader.gif. Он находится в папке с модулем: www\modules\mod_ice_vmcart\assets. Это ускорит появления корзины в три раза, но не будет анимации и время затенения будет наползать на корзину. Чтобы этого не было, сделайте небольшое изменение файла script.js.

1. Найдите строку №94
},1500);
и замените на строку
},1000);

 

 

 

 

Глубоко не копал, но это может помочь.

Источник: http://top3.com.ua/index.php?option=com_content&view=article&id=92:icevmcart-virtuemart&catid=39:virtuemart&Itemid=64

Плюс мое маленькое дополнение, для работы IceVmCart+SEF:

modules/mod_ice_vmcart/mod_ice_vmcart.php components/com_virtuemart/themes/default/templates/common/minicart.tpl.php

Ищем код:

$query = 'SELECT product_thumb_image FROM #__vm_product WHERE product_name=". $db->quote($pid);

Меняем на:


$query = 'SELECT product_thumb_image FROM #__vm_product WHERE product_name="'.$cart['product_name'].'"';

Может не самый правильный, но работает.
Будут вопросы  - пишите в коментах.

... Детальніше...
Hekima! Blog