Форум русской поддержки Joomla!® CMS
03.12.2016, 04:27:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 49   Вниз
  Добавить закладку  |  Печать  
Автор

[download] Модуль вывода товаров для VirtueMart (1.2.3 и 2.1)

 (Прочитано 312829 раз)
0 Пользователей и 1 Гость смотрят эту тему.
beliyadm
Профи
********

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« : 13.07.2009, 01:52:57 »


Представляю Вашему внимания достаточно универсальный модуль для VirtueMart, версия mod_VirtueMart_universal для Joomla 1.5.


Версия модуля 2.1.1 (теперь в общем доступе)
Скачать


Новые возможности модуля версии 2.1

Почему этот модуль, а не родной от разработчика 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)
справка по шаблону
- для достижения валидности и уменьшения нагрузки на сервер перед публикацией сайта на production рекомендуется все JS и CSS файлы компоновать в один файл и применять сжатие (работа соответствующих инструментов и азы создания сайтов находятся вне данной темы)
 - для достижения валидности необходимо подключить скрипт Jquery и  Mootools до вызова скриптов тултипов (всплывающих подсказок), смотри комментарии в helper.php) в блоке HEAD, по умолчанию они выводятся в BODY для работы на 99% хостов без конфликтов
 - по умолчанию HTML структура модуля для каждого элемента такова:
html вывод элементов модуля
- если у вас VirtueMart используется в качестве каталога (и соответственно нет цен) - решение ниже

скриншот модуля

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

Тестировал на Joomla 1.5.10-12 и VirtueMart 1.1.3, огромная благоданость Sulpher за тестирование и общие рекомендации

Версия модуля 1.2.3

Версия модуля 1.2.2

UPD
Версия модуля 1.2.1

[вложение удалено Администратором]
« Последнее редактирование: 24.05.2015, 12:33:11 от beliyadm » Записан
 
morph
Живу я здесь
******

Репутация: +103/-0
Offline Offline

Сообщений: 896


« Ответ #1 : 13.07.2009, 04:13:55 »

+1 однозначно!первый модуль для VirtueMart  со структурой и использованием всего функционала 1.5.
Записан
Sulpher
Практически профи
*******

Репутация: +385/-15
Offline Offline

Пол: Мужской
Сообщений: 2207


Шаблоны и расширения Joomla


« Ответ #2 : 13.07.2009, 10:02:58 »

Модуль просто великолепен! Проверили на нескольких проектах. +1
Записан
Arkadiy
Группа развития
*****

Репутация: +431/-0
Offline Offline

Пол: Мужской
Сообщений: 5313


Крепитесь, други.


« Ответ #3 : 13.07.2009, 12:48:26 »

Пётр, у тебя так быстро и хорошо получилось, может ты нам и vm перепишешь? Azn +1
Записан
beliyadm
Профи
********

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« Ответ #4 : 13.07.2009, 13:38:47 »

может ты нам и vm перепишешь?
чур меня чур Azn
Записан
sova
Осваиваюсь на форуме
***

Репутация: +22/-1
Offline Offline

Сообщений: 138



« Ответ #5 : 13.07.2009, 15:28:53 »

Модуль супер.
А для универсальности есть ли возможность добавить:
1. Возможность вывода случайных товаров.
2. Выбор вывода товаров -  (горизонтально/вертикально).?

Записан
Sulpher
Практически профи
*******

Репутация: +385/-15
Offline Offline

Пол: Мужской
Сообщений: 2207


Шаблоны и расширения Joomla


« Ответ #6 : 13.07.2009, 15:31:19 »

2. Выбор вывода товаров -  (горизонтально/вертикально).?
Это можно сделать с помощью CSS. Модуль специально написан на div'ах, дабы не засорять сайт таблицами.
Записан
beliyadm
Профи
********

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« Ответ #7 : 13.07.2009, 15:31:44 »

Модуль супер.
А для универсальности есть ли возможность добавить:
1. Возможность вывода случайных товаров.
2. Выбор вывода товаров -  (горизонтально/вертикально).?
спасибо Azn
1 - можно, заложил на будущее, на днях добавлю (сделано в версии 1.2.1)
2 - настраивается в CSS, по умолчанию для mod_vm_universal прописаны стили float: left, убрать и будут выстраиваться друг под другом
« Последнее редактирование: 13.07.2009, 17:13:58 от beliyadm » Записан
beliyadm
Профи
********

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« Ответ #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 Offline

Сообщений: 3


« Ответ #9 : 15.07.2009, 09:40:16 »

У меня почему то модуль ничего не отображает. Опубликовал его, вывел в позицию left. Название модуля появилось, но больше ничего не отображается. В VirtueMart забито 2 товара в одну категорию, остальные 5 категорий пустые. В модуле даже выставлял Id категории, в которой есть товары.

Я использую Joomla 1.5.12 и VirtueMart 1.1.3.

Не подскажите, что может быть не так?
Записан
beliyadm
Профи
********

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« Ответ #10 : 15.07.2009, 13:26:06 »

dmon47 - товары опубликованы? У них есть цена (в текущей версии модуля если у товара нет цены - он не выводится)?
Других условий как бы нет..
Записан
dmon47
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 3


« Ответ #11 : 15.07.2009, 15:18:31 »

Товары опубликованы, но цены нет. VirtueMart работает в режиме каталога.
А где копать, чтобы выводилось даже если цен нет? В модуле или шаблоне?
Записан
beliyadm
Профи
********

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« Ответ #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 Offline

Сообщений: 3


« Ответ #13 : 15.07.2009, 16:03:40 »

ОГРОМНОЕ СПАСИБО!!! Все заработало!
Записан
beliyadm
Профи
********

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« Ответ #14 : 15.07.2009, 16:10:02 »

ОГРОМНОЕ СПАСИБО!!! Все заработало!
и вам спасибо, не подумал про эту фишку, пока обновил первый пост в виде хака, позже надо будет внести в функционал модуля для следующей версии
Записан
Sulpher
Практически профи
*******

Репутация: +385/-15
Offline Offline

Пол: Мужской
Сообщений: 2207


Шаблоны и расширения Joomla


« Ответ #15 : 16.07.2009, 21:31:23 »

Петь, а по поводу константы "цена" - забыли вынести в настройки модуля, чтобы можно было это слово на др. язык прямо из админки перевести, не лазя в исходник модуля (что, в принципе, тоже не сложно, но ради универсальности можно сделать то, о чем говорили ранее)
Записан
beliyadm
Профи
********

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« Ответ #16 : 17.07.2009, 10:27:45 »

Жень - в следующей версии в настройки будет вынесено слово ЦЕНА и ПОДРОБНЕЕ, вместе с парой правок самого модуля, суть позже
Записан
Akirad
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« Ответ #17 : 24.07.2009, 12:19:44 »

Модуль супер!!!
но есть перу нюансов: 1) Картинка выходит за облать модуля
                                 2) Валюта выводиться из списка валют, но не преобразовываеться в "Символ валюты:"
Если только у меня, то где это исправить?
СпС. Huh      
Записан
beliyadm
Профи
********

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« Ответ #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 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
Профи
********

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« Ответ #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 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
Профи
********

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« Ответ #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 Offline

Сообщений: 4


« Ответ #23 : 24.07.2009, 14:23:23 »

Azn Все было так просто!!!
Спасибо
Записан
Romarios
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 3


« Ответ #24 : 26.07.2009, 22:17:51 »

 Huh Выручайте! Поставил модуль и сайт мой рухнул.
После длительного ожидания того, что страничка загрузится выпадает ошибка "CGI script error  Ошибка исполнения CGI приложения"
Админка работает, модуль удалял но ничего не изменилось!
Записан
beliyadm
Профи
********

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« Ответ #25 : 26.07.2009, 22:19:29 »

Модуль (как и сам движок) к CGI приложениям не имеет никакого отношения и физически не может давать такую ошибку.
Значит причина не в этом, почитайте error.log сервера на предмет каких-либо ошибок
Записан
Romarios
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 3


« Ответ #26 : 26.07.2009, 22:27:31 »

beliyadm

Можешь в аську выйти пообщаться?
ICQ 6947262
Записан
FenderQ
Гость
« Ответ #27 : 29.07.2009, 15:58:33 »

Спасибо!
Классный модуль!
Все настроил как надо вот только вопрос один...
Как можно сделать так что б модуль выводился только на одной странице (на главной, для которой я назначил отдельный шаблон с юзерблоком1, в котором и отображается этот модуль)? Просто если кликнуть на "подробнее" инфа грузится в томже шаблоне, который назначен для главной страницы...
Записан
beliyadm
Профи
********

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« Ответ #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 и все норм
Записан
Страниц: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 49   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet