LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
28.05.2012, 01:33:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... 44   Вниз
  Добавить закладку  |  Печать  
Автор Тема: [download] Модуль вывода товаров для VirtueMart (1.2.3 и 2.1)  (Прочитано 173663 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
beliyadm
Профи
********

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

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


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


« : 13.07.2009, 01:52:57 »


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

Версия модуля слайдера товаров 2.0 (VM1.1.9 J1.5)
Демонстрация и информация

Версия модуля 2.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

* mod_virtuemart_universal_1.2.1.zip (6.23 Кб - загружено 1007 раз.)
* mod_virtuemart_universal_1.2.2.zip (9.28 Кб - загружено 2312 раз.)

* scrin.gif (51 Кб, 487x679 - просмотрено 11341 раз.)
* mod_virtuemart_universal_1.2.3.zip (9.31 Кб - загружено 10152 раз.)
« Последнее редактирование: 19.02.2012, 00:08:24 от beliyadm » Записан
 
Luchik
Осваиваюсь на форуме
***

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

Сообщений: 69


« Ответ #91 : 17.09.2009, 13:04:53 »

Вот у вас при выборе пункта "последние добавленные товары" выводятся товары, которые недавно добавлены в магазин и похоже выводяться по дате mdate.
Но в базе есть еще колонка cdate - время когда поставили галочку "опубликовать".
Можно ли сделать пункт "последние опубликованные товары", где товары выводяться по cdate?

P.S. я может перепутал mdate и cdate. Сильно не бейте.
Записан
beliyadm
Профи
********

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

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


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


« Ответ #92 : 17.09.2009, 13:12:08 »

P.S. я может перепутал mdate и cdate. Сильно не бейте.
Цитировать
cdate
    The Product's Creation Date (UNIX Timestamp)
mdate
    The Product's last Modification Date (UNIX Timestamp)
Так написано в документации

Но у меня опция вывода последних сортирует по ID (в принципе тоже самое что и дата добавления товара)
Даты публикации вроде бы нет вообще, но если вдруг надо изменить сортировку по нужному полю - открываем хелпер модуля, находим и модифицируем кусок
Код
case '1';
        $ordering .= ' p.product_id DESC ';
break;
Записан
gora4o
Захожу иногда
**

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

Сообщений: 21


« Ответ #93 : 19.09.2009, 19:02:24 »

Подскажите пожалуйста, как добавить кнопку купить к товару?

И сделать так, что бы цена бралась из флайпейджа категории?
Это необходимо, так как у меня в базе все товары забиты в долларах, но стоит хак, обеспечивающий мультивалютность, с перерасчетом курсов и цена выводится уже в гривне, с заданным курсом перерасчета.
А Ваш модуль выводит валюту по умолчанию.
Записан
beliyadm
Профи
********

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

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


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


« Ответ #94 : 19.09.2009, 20:01:06 »

кнопку купить - скопировать код из flypage или другого файла, что генерит кнопку. Чтобы работыли JS эффекты AJAX добавления товара - необходимо глубже изучить структуру работы кода и модернизировать. Для модуля такой задачи не ставилось и не планируется
Аналогично и с хаком, цена берется из таблицы товаров.
При желании можно в выборку добавить параметр курса и на лету пересчитывать. Но опять же - данную модификацию я не закладываю в разработку
Записан
gora4o
Захожу иногда
**

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

Сообщений: 21


« Ответ #95 : 20.09.2009, 09:51:33 »

Пробую вставлять <?php echo $form_addtocart ?> но не работает, вставлял в файл default.php.
Если не тяжело, опишите процедуру, что сделать, что бы заработало. У меня отключена корзина на Аяксе, так как она выдает ошибки в ИЕ6 версии.

И как вывести цену что бы с курса магазина, та которая во флайпейдже, аналогично: <?php echo $product_price ?> отказывается показывать.
Записан
beagler
Moderator
*****

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

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


http://beagler.ru/


« Ответ #96 : 20.09.2009, 10:44:57 »

ну так $form_addtocart и $product_price нужно сначала подготовить - посмотрите как это делается в shop.product_details.php
Записан
gora4o
Захожу иногда
**

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

Сообщений: 21


« Ответ #97 : 21.09.2009, 01:36:19 »

Вот все что касается кнопки добавления в корзину в этом файле:

/* ADD-TO-CART */
$tpl->set( 'manufacturer_id', $manufacturer_id );
$tpl->set( 'flypage', $flypage );
$tpl->set( 'ps_product_attribute', $ps_product_attribute );
$addtocart = $tpl->fetch('product_details/includes/addtocart_form.tpl.php' );

$tpl->set( "addtocart", $addtocart );

Но вот что дальше с этим делать, и как это подключить в helper.php модуля я пока не знаю, подскажите на одном примере, и все станет более менее ясно, так и цену потом можно будет сформировать.
Записан
gora4o
Захожу иногда
**

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

Сообщений: 21


« Ответ #98 : 23.09.2009, 01:33:12 »

не суждено мне помощи допроситься)
Записан
beagler
Moderator
*****

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

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


http://beagler.ru/


« Ответ #99 : 23.09.2009, 13:27:43 »

попробуй
Код:
$tpl = vmTemplate::getInstance();
/* ADD-TO-CART */
$tpl->set( 'manufacturer_id', $manufacturer_id );
$tpl->set( 'flypage', $flypage );
$tpl->set( 'ps_product_attribute', $ps_product_attribute );
echo $tpl->fetch('product_details/includes/addtocart_form.tpl.php' );
не проверял
Записан
gora4o
Захожу иногда
**

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

Сообщений: 21


« Ответ #100 : 23.09.2009, 19:16:12 »

Пишет от такое, может что не так делаю, поправьте.

Fatal error: Call to a member function list_attribute() on a non-object in Z:\home\localhost\www\mag\components\com_virtuemart\themes\default\templates\product_details\includes\addtocart_form.tpl.php on line 10
Записан
beagler
Moderator
*****

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

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


http://beagler.ru/


« Ответ #101 : 23.09.2009, 21:01:47 »

добавь перед предыдущем кодом
Код:
require_once(CLASSPATH . 'ps_product_attribute.php' );
$ps_product_category = new ps_product_category;

и попрбовать убрать
Код:
$tpl->set( 'manufacturer_id', $manufacturer_id );
$tpl->set( 'flypage', $flypage );
Записан
gora4o
Захожу иногда
**

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

Сообщений: 21


« Ответ #102 : 23.09.2009, 21:49:08 »

Я добавляю следующий код:

 require_once(CLASSPATH . 'ps_product_attribute.php' );
                $ps_product_category = new ps_product_category;
                $tpl = vmTemplate::getInstance();
/* ADD-TO-CART */
$tpl->set( 'ps_product_attribute', $ps_product_attribute );
echo $tpl->fetch('product_details/includes/addtocart_form.tpl.php' );

после

$ItemidCustom    = $params->get( 'checkItemidCustom' );


в файле helper.php

а в файл default.php вставляю такую строчку:

<?php echo $form_addtocart ?>

Все ли верно я делаю, если да, то ошибка неизменно выскакивает:

Fatal error: Call to a member function list_attribute() on a non-object in Z:\home\localhost\www\mag\components\com_virtuemart\themes\default\templates\product_details\includes\addtocart_form.tpl.php on line 10

В чем ошибка может быть?
Записан
beagler
Moderator
*****

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

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


http://beagler.ru/


« Ответ #103 : 23.09.2009, 22:39:36 »

нужно добавлять перед $i++; (142 строка)
вот так
Код:
require_once(CLASSPATH . 'ps_product_attribute.php' );
                $ps_product_category = new ps_product_category;
                $tpl = vmTemplate::getInstance();
/* ADD-TO-CART */
$tpl->set( 'product_id', $row->pid; );
$tpl->set( 'ps_product_attribute', $ps_product_attribute );
$lists[$i]->form_addtocart = $tpl->fetch('product_details/includes/addtocart_form.tpl.php' );
Записан
gora4o
Захожу иногда
**

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

Сообщений: 21


« Ответ #104 : 24.09.2009, 14:04:00 »

Пробую подключать этот участок кода но вываливается ошибками, высылаю Вам оригинальный код файла helper.php если можете то запишите этот код в нужное место, что бы ошибки не выбивало.
Заранее благодарен.

* helper.rar (1.97 Кб - загружено 75 раз.)
Записан
beagler
Moderator
*****

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

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


http://beagler.ru/


« Ответ #105 : 24.09.2009, 15:25:02 »

Извини, нет времени. У меня этот модуль не установлен. Направление мысли я тебе задал.
Записан
cherry
Осваиваюсь на форуме
***

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

Пол: Женский
Сообщений: 54



« Ответ #106 : 01.10.2009, 12:01:13 »

Спасибо за модуль! Azn

А можно ли отображать товары текущей категории?

И цены он показываеть в эквиваленте в долларах, хотя в VirtuеMart я указала рубли. Где это можно поправить?
« Последнее редактирование: 01.10.2009, 12:27:58 от cherry » Записан
beliyadm
Профи
********

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

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


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


« Ответ #107 : 01.10.2009, 15:32:20 »

А можно ли отображать товары текущей категории?
Сам по себе нет, нужно немного модифицировать, заменив в SQL запросе хелпера идентификацию не по ID категорий из настроек, а получать текущее значение
И цены он показываеть в эквиваленте в долларах, хотя в VirtuеMart я указала рубли. Где это можно поправить?
Валюту модуль берет из поля product_currency таблицы товаров, можете зайти в файл шаблона default.php и заменить <?php echo $item->currency; ?> на нужный параметр
Записан
cherry
Осваиваюсь на форуме
***

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

Пол: Женский
Сообщений: 54



« Ответ #108 : 01.10.2009, 15:48:50 »

Спасибо, попробую.. А не подскажите, где можна посмотреть схему структуру таблиц (со связями ключами полями и тд) по VM?
Записан
beliyadm
Профи
********

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

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


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


« Ответ #109 : 01.10.2009, 15:52:41 »

А не подскажите, где можна посмотреть схему структуру таблиц (со связями ключами полями и тд) по VM?
а вот это хороший вопрос Azn нормальной блок схемы я не видел и сам ее не строил
Единственно что у меня есть - документация для разработчика VirtueMart Developer Manual
Записан
cherry
Осваиваюсь на форуме
***

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

Пол: Женский
Сообщений: 54



« Ответ #110 : 02.10.2009, 17:19:23 »

Спасибо за мануал!  Roll Eyes
Только некоторые статьи там пустые Azn у разработчиков, наверное, не было времени полностью документировать свой продукт  Wink


я так поняла это идентификатор категории, который в админке указывается
Код:
$ids = explode( ',', $category_id );

Подскажите пожалуйста как определить id текущей категории, чтоб в выборку по товарам подставить?

Для навигации по категориям использую модуль mod_product_categories
« Последнее редактирование: 02.10.2009, 18:08:18 от cherry » Записан
beagler
Moderator
*****

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

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


http://beagler.ru/


« Ответ #111 : 02.10.2009, 17:54:38 »

Код:
$category_id = vmGet($_REQUEST, "category_id", null);
но этот код может не заработать. Тогда -
Код:
$category_id =JRequest::getString('category_id')
« Последнее редактирование: 02.10.2009, 17:58:37 от beagler » Записан
cherry
Осваиваюсь на форуме
***

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

Пол: Женский
Сообщений: 54



« Ответ #112 : 02.10.2009, 18:19:11 »

получилось!  Kiss

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

А еще вопросик, как мне в шаблон default.php  из helper.php передать $selecttype, чтоб в зависимости от его значения я могла выводить товар либо в табличном либо в дивном виде?
Записан
beliyadm
Профи
********

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

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


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


« Ответ #113 : 02.10.2009, 20:56:25 »

А еще вопросик, как мне в шаблон default.php  из helper.php передать $selecttype, чтоб в зависимости от его значения я могла выводить товар либо в табличном либо в дивном виде?
в хелпер добавляете новый элемент массива $lists
Код
$lists[$i]->price 		= $selecttype;
И дальше в шаблоне модуля оперируете внутри цикла foreach
Код
<?php echo $item->pname; ?>
Записан
cherry
Осваиваюсь на форуме
***

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

Пол: Женский
Сообщений: 54



« Ответ #114 : 02.10.2009, 22:24:06 »

да я вначале так и думала.. а потом решила чего плодить одно и тоже значение в масиве, может можно передать как переменную..

ну это не принципиально можно и массивом Azn
Записан
beliyadm
Профи
********

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

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


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


« Ответ #115 : 02.10.2009, 22:28:42 »

ну это не принципиально можно и массивом Azn
так массив то один, $lists, мы просто в него добавляем новый элемент и все (которого там раньше не было, потому дублирования нет)
Записан
cherry
Осваиваюсь на форуме
***

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

Пол: Женский
Сообщений: 54



« Ответ #116 : 02.10.2009, 22:56:26 »

Спасибо! все получилось! Azn

теперь хочу на странице реализовать возможность выбора кол-ва отображаемого товара на одной странице (кпримеру: 20 / 40 / 60), и постраничную навигацию соответственно..

т.е. это в default.php я добавлю <form>.. </form>, в которой опишу необходимые опции, затем методом пост передам кол-во товаров на странице.. а каким образом сформировать в action правильную строку ? т.е. чтоб вернуться на текущую страницу, чтобы потом в хелпере, я приняла пост-параметры..
Записан
beliyadm
Профи
********

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

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


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


« Ответ #117 : 02.10.2009, 23:00:35 »

Стандартную постраничную навигацию можно использовать только в компонентах
В модуле только AJAX либо просто на JS листать заранее подгруженную таблицу
Записан
cherry
Осваиваюсь на форуме
***

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

Пол: Женский
Сообщений: 54



« Ответ #118 : 02.10.2009, 23:16:06 »

Стандартную постраничную навигацию можно использовать только в компонентах
т.е. в данном случае у меня такого не выйдет  Sad а это еще и сортировку  могут захотеть то по цене то по наименованию...

В модуле только AJAX либо просто на JS листать заранее подгруженную таблицу
а есть примерчик скрипта?

или лучше использовать компоненту, для отображения каталога? хотя вашим модулем мне действительно легко пользоваться и более менее все понятно.
Записан
beliyadm
Профи
********

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

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


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


« Ответ #119 : 02.10.2009, 23:25:00 »

а есть примерчик скрипта?
На jquery множество скриптов, подборка к примеру тут http://anton.shevchuk.name/javascript/jquery-datagrid-plugins/
В работе на одном из сайтов пример тут
Встроить подобный скрипт максимально просто даже для модуля. Если у вас подгружается не 1000 записей, то в пределах 20-500 отработка скрипта не должна быть заметна для пользователя.
Там можно встроить и постраничную навигацию, и текстовый поиск по любому (либо по всем) полям.
Либо же если записей много - смотреть в сторону datagrid, но с использованием AJAX подгрузки данных при запросе, это намного сложней в реализации
Записан
cherry
Осваиваюсь на форуме
***

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

Пол: Женский
Сообщений: 54



« Ответ #120 : 02.10.2009, 23:41:21 »

УХТЫ! Cпасибо большое!  Kiss

Jquery более чем подойдет!  Roll Eyes Буду разбираться  Roll Eyes
Записан
Страниц: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... 44   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | 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