|
beliyadm
|
 |
« : 13.07.2009, 01:52:57 » |
|
Представляю Вашему внимания достаточно универсальный модуль для VirtueMart, версия mod_VirtueMart_universal для Joomla 1.5. Версия модуля слайдера товаров 2.0 (VM1.1.9 J1.5)Демонстрация и информацияВерсия модуля 2.1ДемонстрацияПодробная информацияНовые возможности модуля версии 2.1 - кнопка "добавить в корзину" на ajax
- визуальный выбор категорий и возможность включать вложенные подкатегории
- различные варианты вывода цены (с учетом налога и скидки)
- многоязычность (в текущем виде только рус\англ), константы вынесены в языковые файлы language\ru-RU\ru-RU.mod_virtuemart_universal.ini
- различные варианты вывода изображения в модуле с эффектами lightbox и\или zoom
Почему этот модуль, а не родной от разработчика VirtueMart Soeren - родной модуль на 6 товаров генерит от 40 запросов в БД, мой же только один SQL запрос Возможности - показать последние добавленные товары - показать наиболее продаваемые товары - показать товары, отмеченные как featured - показывать случайные товары - задать количество показываемых товаров - задать категории для выборки (ID через запятую) - возможно включения JS подсказок для ссылок в модуле, с использованием либо встроенной библиотеки Mootools либо Jquery. Внимание - Jquery не включена в модуль, подключение библиотеки в код контролируйте самостоятельно. Если на сайте одновременно подключены обе библиотеки - JS эффект подсказок отрабатывать не будет, покажется стандартный title для ссылки. JS эффекты отрабатываются для элемента title для .mod_vm_universal a, для полноценного управления изучите CSS. Оформление заложено в файле modules\mod_VirtueMart_universal\files\mod_virtuemart_universal.css (см. комментарии) Дополнительно: - код максимально документирован, смотрите файл modules\mod_VirtueMart_universal\tmpl\default.php для создания собственного шаблона ( внимание - класс mod_vm_universal используется для работы JS tooltip) Справка по использованию шаблона: $item->pname - заголовок (название) товара $item->link - ссылка на полную карточку товара $item->pimage - картинка товара, не забываем про полный путь до нее $item->price - цена товара $item->currency - валюта (денежная единица) $item->intro - краткое описание товара, очищенное от HTML тегов, по умолчанию выводится как TITLE для картинки и ссылки "подробнее" - для достижения валидности и уменьшения нагрузки на сервер перед публикацией сайта на production рекомендуется все JS и CSS файлы компоновать в один файл и применять сжатие (работа соответствующих инструментов и азы создания сайтов находятся вне данной темы) - для достижения валидности необходимо подключить скрипт Jquery и Mootools до вызова скриптов тултипов (всплывающих подсказок), смотри комментарии в helper.php) в блоке HEAD, по умолчанию они выводятся в BODY для работы на 99% хостов без конфликтов - по умолчанию HTML структура модуля для каждого элемента такова: html вывод элементов модуля <div class="mod_vm_universal"> <span class="mod_vm_title">Название товара</strong><br /> <a href="link" title="Название товара - краткое описание" class="mod_vm_link"> <img src="linkImg" alt="Название товара - краткое описание" /> </a> <br /> <a href="link" title="Название товара - краткое описание" class="mod_vm_readmore">Подробнее</a> <br /> <span class="mod_vm_price">Цена: 1000 рублей</span> </div> - если у вас VirtueMart используется в качестве каталога (и соответственно нет цен) - решение нижеВозможные баги: - возможно все, поскольку я не очень хорошо знаю структуру товаров магазина. Пожелания и предложения по развитию оставляем в комментариях Тестировал на Joomla 1.5.10-12 и VirtueMart 1.1.3, огромная благоданость Sulpher за тестирование и общие рекомендации - Если для товара не назначено изображение выводится картинка по умолчанию components/com_virtuemart/themes/default/images/noimage.gif (спасибо Sulpher)
- Добавлена возможность показа иконки для товаров с скидкой
- Добавлена возможность либо автоматически определять ItemID ссылки в меню, ведущей на магазин, либо руками задавать в настройках модуля. Для чего - чтобы при переходе по ссылкам модуля корректно работала активность пункта меню, хлебные крошки и прочие привязки
UPD- Добавлена возможность обрезания цены до точки (пример: 48.12000 -> 48)
- Добавлена случайная сортировка товаров (если при кол-ве записей в БД более 10 000 будут проблемы с производительностью - пишите, будут менять алгоритм)
|
|
|
|
« Последнее редактирование: 19.02.2012, 00:08:24 от beliyadm »
|
Записан
|
|
|
|
| |
|
morph
|
 |
« Ответ #1 : 13.07.2009, 04:13:55 » |
|
+1 однозначно!первый модуль для VirtueMart со структурой и использованием всего функционала 1.5.
|
|
|
|
|
Записан
|
|
|
|
Sulpher
Support Team
   
Репутация: +293/-9
Offline
Пол: 
Сообщений: 1677
Миграция сайтов на Joomla 2.5
|
 |
« Ответ #2 : 13.07.2009, 10:02:58 » |
|
Модуль просто великолепен! Проверили на нескольких проектах. +1
|
|
|
|
|
Записан
|
|
|
|
Arkadiy
Группа развития
   
Репутация: +244/-5
Offline
Сообщений: 4895
Былененький он зел.
|
 |
« Ответ #3 : 13.07.2009, 12:48:26 » |
|
Пётр, у тебя так быстро и хорошо получилось, может ты нам и vm перепишешь?  +1
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #4 : 13.07.2009, 13:38:47 » |
|
может ты нам и vm перепишешь?
чур меня чур 
|
|
|
|
|
Записан
|
|
|
|
sova
Осваиваюсь на форуме
 
Репутация: +21/-1
Offline
Сообщений: 146
|
 |
« Ответ #5 : 13.07.2009, 15:28:53 » |
|
Модуль супер. А для универсальности есть ли возможность добавить: 1. Возможность вывода случайных товаров. 2. Выбор вывода товаров - (горизонтально/вертикально).?
|
|
|
|
|
Записан
|
|
|
|
Sulpher
Support Team
   
Репутация: +293/-9
Offline
Пол: 
Сообщений: 1677
Миграция сайтов на Joomla 2.5
|
 |
« Ответ #6 : 13.07.2009, 15:31:19 » |
|
2. Выбор вывода товаров - (горизонтально/вертикально).?
Это можно сделать с помощью CSS. Модуль специально написан на div'ах, дабы не засорять сайт таблицами.
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #7 : 13.07.2009, 15:31:44 » |
|
Модуль супер. А для универсальности есть ли возможность добавить: 1. Возможность вывода случайных товаров. 2. Выбор вывода товаров - (горизонтально/вертикально).?
спасибо  1 - можно, заложил на будущее, на днях добавлю (сделано в версии 1.2.1) 2 - настраивается в CSS, по умолчанию для mod_vm_universal прописаны стили float: left, убрать и будут выстраиваться друг под другом
|
|
|
|
« Последнее редактирование: 13.07.2009, 17:13:58 от beliyadm »
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #8 : 13.07.2009, 17:06:08 » |
|
Модуль обновлен до 1.2.1 - Добавлена возможность обрезания цены до точки (пример: 48.12000 -> 48)
- Добавлена случайная сортировка товаров (если при кол-ве записей в БД более 10 000 будут проблемы с производительностью - пишите, будут менять алгоритм)
|
|
|
|
« Последнее редактирование: 13.07.2009, 17:10:26 от beliyadm »
|
Записан
|
|
|
|
dmon47
Новичок
Репутация: +0/-0
Offline
Сообщений: 3
|
 |
« Ответ #9 : 15.07.2009, 09:40:16 » |
|
У меня почему то модуль ничего не отображает. Опубликовал его, вывел в позицию left. Название модуля появилось, но больше ничего не отображается. В VirtueMart забито 2 товара в одну категорию, остальные 5 категорий пустые. В модуле даже выставлял Id категории, в которой есть товары.
Я использую Joomla 1.5.12 и VirtueMart 1.1.3.
Не подскажите, что может быть не так?
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #10 : 15.07.2009, 13:26:06 » |
|
dmon47 - товары опубликованы? У них есть цена (в текущей версии модуля если у товара нет цены - он не выводится)? Других условий как бы нет..
|
|
|
|
|
Записан
|
|
|
|
dmon47
Новичок
Репутация: +0/-0
Offline
Сообщений: 3
|
 |
« Ответ #11 : 15.07.2009, 15:18:31 » |
|
Товары опубликованы, но цены нет. VirtueMart работает в режиме каталога. А где копать, чтобы выводилось даже если цен нет? В модуле или шаблоне?
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #12 : 15.07.2009, 15:28:23 » |
|
Товары опубликованы, но цены нет. VirtueMart работает в режиме каталога. А где копать, чтобы выводилось даже если цен нет? В модуле или шаблоне?
В модуле. 1 - в файле helper.php модуля найти запрос $query = 'SELECT p.product_id AS pid, p.product_sku AS psku, p.product_thumb_image AS pimage, p.product_name AS pname, ' . ' cx.category_id AS catid, '.$ceil_price.', p.product_s_desc AS pintro, pp.product_currency AS currency '. ' FROM #__vm_product p ' . ' RIGHT JOIN #__vm_product_category_xref AS cx ON p.product_id = cx.product_id'. ' RIGHT JOIN #__vm_product_price as pp ON pp.product_id = p.product_id ' . ' WHERE p.product_publish= "Y" '.$where.' GROUP BY pid ORDER BY '.$ordering.' LIMIT '.$max_items.''; и заменить на $query = 'SELECT p.product_id AS pid, p.product_sku AS psku, p.product_thumb_image AS pimage, p.product_name AS pname, ' . ' cx.category_id AS catid, p.product_s_desc AS pintro '. ' FROM #__vm_product p ' . ' RIGHT JOIN #__vm_product_category_xref AS cx ON p.product_id = cx.product_id'. ' WHERE p.product_publish= "Y" '.$where.' GROUP BY pid ORDER BY '.$ordering.' LIMIT '.$max_items.''; Ниже в этом же файле удалить строки $lists[$i]->price = $row->pprice; $lists[$i]->currency = $row->currency; И из tmpl\default.php убрать строку <span class="mod_vm_price">Цена: <?php echo $item->price; ?> <?php echo $item->currency; ?></span> После этого по идее должно работать
|
|
|
|
|
Записан
|
|
|
|
dmon47
Новичок
Репутация: +0/-0
Offline
Сообщений: 3
|
 |
« Ответ #13 : 15.07.2009, 16:03:40 » |
|
ОГРОМНОЕ СПАСИБО!!! Все заработало!
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #14 : 15.07.2009, 16:10:02 » |
|
ОГРОМНОЕ СПАСИБО!!! Все заработало!
и вам спасибо, не подумал про эту фишку, пока обновил первый пост в виде хака, позже надо будет внести в функционал модуля для следующей версии
|
|
|
|
|
Записан
|
|
|
|
Sulpher
Support Team
   
Репутация: +293/-9
Offline
Пол: 
Сообщений: 1677
Миграция сайтов на Joomla 2.5
|
 |
« Ответ #15 : 16.07.2009, 21:31:23 » |
|
Петь, а по поводу константы "цена" - забыли вынести в настройки модуля, чтобы можно было это слово на др. язык прямо из админки перевести, не лазя в исходник модуля (что, в принципе, тоже не сложно, но ради универсальности можно сделать то, о чем говорили ранее)
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #16 : 17.07.2009, 10:27:45 » |
|
Жень - в следующей версии в настройки будет вынесено слово ЦЕНА и ПОДРОБНЕЕ, вместе с парой правок самого модуля, суть позже
|
|
|
|
|
Записан
|
|
|
|
Akirad
Новичок
Репутация: +0/-0
Offline
Сообщений: 4
|
 |
« Ответ #17 : 24.07.2009, 12:19:44 » |
|
Модуль супер!!! но есть перу нюансов: 1) Картинка выходит за облать модуля 2) Валюта выводиться из списка валют, но не преобразовываеться в "Символ валюты:" Если только у меня, то где это исправить? СпС.
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #18 : 24.07.2009, 13:07:42 » |
|
1 - это верстка, HTML вывод модуля я описал в первом посте (по умолчанию в стилях размеры одного блока заданы жестко, если у вас в настройках магазина картинка больше чем у меня при тестировании - будет выходить, поправить легко) 2 - я не закладывал преобразование валюты в символ, если надо поменять - открываем файл modules\mod_VirtueMart_universal\tmpl\default.php и заменяем <?php echo $item->currency; ?> на нужный нам символ валюты
|
|
|
|
|
Записан
|
|
|
|
Akirad
Новичок
Репутация: +0/-0
Offline
Сообщений: 4
|
 |
« Ответ #19 : 24.07.2009, 13:42:05 » |
|
1 - это верстка, HTML вывод модуля я описал в первом посте (по умолчанию в стилях размеры одного блока заданы жестко, если у вас в настройках магазина картинка больше чем у меня при тестировании - будет выходить, поправить легко) 2 - я не закладывал преобразование валюты в символ, если надо поменять - открываем файл modules\mod_VirtueMart_universal\tmpl\default.php и заменяем <?php echo $item->currency; ?> на нужный нам символ валюты
Спс за быстрый ответ) Если не сложно, ответить более широко. Что нужно написать для вывода уменьшиного изображения? на, что нужно заменить <?php echo $item->currency; ?> чтоб получить символ? Зарание благодарен)
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #20 : 24.07.2009, 13:44:17 » |
|
Что нужно написать для вывода уменьшиного изображения?
в файле стилей modules\mod_VirtueMart_universal\files\mod_VirtueMart_universal.css изменить ширину\высоту блока .mod_vm_universal { float: left; width: 200px; height: 200px; border: 1px solid #ccc; margin: 5px; padding: 5px; text-align: center !important; }на, что нужно заменить <?php echo $item->currency; ?> чтоб получить символ?
на символ валюты, к примеру $
|
|
|
|
|
Записан
|
|
|
|
Akirad
Новичок
Репутация: +0/-0
Offline
Сообщений: 4
|
 |
« Ответ #21 : 24.07.2009, 14:03:11 » |
|
в файле стилей modules\mod_VirtueMart_universal\files\mod_VirtueMart_universal.css изменить ширину\высоту блока .mod_vm_universal { float: left; width: 200px; height: 200px; border: 1px solid #ccc; margin: 5px; padding: 5px; text-align: center !important; }на символ валюты, к примеру $ С символом все гуд.Спс. А вот картинка, стоит на месте( изменяя ширину\высоту блока - не изменяеться размер картинки, думал вставить кусок кода вывода картинки с flypage-страницы ну что-то не выходить. Может у Вас получиться прикруть ??
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #22 : 24.07.2009, 14:06:18 » |
|
я совершенно не понимаю вашей проблемы, показали бы скриншот, сказали бы каких размеров превьюшка из товара выводится Можете еще задать размеры картинки в html <img src="<?php echo JURI::base(); ?>components/com_VirtueMart/shop_image/product/<?php echo $item->pimage; ?>" alt="<?php echo $item->pname; ?> - <?php echo $item->intro; ?>" /> заменить на <img width="150" src="<?php echo JURI::base(); ?>components/com_VirtueMart/shop_image/product/<?php echo $item->pimage; ?>" alt="<?php echo $item->pname; ?> - <?php echo $item->intro; ?>" />
|
|
|
|
|
Записан
|
|
|
|
Akirad
Новичок
Репутация: +0/-0
Offline
Сообщений: 4
|
 |
« Ответ #23 : 24.07.2009, 14:23:23 » |
|
 Все было так просто!!! Спасибо
|
|
|
|
|
Записан
|
|
|
|
Romarios
Новичок
Репутация: +0/-0
Offline
Сообщений: 3
|
 |
« Ответ #24 : 26.07.2009, 22:17:51 » |
|
 Выручайте! Поставил модуль и сайт мой рухнул. После длительного ожидания того, что страничка загрузится выпадает ошибка "CGI script error Ошибка исполнения CGI приложения" Админка работает, модуль удалял но ничего не изменилось!
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #25 : 26.07.2009, 22:19:29 » |
|
Модуль (как и сам движок) к CGI приложениям не имеет никакого отношения и физически не может давать такую ошибку. Значит причина не в этом, почитайте error.log сервера на предмет каких-либо ошибок
|
|
|
|
|
Записан
|
|
|
|
Romarios
Новичок
Репутация: +0/-0
Offline
Сообщений: 3
|
 |
« Ответ #26 : 26.07.2009, 22:27:31 » |
|
beliyadm
Можешь в аську выйти пообщаться? ICQ 6947262
|
|
|
|
|
Записан
|
|
|
|
|
FenderQ
Гость
|
 |
« Ответ #27 : 29.07.2009, 15:58:33 » |
|
Спасибо! Классный модуль! Все настроил как надо вот только вопрос один... Как можно сделать так что б модуль выводился только на одной странице (на главной, для которой я назначил отдельный шаблон с юзерблоком1, в котором и отображается этот модуль)? Просто если кликнуть на "подробнее" инфа грузится в томже шаблоне, который назначен для главной страницы...
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #28 : 29.07.2009, 16:20:01 » |
|
FenderQ - есть такое дело, причина в том что модуль отдает информацию по ItemID текущей страницы, вот привязка шаблона и остается старой. Для решения внесем изменение в файл helper.php модуля найдем строку $Itemid = JRequest::getInt( 'Itemid', 1, 'get' ); и заменим на $Itemid = '10'; где 10 это ItemID пункта меню, который собственно и ссылается на VirtueMart, а сам модуль в настройках привяжем только к главной странице Наверно надо добавить в модуль дополнительный запрос, чтобы автоматом вытягивал ItemID из меню, что ссылается на магазин, но тут есть подводные камни (если ссылок несколько и так далее), надо будет подумать над решением
|
|
|
|
|
Записан
|
|
|
|
|
FenderQ
Гость
|
 |
« Ответ #29 : 29.07.2009, 16:23:32 » |
|
Сорри, уже сам нашел... проблема была в ИДшниках Включил режим дружелюбных ссылок SEO и все норм
|
|
|
|
|
Записан
|
|
|
|
|