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

Stim_ka

  • Осваиваюсь на форуме
  • 29
  • 10
Собирательный способ на основе тем http://joomlaforum.ru/index.php/topic,7210.0.html и http://joomlaforum.ru/index.php/topic,7210.0.html

Задача: автоматом ставить картинки "Новинка" на картинки товаров, которые были добавлены в течение последних 2 недель;
и поставить картинки "Лидер продаж" тем товарам, которые отмечены как "специальное предложение"

Решение:

1. Открываем administrator\components\com_virtuemart\html\shop.browse.php примерно после этого участка кода
Код
$product_name = $db_browse->f("product_name");
if( $db_browse->f("product_publish") == "N" ) {
$product_name .= " (".vmHtmlEntityDecode(_CMN_UNPUBLISHED).")";
}
Вставляем этот код :
Код
// Check for new product wher $db_product query is "SELECT * FROM #__{vm}_product WHERE
// product_id='$product_id' "
if ((time() - $db_browse->f("cdate")) < (14 * 86400)) { // 14 Days *  (number of seconds in  24 hours)
    //$new_img = "New Item"; // code required for new tag - text only version
    $new_img = '<div style="position: absolute; right: 0px; top: 0;"><img src="'. $mosConfig_live_site .'/images/stories/labels_product/new_img.png" border="0" alt="Новинка" title="Новинка" align="right"></div>'; // code required for new tag
} else {
    $new_img = "";
}

if( $db_browse->f("product_special") == "Y" ) {
    $leader_img = '<div style="position: absolute; right: 0px; bottom: 0;"><img src="'. $mosConfig_live_site .'/images/stories/labels_product/leader_img.png" border="0" alt="Лидер продаж" title="Лидер продаж" align="right"></div>'; // code required for new tag
} else {
    $leader_img = "";
}
Затем в этом же файле немного ниже, после секции
      
Код
$products[$i]['cdate'] = $VM_LANG->convert( vmFormatDate($db_browse->f("cdate"), $VM_LANG->_('DATE_FORMAT_LC') ));
$products[$i]['mdate'] = $VM_LANG->convert( vmFormatDate($db_browse->f("mdate"), $VM_LANG->_('DATE_FORMAT_LC') ));
$products[$i]['product_url'] = $db_browse->f("product_url");    
         
Добавляем вот это
      
Код
$products[$i]['new_img'] = $new_img ;
$products[$i]['leader_img'] = $leader_img;


2. В administrator\components\com_virtuemart\html\shop_browse_queries.php
вместо
Код
$fieldnames = "`product_name`,`products_per_row`,`category_browsepage`,`category_flypage`,`#__{vm}_category`.`category_id`,
`#__{vm}_product`.`product_id`,`product_full_image`,`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`";
Вставить вот это:
Код
$fieldnames = "`product_name`,`products_per_row`,`category_browsepage`,`category_flypage`,`#__{vm}_category`.`category_id`,
`#__{vm}_product`.`product_id`,`product_full_image`,`product_thumb_image`,`product_s_desc`,`product_special`,`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`";


3. Идем дальше в /administrator/components/com_virtuemart/html/shop.product_details.php
Открываем ,строка примерно  253 где то  преред таким кодом;
Код
/* MORE IMAGES ? */
    $more_images = "";
  if( !empty($images->images) ) {
Вставляем это:
Код
// Check for new product wher $db_product query is "SELECT * FROM #__{vm}_product WHERE
// product_id='$product_id' "
if ((time() - $db_product->f("cdate")) < (14 * 86400)) { // 14 Days *  (number of seconds in  24 hours)
    //$new_img = "New Item"; // code required for new tag - text only version
    $new_img_fly = '<div style="position: absolute; right: 0px; top: 0;"><img src="'. $mosConfig_live_site .'/images/stories/labels_product/new_img_fly.png" border="0" alt="Новинка" title="Новинка" align="right"></div>'; // code required for new tag
} else {
    $new_img_fly = "";
}

if( $db_product->f("product_special") == "Y" ) {
    $leader_img_fly = '<div style="position: absolute; right: 0px; bottom: 0;"><img src="'. $mosConfig_live_site .'/images/stories/labels_product/leader_img_fly.png" border="0" alt="Лидер продаж" title="Лидер продаж" align="right"></div>'; // code required for new tag
} else {
    $leader_img_fly = "";
}

Затем ищем такой участок кода
Код
$tpl->set( "related_products", $related_products );
$tpl->set( "vendor_link", $vendor_link );
$tpl->set( "product_type", $product_type ); // Changed Product Type
$tpl->set( "product_packaging", $product_packaging ); // Changed Packaging
$tpl->set( "ask_seller_href", $ask_seller_href ); // Product Enquiry!
$tpl->set( "ask_seller_text", $ask_seller_text ); // Product Enquiry!
$tpl->set( "ask_seller", $ask_seller ); // Product Enquiry!
$tpl->set( "recent_products", $recent_products); // Recent products
И добавляем после него
Код
$tpl->set( "new_img_fly", $new_img_fly); // новинка!
$tpl->set( "leader_img_fly", $leader_img_fly); // Лидер продаж


4. Не забываем про сами картинки, они лежат в:
 images/stories/labels_product
new_img.png – картинка «новинка» для категории
leader_img.png – картинка «Лидер продаж» для категории
new_img_fly.png – картинка «новинка» для карточки товара
leader_img_fly.png - картинка «Лидер продаж» для карточки товара


5. для вывода в категории идем в components\com_virtuemart\themes\default_my\templates\browse\browse_1.php (или тот, который используется у вас)
и после
Код
<a href="<?php echo $product_full_image ?>" target="_blank" title="<?php echo $product_name ?>">
           <?php echo ps_product::image_tag( $product_thumb_image, 'class="browseProductImage" border="0" title="'.$product_name.'" alt="'.$product_name .'"' )?>
           </a>
Добавляем
Код
<?php echo $new_img ?>
<?php echo $leader_img ?>


6. для вывода в карточке товара идем в components\com_virtuemart\themes\default_my\templates\product_details\flypage.tpl.php (или тот, который используется у вас)
и после
Код
<?php echo $product_image ?>
Добавляем
Код
<?php echo $new_img_fly ?>
<?php echo $leader_img_fly ?>


Вроде все.
« Последнее редактирование: 04.08.2010, 11:12:55 от beagler »
*

Pashtetdiz

  • Осваиваюсь на форуме
  • 173
  • 4
Спасибо очень помогло для вывода ярлычков в карточку товара :D. С автоматическим определением Новинка придумано хорошо, но пока оставляю решение в ручном режиме как в этой теме http://joomlaforum.ru/index.php/topic,119541.0.html.
*

ivanesx2008

  • Осваиваюсь на форуме
  • 66
  • 0
VirtueMart 1.1.5

не работает.... :o
На флайпейдже картинка отображается, но не на картинке товара, а в правом нижнем углу экрана...
А в списке товаров вообще ничего...
Нужна помощь!!! У моего друга умирает годовалый сын от рака крови. Помощь даже в виде 5-ти грн. ему поможет. Не останьтесь равнодушным к ребёнку!!! Реквизиты и подтверждающие документы можно получить у меня.
*

takes

  • Осваиваюсь на форуме
  • 84
  • 0
Цитировать
не работает....
На флайпейдже картинка отображается, но не на картинке товара, а в правом нижнем углу экрана...
А в списке товаров вообще ничего...
абсолютно тоже самое
*

SolopoV

  • Завсегдатай
  • 475
  • 12
  • зеленею...
абсолютно тоже самое
такая же байда, но это надо стили править.
*

daniley

  • Осваиваюсь на форуме
  • 32
  • 0
а почему эти стили сразу не написать в коде?
*

alex-mlt

  • Осваиваюсь на форуме
  • 30
  • 1
Кто-нибудь уже поправил эту очень полезную штуку, чтобы она нормально выводилась на страницах?
Подскажите где править?
*

Pashtetdiz

  • Осваиваюсь на форуме
  • 173
  • 4
VirtueMart 1.1.5

не работает.... :o
На флайпейдже картинка отображается, но не на картинке товара, а в правом нижнем углу экрана...
А в списке товаров вообще ничего...
Прописывайте все в в /administrator/components/com_virtuemart/html/shop.product_details.php

// Check for new product wher $db_product query is "SELECT * FROM #__{vm}_product WHERE
      // product_id='$product_id' "
      if ((time() - $db_product->f("cdate")) < (14 * 86400)) { // 14 Days *  (number of seconds in  24 hours)
           //$new_img = "New Item"; // code required for new tag - text only version
           $new_img_fly = '<div style="position: absolute; right: 0px; top: 0;"><img src="'. $mosConfig_live_site .'/images/stories/labels_product/new_img_fly.png" border="0" alt="Новинка" title="Новинка" align="right"></div>'; // code required for new tag
      } else {
           $new_img_fly = "";
      }

      if( $db_product->f("product_special") == "Y" ) {
           $leader_img_fly = '<div style="position: absolute; right: 0px; bottom: 0;"><img src="'. $mosConfig_live_site .'/images/stories/labels_product/leader_img_fly.png" border="0" alt="Лидер продаж" title="Лидер продаж" align="right"></div>'; // code required for new tag
      } else {
           $leader_img_fly = "";
      }
меняйте position: absolute; right: 0px; bottom: 0px; и внимательно отслеживайте иконку на странице, подбирайте у меня v.m. 1.1.5 и все  тип топ
*

alex-mlt

  • Осваиваюсь на форуме
  • 30
  • 1
Я все решил иначе. Способ предложенный Pashtetdiz приводил к тому, что на разных обозревателях и с разным разрешением все "скакало" в разные стороны.
Никакие стили в shop.product_details.php и shop.browse.php я не менял.
Во всех BROWSE и fly (ну или какой Вам нужен) я вывод картинки товара (у меня VM 1.1.6 и выводилась ссылка, а не $product_image) обрамил в <div style="position: relative;> </div>. В том числе и в таблицах.
В него же и вписал вывод <?php echo $new_img_fly ?> и <?php echo $leader_img_fly ?>.
И теперь все Ок.
*

dron

  • Живу я здесь
  • 1128
  • 2
блин, ваааще запутался. мконки скачут по экрану. у меня VM 1.1.6. Киньте кто-нить, пожалуйста, файлы которые правили... голова идет кругом...

Огромное спасибо заранее!
*

alex-mlt

  • Осваиваюсь на форуме
  • 30
  • 1
dron
Иконки скачут из-за АБСОЛЮТНОГО позиционирования div с картинками. Поэтому, читайте внимательно. что сделал я. У меня тоже 1.1.6.
*

adjuster

  • Завсегдатай
  • 786
  • 53
Я все решил иначе. Способ предложенный Pashtetdiz приводил к тому, что на разных обозревателях и с разным разрешением все "скакало" в разные стороны.
Никакие стили в shop.product_details.php и shop.browse.php я не менял.
Во всех BROWSE и fly (ну или какой Вам нужен) я вывод картинки товара (у меня VM 1.1.6 и выводилась ссылка, а не $product_image) обрамил в <div style="position: relative;> </div>. В том числе и в таблицах.
В него же и вписал вывод <?php echo $new_img_fly ?> и <?php echo $leader_img_fly ?>.
И теперь все Ок.
А с чего ты взял, что это его решение? - зачем морочить голову пользователям? = необходимо исправиться!
*

alex-mlt

  • Осваиваюсь на форуме
  • 30
  • 1
ОК, какой последний увидел - про тот и указал. Главное, человек его быстро нашел и все понял.
*

dron

  • Живу я здесь
  • 1128
  • 2
кто может все это сделать на Joomla 1.5.21 и vm 1.1.6 за деньги? (www.vual.info)

заранее спасибо!
*

dark_star

  • Осваиваюсь на форуме
  • 109
  • 7
Не стал долго мучатся и все стилями сделал
Вместо:
<div style="position: absolute; right: 0px; top: 0;"......
написал
<div id="cat_liderprodash"......

И в стиль себе прописал:
#cat_liderprodash{
position:relative;
top:-180px;
}


Теперь все на месте стоит http://www.nadine-kirov.ru/magazin?page=shop.browse&category_id=1
По аналогии делается и для Fly-страницы
*

kunev

  • Осваиваюсь на форуме
  • 121
  • 0
Подскажите пожалуйста, как вывести Новинка или Хит продаж не с Browse_1, а с browse_listtable.tpl.php т.к. этот файл является у меня дочерним для категорий, уже голову сломал не пойму куда воткнуть вывод

<?php echo $new_img ?>
<?php echo $leader_img ?>

вот сам кусок кода, куда его приткнуть?

$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'];
      }
      $data[$row][] = '<a href="'.$product['product_flypage'].'" title="'.$product['product_name'].'">'
                  . ps_product::image_tag( $product['product_thumb_image'] )
                  . '</a>';
      $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++;
      
}



*

dark_star

  • Осваиваюсь на форуме
  • 109
  • 7
Еще вопросик появился, как формируется значение cdate в таблице jos_vm_product для товара. Потому что если мне необходимо вывести товар как новинку (например картинку я сменил, потому что модель поменялась) мне надо подправить число создания товара, а там цифрами (1299612287, это типа 8 марта 2011 года означает). Кто знает? или ссылку на мануал.
*

dark_star

  • Осваиваюсь на форуме
  • 109
  • 7
Подскажите пожалуйста, как вывести Новинка или Хит продаж не с Browse_1, а с browse_listtable.tpl.php т.к. этот файл является у меня дочерним для категорий, уже голову сломал не пойму куда воткнуть вывод

<?php echo $new_img ?>
<?php echo $leader_img ?>

вот сам кусок кода, куда его приткнуть?

$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'];
      }
      $data[$row][] = '<a href="'.$product['product_flypage'].'" title="'.$product['product_name'].'">'
                  . ps_product::image_tag( $product['product_thumb_image'] )
                  . '</a>';
      $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++;
      
}





Попробуй в той теме и сообщении поискать http://joomlaforum.ru/index.php/topic,119541.msg830862.html#msg830862
Я конечно непонял как ты так список категории выводишь, но вдруг та тема или пост наведут тебя на мысль.
Я бы попытался вот после этого или перед этим вставить
Цитировать
$data[$row][] = '<a href="'.$product['product_flypage'].'" title="'.$product['product_name'].'">'
                  . ps_product::image_tag( $product['product_thumb_image'] )
                  . '</a>';
*

daniley

  • Осваиваюсь на форуме
  • 32
  • 0
*

dark_star

  • Осваиваюсь на форуме
  • 109
  • 7
Где не выводит, можно и скрин приложить, можно и код fly-страницы приложить, если на ней не выводит или шаблон browse. Мы как должны догадатся?
Могу сказать одно, в коде нигде не трогали переменных, а тем более переменную цены.
*

Infosakh

  • Живу я здесь
  • 1257
  • 67
делал через <div style="position:absolute;margin-top:47px;right:0;"> в опере выводится все ок, в мозилле всё съехало. Что за дела, разрешение экрана одно и тоже  ;D
Пытался прописать не через absolute а через relative, вообще все съезжает, может кто нибудь подскажет что делаю не так?  ^-^
*

dark_star

  • Осваиваюсь на форуме
  • 109
  • 7
Вы код сами смотрите, если вы говорите справо 0 пикселей отступить, дак вы чего ожидаете? сверху 47 пикселей, вы же ставите абсолютное позиционирование на странице. В ксс не силен я, незнаю почему опера выводит вам правильно. Я в мозиле все делаю и смотрю. когда я вывожу relatшve у меня все нормально выводится. Сделайте стилями и играйтесь с ксс, чем в код ползать.
Код
#cat_liderprodash{
position:relative;
top:-180px;
}

5. для вывода в категории идем в components\com_virtuemart\themes\default_my\templates\browse\browse_1.php (или тот, который используется у вас)
и после
Код
<a href="<?php echo $product_full_image ?>" target="_blank" title="<?php echo $product_name ?>">
            <?php echo ps_product::image_tag( $product_thumb_image, 'class="browseProductImage" border="0" title="'.$product_name.'" alt="'.$product_name .'"' )?>
            </a>
Добавляем
Код
<?php echo $new_img ?>
<?php echo $leader_img ?>


6. для вывода в карточке товара идем в components\com_virtuemart\themes\default_my\templates\product_details\flypage.tpl.php (или тот, который используется у вас)
и после
Код
<?php echo $product_image ?>
Добавляем
Код
<?php echo $new_img_fly ?>
<?php echo $leader_img_fly ?>


Вроде все.

Автор выводит переменные после, я вывожу до
Код
<?php echo $product_image ?>
переменные
Код
<?php echo $new_img_fly ?>
<?php echo $leader_img_fly ?>
и с предоставленным выше ксс у меня отображается в мозилле и в IE7 все хорошо. Щас в portable Опере 10.00.1699 запустил, тоже на месте ярлычек, во всех трех браузерах выводит где надо. Надо вам с ксс играться и ровнять. Можете мой вариант попробовать. На других пользователях проверял, говорят выводит там же.
*

Infosakh

  • Живу я здесь
  • 1257
  • 67
ну справа 0 потому что 0 нужно, у всех ведь в разных местах может выводиться картинка товара в browes  ;D попробую через CSS сделать  ^-^
*

Infosakh

  • Живу я здесь
  • 1257
  • 67
Что то не смотрит он в CSS, только реагирует на то где я <div style="position: relative;"><?php echo $form_addtocart ?></div> поставлю, почему?  ^-^
И второй вопрос, с картинками new и lider_prodazh. Автор топа выводит эти переменные исходя из некоторых значений, ну допустим новинка это товар с датой меньше текущей даты на 10 дней и т.д. Тобишь она прописывает эти условия в файлике shop.browse.php (я также делал для себя). Теперь вопрос, если выводить переменные new и lider_prodazh в файликах flypage и browes то каким образом будут эти переменные определяться? Я так понимаю в shop.browse.php должен быть чистым не правленным?  ^-^
*

Infosakh

  • Живу я здесь
  • 1257
  • 67
Самые последние новости с полигона тестирования  ;D вообщем всё удалось один вопрос остался открытым, почему то не смотрят переменные в CSS, хоть что там прописывай выводятся переменные в том месте где они размещены в коде. Получается не красиво  ^-^
*

dark_star

  • Осваиваюсь на форуме
  • 109
  • 7
Самые последние новости с полигона тестирования  ;D вообщем всё удалось один вопрос остался открытым, почему то не смотрят переменные в CSS, хоть что там прописывай выводятся переменные в том месте где они размещены в коде. Получается не красиво  ^-^
Пример кода сюда, мы откуда знаем прописан у вас ксс стиль или нет. Код fly-страницы и browse и ксс код, чтоб было о чем говорить.
*

Infosakh

  • Живу я здесь
  • 1257
  • 67
эээ, так речь идет о CSS vm? или CSS шаблона сайта?  ^-^
*

dark_star

  • Осваиваюсь на форуме
  • 109
  • 7
Дак ты где ксс прописывал? или ты вообще не прописывал и спрашиваешь почему не выводится?
У меня прописано в ксс шаблона.
У меня конечно на такое ответ есть.
Ты где-то чего то не дописал, и чтобы разобратся и помочь, я у тебя запросил коды трех файлов и еще приложи участок кода, где ты прописываешь ксс стили:
Или как на примере или как я делал
Код
// Check for new product wher $db_product query is "SELECT * FROM #__{vm}_product WHERE
// product_id='$product_id' "
if ((time() - $db_product->f("cdate")) < (14 * 86400)) { // 14 Days *  (number of seconds in  24 hours)
     //$new_img = "New Item"; // code required for new tag - text only version
     $new_img_fly = '<div style="position: absolute; right: 0px; top: 0;"><img src="'. $mosConfig_live_site .'/images/stories/labels_product/new_img_fly.png" border="0" alt="Новинка" title="Новинка" align="right"></div>'; // code required for new tag
} else {
     $new_img_fly = "";
}

if( $db_product->f("product_special") == "Y" ) {
     $leader_img_fly = '<div style="position: absolute; right: 0px; bottom: 0;"><img src="'. $mosConfig_live_site .'/images/stories/labels_product/leader_img_fly.png" border="0" alt="Лидер продаж" title="Лидер продаж" align="right"></div>'; // code required for new tag
} else {
     $leader_img_fly = "";
}
Код
<div id="cat_liderprodash"......

И в стиль себе прописал:
#cat_liderprodash{
position:relative;
top:-180px;
}
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Фильтр, или расширенный поиск по характеристикам товара

Автор kryvenko

Ответов: 586
Просмотров: 145896
Последний ответ 18.08.2014, 14:01:59
от alex446
Вывод товара из дочерних категорий в родительскую

Автор B0nG

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

Автор newsky

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

Автор Arkadiy

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

Автор abrodski

Ответов: 1
Просмотров: 331
Последний ответ 20.05.2014, 14:30:44
от abrodski