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

alexkrin

  • Новичок
  • 8
  • 0 / 0
  • Вечный школьнег
Доброго времени суток!

У меня возникла следующая проблема при настройке VirtueMart 1.1.4. Дело касается вывода сопутствующих товаров. Мне необходимо выводить около 9 позиций сопутствующих товаров в карточке товара. Изменить количество товаров я могу, а вот как сделать так, чтобы они отражались не в одну строчку, а в несколько? Например в 3 ряда по 3 товара в каждом.... Помогите, пожалуйста.
Насколько я понимаю, изменения необходимо внести здесь: /administrator/components/com_virtuemart/html/shop.product_details.php  
Вот этот код:

Код
// Let's have a look wether the product has related products.
$q = "SELECT product_sku, related_products FROM #__{vm}_product,#__{vm}_product_relations ";
$q .= "WHERE #__{vm}_product_relations.product_id='$product_id' AND product_publish='Y' ";
$q .= "AND FIND_IN_SET(#__{vm}_product.product_id, REPLACE(related_products, '|', ',' )) LIMIT 3, 9";
$db->query( $q );
/*// This shows randomly selected products from the products table
// if you don't like to set up related products for each product
$q = "SELECT product_sku FROM #__{vm}_product ";
$q .= "WHERE product_publish='Y' AND product_id != $product_id ";
$q .= "ORDER BY RAND() LIMIT 0, 4";
$db->query( $q );*/
$related_products = '';
if( $db->num_rows() > 0 ) {
$tpl->set( 'ps_product', $ps_product );
$tpl->set( 'products', $db );
$related_products = $tpl->fetch( '/common/relatedProducts.tpl.php' );
}

  :o
*

drinkmaker

  • Захожу иногда
  • 65
  • 13 / 0
  • Щасливцю?
За вывод отвечает файл шаблона relatedProducts.tpl.php

Скорее всего он у тебя лежит тут:  ВВВ.ТвойСайт.Ком/components/com_virtuemart/themes/ТвойШаблон/templates/common/relatedProducts.tpl.php

У меня экзотический шаблон, выглядит вот так:

Код
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>

<hr/>

<h3><?php echo $VM_LANG->_('PHPSHOP_RELATED_PRODUCTS_HEADING')?></h3>
 
<table width="100%" align="center">
<tr>
    <?php
    while( $products->next_record() ) { ?>
      <td valign="top">
      <?php echo $ps_product->product_snapshot( $products->f('product_sku') )?>
      </td>
<?php
    }
?>
    </tr>
</table> 

Ну и правим его чтоб было скажем три колонки, как нибудь так:

Код
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>

<hr/>

<h3><?php echo $VM_LANG->_('PHPSHOP_RELATED_PRODUCTS_HEADING')?></h3>
 
<table width="100%" align="center">
  <?php
    while( $products->next_record() ) { ?>
<tr>
        <td valign="top">
      <?php echo $ps_product->product_snapshot( $products->f('product_sku') );  $products->next_record() ; ?>
      </td>

              <td valign="top">
      <?php echo $ps_product->product_snapshot( $products->f('product_sku') ); $products->next_record() ; ?>
      </td>

              <td valign="top">
      <?php echo $ps_product->product_snapshot( $products->f('product_sku') )?>
      </td>
  </tr>
<?php
    }
?>
 
</table>

Следует отметить, что это не совсем правильное решение, оно работает только в том случае если количество связанных товаров кратно 3 :))
Но принцип, я думаю, ясен. Я просто запямятовал PHP, это на скорую руку.
Если не получится говори, помогу.
Долго думали - чего котенку в организме не хватает, если он ест полиэтилен. Решили, что мозгов.
*

prostoy

  • Захожу иногда
  • 385
  • 5 / 1
  • Истина где то рядом.
У меня проблема если я ввожу например 4-ре сопутствуюших товаров то получается что 4-й товар копируется еще 2-раза что бы было кратное 3 товаром на каждой стороке. Как это исправить?
*

Sequels

  • Захожу иногда
  • 104
  • 5 / 0
У меня ВМ версии 1.1.8, помогите где можно исправить этот код, т.к. вышеуказанного у меня нет.
У меня сопутствующих товаров по несколько штук, а выводит только по 4 и все.
*

Sequels

  • Захожу иногда
  • 104
  • 5 / 0
Повторно прошу помочь, не могу решить проблему  !
*

Minstrel

  • Новичок
  • 7
  • 3 / 0
  • Minstrel
Для этого необходимо заменить код файла components/com_virtuemart/themes/default/Template/common/relatedProducts.tpl.php на
Код: php
    <?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>
    <hr/>
    <h3><?php echo $VM_LANG->_('PHPSHOP_RELATED_PRODUCTS_HEADING')?></h3>
    <table width="100%" align="center">
    <tr>
    <?php
    $td_counter = 1;
    while( $products->next_record() ) {
       ?>
       <td valign="top">
          <?php echo $ps_product->product_snapshot( $products->f('product_sku') )?>
       </td>
    <?php
    $td_counter++;
       // Added by Minstrel: new rows
       if ($td_counter == 4) { // Defining row element count
          echo "</tr><tr>";
          $td_counter = 1;      // Reset counter
       }
    }
    ?>
    </tr>
    </table>
« Последнее редактирование: 20.12.2011, 06:18:11 от Minstrel »
*

Sequels

  • Захожу иногда
  • 104
  • 5 / 0
Для этого необходимо заменить код файла components/com_virtuemart/themes/default/Template/common/relatedProducts.tpl.php на

Неа :(
В первой строке выводит 3 товара, а во вторую все остальные и получается тихий ужас %)

Уже голову сломал, столько вариантов перепробовал...
*

Minstrel

  • Новичок
  • 7
  • 3 / 0
  • Minstrel
Да, действительно, у меня была реализация для двухстрочного вывода.
Чтобы работало для любого количества строк,
надо еще добавить сброс счетчика $td_counter = 1; после вывода </tr><tr>
Добавил в код
*

Sequels

  • Захожу иногда
  • 104
  • 5 / 0
Да, действительно, у меня была реализация для двухстрочного вывода.
Чтобы работало для любого количества строк,
надо еще добавить сброс счетчика $td_counter = 1; после вывода </tr><tr>
Добавил в код

Отлично! Спасибо огромное за помощь!
*

Igoritaly

  • Давно я тут
  • 655
  • 2 / 0
Да, действительно, у меня была реализация для двухстрочного вывода.
Чтобы работало для любого количества строк,
надо еще добавить сброс счетчика $td_counter = 1; после вывода </tr><tr>
Добавил в код
А у меня все равно выводит не больше четырех товаров
*

Igoritaly

  • Давно я тут
  • 655
  • 2 / 0
Мне в принципе не важно сколько в строку будет, главное что-бы он выводил то количество материалов которое я указал в админке в разделе "Сопутствующие товары". Я указал 7 а он выводит всего лишь 3
*

saharin88

  • Захожу иногда
  • 292
  • 20 / 1
  • JoomWork
Minstrel
Спасибо!
*

Minstrel

  • Новичок
  • 7
  • 3 / 0
  • Minstrel
А у меня все равно выводит не больше четырех товаров
Количество в строке определяется вот этим числом
Код: php
if ($td_counter == 4) { // Defining row element count

Мне в принципе не важно сколько в строку будет, главное что-бы он выводил то количество материалов которое я указал в админке в разделе "Сопутствующие товары". Я указал 7 а он выводит всего лишь 3
А это уже надо разбираться, почему он не накапливает в переменной $product необходимое количество доп. товаров.
Скорее всего, максимальное число задано где-то в настройках админки виртумарта.

Я указал 7 а он выводит всего лишь 3
Это вы где указываете?
« Последнее редактирование: 20.12.2011, 06:22:40 от Minstrel »
*

San_Sanich

  • Новичок
  • 7
  • 0 / 0
Спасибо автору за грамотное объяснение! Вот тут - http://brj.pp.ru/wiki/commerce/virtuemart/relatedproducts есть ещё информация, возможно кому-то пригодится.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Количество просмотров товара VirtueMart Существует?

Автор grishin

Ответов: 38
Просмотров: 7395
Последний ответ 22.08.2020, 08:44:29
от rsn
Не выводит списком Настраиваемое поле в VirtueMart 5.0

Автор ЛюдмилаМир

Ответов: 2
Просмотров: 394
Последний ответ 25.08.2019, 16:27:04
от ЛюдмилаМир
Joomla VirtueMart помощь в переводе

Автор akkord31

Ответов: 0
Просмотров: 352
Последний ответ 21.05.2019, 09:14:02
от akkord31
Миграция с Joomla 1.5 на 3 с VirtueMart 1.1.9 stable на свежую. Кто поможет?

Автор Гриша-Десантник

Ответов: 7
Просмотров: 499
Последний ответ 23.04.2019, 10:22:25
от draff
Переход на https VirtueMart 1.1.4 проблемы с фото

Автор Sergey1984

Ответов: 4
Просмотров: 602
Последний ответ 25.10.2018, 20:56:54
от Sergey1984