0 Пользователей и 1 Гость просматривают эту тему.
  • 194 Ответов
  • 38759 Просмотров
*

dempfer77

  • Новичок
  • 7
  • 0 / 0
Добрый вечер.

Подскажите, как на изображение товара, например отмеченного как "Специальное предложение", поставить картинку "Хит продаж"?
Использую модуль virtuemart_universal, но там только "Скидки" таким образом можно сделать.
И так как я не особо рублю в php, самостоятельно подобное сделать не могу ((

Может у кого есть готовый вариант?
« Последнее редактирование: 27.06.2010, 23:35:26 от dempfer77 »
*

makhmudov.timur

  • Захожу иногда
  • 341
  • 20 / 0
  • Alshanskiy
никто не дал ответа, единсттвенное скопировать модуль, установить его как копию, и в корне модуля изменить картинку на хит ... вот и всёно тогда надо ему задать скидкуу в 0 процентов, не пробывал... но ед решениепроблемы ...
*

dempfer77

  • Новичок
  • 7
  • 0 / 0
Я думал об этом, но мне кажется, это не выход (
Было бы здорово, если бы в модуле, подобно скидкам, сделали "Новинки", "Хиты" и т.п.
*

adjuster

  • Давно я тут
  • 786
  • 55 / 2
Вот как здесь подойдет?
Цитировать
http://new.kamteks.ru/index.php?product_name&Itemid=13&option=com_virtuemart&page=shop.browse&category_id=8&limit=50&limitstart=0
Вот как выглядит в админке:
*

dempfer77

  • Новичок
  • 7
  • 0 / 0
Конечно  подойдет. Отписался в личку.
*

adjuster

  • Давно я тут
  • 786
  • 55 / 2
Выкладываю:

Уточняю, что данный хак делал не я сам (я его купил) - давайте скажем спасибо нашему коллеге Alex0802 http://joomlaforum.ru/index.php?action=profile;u=13148 .

1.   Добавить в таблицу дополнительные поля о товаре.Вот пример:
http://inetta.ru/Primochki-na-vse-sluchai-zhizni/Kak-dobavit-novoe-pole-v-adminku-Virtuemart.html

2.   В файле (так как я вывожу эти картинки при отображении категории) product.product_list.php меняем:

Цитировать
// these are the columns in the table
$columns = Array(  '#' => '',
            "<input type=\"checkbox\" name=\"toggle\" value=\"\" onclick=\"checkAll(".$num_rows.")\" />" => "",
            $VM_LANG->_('PHPSHOP_PRODUCT_LIST_NAME') => "width=\"30%\"",
            $VM_LANG->_('VM_PRODUCT_LIST_MEDIA') => 'width="5%"',
            $VM_LANG->_('PHPSHOP_PRODUCT_LIST_SKU') => "width=\"15%\"",
            $VM_LANG->_('PHPSHOP_PRODUCT_FORM_NEW_PRODUCT') => "width=\"15%\"",
            $VM_LANG->_('PHPSHOP_PRODUCT_FORM_IS_LEADER') => "width=\"15%\"",

            $VM_LANG->_('PHPSHOP_PRODUCT_PRICE_TITLE') => "width=\"10%\"",
            $VM_LANG->_('PHPSHOP_CATEGORY') => "width=\"15%\"" );

И

Цитировать
// The product sku
      $listObj->addCell( $db->f("product_sku") );
      

      $tmpcell = "<a href=\"". $sess->url( $_SERVER['PHP_SELF']."?page=product.product_list&category_id=$category_id&product_id=".$db->f("product_id")."&func=changeNewState" );
      if (!$db->f("product_is_new")) {
         $tmpcell .= "&task=is_new\">";
      }
      else {
         $tmpcell .= "&task=isnt_new\">";
      }
      $tmpcell .= vmCommonHTML::getYesNoIcon( $db->f("product_is_new"), "Новый", "Не новый" );
      $tmpcell .= "</a>";
      $listObj->addCell( $tmpcell );

      $tmpcell = "<a href=\"". $sess->url( $_SERVER['PHP_SELF']."?page=product.product_list&category_id=$category_id&product_id=".$db->f("product_id")."&func=changeLeaderState" );
      if (!$db->f("product_is_new")) {
         $tmpcell .= "&task=is_leader\">";
      }
      else {
         $tmpcell .= "&task=isnt_leader\">";
      }
      $tmpcell .= vmCommonHTML::getYesNoIcon( $db->f("product_is_leader"), "Лидер продаж", "Не лидер продаж" );
      $tmpcell .= "</a>";
      $listObj->addCell( $tmpcell );


3. Далее в настройках отображения категории смотрим, какой файл используется:
В моем случае это browse_1, но при выводе таблицей по 1 товару в строке – этот файл - components/com_virtuemart/themes/default/templates/browse/includes/browse_listtable.tpl.php

В нем прописываем :

Цитировать
foreach( $products as $product ) {
      
      foreach( $product as $attr => $val ) {
         // Using this we make all the variables available in the template
         // translated example: $this->set( 'product_name', $product_name );
         $this->set( $attr, $val );
      }
      
      $data[$row][] = '<a href="'.$product['product_flypage'].'" title="'.$product['product_name'].'">'.$product['product_name'].'</a>';
      $data[$row][] = $product['product_sku'];
      if( _SHOW_PRICES && $auth['show_prices'] ) {
         $data[$row][] = $product['product_price'];
      }
      $img_cell = "<div style='position: relative; width: 145px;'>";
      $img_cell .= '<a href="'.$product['product_flypage'].'" title="'.$product['product_name'].'">'
                  . ps_product::image_tag( $product['product_thumb_image'] )
                  . '</a>';
      $img_cell .= "<div style='position: absolute; right: 0px; top: 0;'>".$product['new_img']."</div><div style='position: absolute; right: 0px; bottom: 0;'>".$product['leader_img']."</div></div>";


      $data[$row][] = $img_cell;
      $data[$row][] = $product['product_s_desc'];
      if( $product['has_addtocart'] ) {
         $data[$row][] = $product['form_addtocart'];
      }
      else {
         $data[$row][] = '<a href="'.$product['product_flypage'].'" title="'.$product['product_name'].'">'
                     .   $product['product_details']
                     .   '</a>';
      }
      
      $row++;
      
}

4. Не забываем про сами картинки, у меня они лежат в:
\components\com_virtuemart\shop_image\ps_image\


Добавлено:
Забыл совсем про вывод самих ярлыков: они указываются в файле www\administrator\components\com_virtuemart\html\shop.browse.php

Необходимо добавить вот это:

Цитировать
if (PSHOP_ALLOW_REVIEWS == '1' && @$_REQUEST['output'] != "pdf") {
         // Average customer rating: xxxxx
           // Total votes: x
         $product_rating = ps_reviews::allvotes( $db_browse->f("product_id") );
      }
      else {
         $product_rating = "";
      }

      if ($db_browse->f("product_is_new")) {
         $new_img = "<img src='".IMAGEURL."ps_image/ico_new.png'>";
      }
      else {
         $new_img = "";
      }

      if ($db_browse->f("product_is_leader")) {
         $leader_img = "<img src='".IMAGEURL."ps_image/ico_leader.png'>";
      }
      else {
         $leader_img = "";
      }


      // Add-to-Cart Button

Обновил архив. ps_image_and_ps_leader.rar

[вложение удалено Администратором]
« Последнее редактирование: 07.07.2010, 09:10:30 от adjuster »
*

Messir

  • Давно я тут
  • 532
  • 73 / 0
  • могу укусить:)
При попытке активировать товару статус новинки выскакивает это:
Код
Ошибка: Функция не зарегистрирована. changeNewState это неправильная функция VirtueMart.

Со статусом лидера то же самое, ток функция естественно другая
*

adjuster

  • Давно я тут
  • 786
  • 55 / 2
Вот нужно добавить в базе:
*

Messir

  • Давно я тут
  • 532
  • 73 / 0
  • могу укусить:)
На joostina 1.2.0 и VirtueMart 1.1.4  дает критическую ошибку:
Код
Fatal error: Call to undefined method ps_product::change_new_state() in Z:\home\*****\www\components\com_virtuemart\virtuemart_parser.php  on line 246
В этой троке находится:
Код
$ok = $$classname->$funcParams["method"]($vars);
Если закомментировать, то невозможно изменить состояние
*

adjuster

  • Давно я тут
  • 786
  • 55 / 2
У меня в этой строке другое.


Выкладываю архив с файлами для создания полей в базе.

[вложение удалено Администратором]
« Последнее редактирование: 06.07.2010, 16:47:56 от adjuster »
*

Messir

  • Давно я тут
  • 532
  • 73 / 0
  • могу укусить:)
Заменил файл версией Вашей версией из архива, получил:
Код
Fatal error: Call to undefined method ps_product::change_new_state() in Z:\home\*****\www\components\com_virtuemart\virtuemart_parser.php on line 230

соответственно, в ней то же самое:
Код
$ok = $$classname->$funcParams["method"]($vars);

шо ему не нравится - не знаю(((
*

Messir

  • Давно я тут
  • 532
  • 73 / 0
  • могу укусить:)
Все получилось. Были ошибки при добавлении дополнительных полей. Огромное спасибо adjuster-у за оперативную помощь!
*

Messir

  • Давно я тут
  • 532
  • 73 / 0
  • могу укусить:)
Дополнение:
в файле www\administrator\components\com_virtuemart\html\shop.browse.php необходимо добавить еще после
Код
unset($full_image_height);
это примерно строка 454, код:
Код
$products[$i]['new_img'] = $new_img;
$products[$i]['leader_img'] = $leader_img;
*

adjuster

  • Давно я тут
  • 786
  • 55 / 2
Добавляю: необходимо еще отредактировать 1 файл ):

administrator\components\com_virtuemart\html\shop_browse_queries.php

Вставить вот это:
Цитировать
/** Prepare the SQL Queries
*
*/
// These are the names of all fields we fetch data from
$fieldnames = "`product_name`,`products_per_row`,`category_browsepage`,`category_flypage`,`#__{vm}_category`.`category_id`,
            `#__{vm}_product`.`product_id`,`product_full_image`,`product_is_new`,`product_is_leader`,`product_thumb_image`,`product_s_desc`,`product_parent_id`,`product_publish`,`product_in_stock`,`product_sku`, `product_url`,
            `product_weight`,`product_weight_uom`,`product_length`,`product_width`,`product_height`,`product_lwh_uom`,`product_in_stock`,`product_available_date`,`product_availability`,`#__{vm}_product`.`mdate`, `#__{vm}_product`.`cdate`";
$count_name = "COUNT(DISTINCT `#__{vm}_product`.`product_sku`) as num_rows";
$table_names = '`#__{vm}_product`, `#__{vm}_category`, `#__{vm}_product_category_xref`,`#__{vm}_shopper_group`';
*

skyscraper

  • Захожу иногда
  • 252
  • 47 / 2
спасибо adjuster, бум пробовать...
*

adjuster

  • Давно я тут
  • 786
  • 55 / 2
а вот и плагиаты появляются ))))

http://joomlaforum.ru/index.php/topic,119858.0.html
*

igoryk

  • Захожу иногда
  • 183
  • 11 / 0
Чтото я не пойму (совсем плохо знаю php и sql)  

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

И для Чайников можно пошагово расписать как все это сделать от запроса к базе, до в каких файлах что и на что менять...
« Последнее редактирование: 14.07.2010, 02:05:51 от igoryk »
*

adjuster

  • Давно я тут
  • 786
  • 55 / 2
из ссылки:
Цитировать
1. Открываем базу данных нашего сайта и находим таблицу jos_vm_product. Заходим в нее, выбираем вкладку "Структура". Тут мы видим все поля нашего товара, такие как Артикул, Айди, цена и пр. Спускаемся вниз и находим "Добавить 1 поле(поля)" выбираем правее под каким полем хотим расположить наше будущее творение и жмем Ок. Теперь заполняем: Поле: product_new (можете вставить свое); Длина/значения: 64; Тип: VARCHAR; Сравнение: utf8_general_ci; Null: NOT NULL. Вдаваться в подробности за что отвечает каждая строчка не буду, таких мануалов итак полно. Остальные поля можно оставить пустыми. Сохраняем. Все... первый этап завершен.
*

igoryk

  • Захожу иногда
  • 183
  • 11 / 0
1. Открываем базу данных нашего сайта и находим таблицу jos_vm_product. Заходим в нее, выбираем вкладку "Структура". Тут мы видим все поля нашего товара, такие как Артикул, Айди, цена и пр. Спускаемся вниз и находим "Добавить 1 поле(поля)" выбираем правее под каким полем хотим расположить наше будущее творение и жмем Ок. Теперь заполняем: Поле: product_new (можете вставить свое); Длина/значения: 64; Тип: VARCHAR; Сравнение: utf8_general_ci; Null: NOT NULL. Вдаваться в подробности за что отвечает каждая строчка не буду, таких мануалов итак полно. Остальные поля можно оставить пустыми. Сохраняем. Все... первый этап завершен.

Все добавил -


ошибок нигде не выдает, но в админке - все галочки не активны, и при клике на них - ничего не происходит :(



Где рыть? подскажите пожалуйста...
« Последнее редактирование: 15.07.2010, 01:51:41 от igoryk »
*

igoryk

  • Захожу иногда
  • 183
  • 11 / 0
Уважаемый adjuster

посмотрите пожалуйста мои файлы, что не так? я уже голову сломал - не работает...

PS - VM - 1.1.4

[вложение удалено Администратором]
« Последнее редактирование: 15.07.2010, 02:57:01 от igoryk »
*

adjuster

  • Давно я тут
  • 786
  • 55 / 2
Все добавил -
ошибок нигде не выдает, но в админке - все галочки не активны, и при клике на них - ничего не происходит :(
Где рыть? подскажите пожалуйста...
Это такой глюк - пока решения не нашли:
На самом деле при нажатии на переключатель - в базе меняется значение, но на странице не меняется галочка на крестик ( и обратно), если
 была выбрана одна из категорий - в общем списке (когда не выбрана категория) все отлично меняется и отображается.

Это одно из важных замечаний - оно касается и других изменений в файле вывода в админке.
*

igoryk

  • Захожу иногда
  • 183
  • 11 / 0
Это такой глюк - пока решения не нашли:
На самом деле при нажатии на переключатель - в базе меняется значение, но на странице не меняется галочка на крестик ( и обратно), если
 была выбрана одна из категорий - в общем списке (когда не выбрана категория) все отлично меняется и отображается.

Это одно из важных замечаний - оно касается и других изменений в файле вывода в админке.

С этим - ясно, но блин, картинки все равно не выводит... уже брал шабнон из вашего архива, дописывал вывод в свой... никак не выводятся.....
*

Messir

  • Давно я тут
  • 532
  • 73 / 0
  • могу укусить:)
Дополнение:
в файле www\administrator\components\com_virtuemart\html\shop.browse.php необходимо добавить еще после
Код
unset($full_image_height);
это примерно строка 454, код:
Код
$products[$i]['new_img'] = $new_img;
$products[$i]['leader_img'] = $leader_img;


после этого все должно выводиться
*

igoryk

  • Захожу иногда
  • 183
  • 11 / 0
спасибо, вечером попробую - отпишусь...
*

igoryk

  • Захожу иногда
  • 183
  • 11 / 0
Воде получилось, но вылез вопрос - у меня добавились картинки ко всем товарам, как снять все одним махом?

*

adjuster

  • Давно я тут
  • 786
  • 55 / 2
UPDATE jos_vm_product SET product_is_new = 1 - ставит флаг
UPDATE jos_vm_product SET product_is_new = 0 - снимает флаг.

Запросы делать в базе.
Заходим в базу MySQL - выбираем базу и таблицу jos_vm_product. Переходим на закладку SQL и вписываем запрос.


Также другие запросы можно смотреть в соседней теме: http://joomlaforum.ru/index.php/topic,120026.new.html
« Последнее редактирование: 16.07.2010, 10:16:54 от adjuster »
*

igoryk

  • Захожу иногда
  • 183
  • 11 / 0
Спасибо всем, кто отвечал на мои вопросы. Все получилось, работает...

Осталось дождаться решения глюка который получается, если выбранны товары в определенной категории...
*

podwal

  • Новичок
  • 4
  • 0 / 0
Блин все сделал по пунктам но в админке пишет
Ошибка: Функция не зарегистрирована. changeLeaderState это неправильная функция VirtueMart. в чем причина?
*

Messir

  • Давно я тут
  • 532
  • 73 / 0
  • могу укусить:)
Вот нужно добавить в базе:

*

igoryk

  • Захожу иногда
  • 183
  • 11 / 0
Возник вопрос - как сделать чтобы эти картинки появлялись в подробном описании товара т.е. на flypage.tpl.php
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод товара из дочерних категорий в родительскую

Автор B0nG

Ответов: 0
Просмотров: 1033
Последний ответ 03.08.2014, 15:13:57
от B0nG
ID товара вместо cdata

Автор newsky

Ответов: 0
Просмотров: 927
Последний ответ 01.07.2014, 13:05:12
от newsky
Расширенный Ajax-поиск по характеристикам товара VirtueMart

Автор Arkadiy

Ответов: 990
Просмотров: 178960
Последний ответ 27.06.2014, 16:47:52
от DeLight
Не могу убрать форму "Задайте вопрос..." на странице товара

Автор abrodski

Ответов: 1
Просмотров: 968
Последний ответ 20.05.2014, 14:30:44
от abrodski
Свойства товара без подтягивания скидки

Автор One

Ответов: 0
Просмотров: 767
Последний ответ 13.05.2014, 16:53:53
от One