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

pvlk

  • Осваиваюсь на форуме
  • 37
  • 2 / 0
Встал вопрос об отображении списка товаров двумя способами. Решение частично было найдено на сайте VirtueMart.net, спасибо так же beglear за указанные ошибки. (Virtuemart 1.1.3)
Собственно решение...
в файл browse_x.php добавляем условия
Код
    
<?php
    $ListType = $_GET['lType'];
    if($ListType == "variant2" || !isset($ListType)){
?>

Первый вариант вывода

<?php
    } else if($ListType == "variant1"){
?>

Второй вариант вывода

<?php
    }
?>

в файл browse_orderbyform.tpl.php добавляем две ссылки
Код
<a href="index.php?option=com_virtuemart&page=shop.browse&category_id=<?php echo $_GET['category_id'] ?>&Itemid=<?php echo $_GET['Itemid'] ?>&lType=variant1">вариант 1</a> | <a href="index.php?option=com_virtuemart&page=shop.browse&category_id=<?php echo $_GET['category_id'] ?>&Itemid=<?php echo $_GET['Itemid'] ?>&lType=varian2">вариант 2</a>

в файле shop.browse.php находим код
Код
$db_browse->query( $list );
$db_browse->next_record();

$products_per_row = (!empty($category_id))? $db_browse->f("products_per_row") : PRODUCTS_PER_ROW;
  
if( $products_per_row < 1 ) {
$products_per_row = 1;
}
и меняем его на
Код
$db_browse->query( $list );
$db_browse->next_record();

$products_per_row = (!empty($category_id))? $db_browse->f("products_per_row") : PRODUCTS_PER_ROW;
  
    if($ListType == "details" || !isset($ListType)){$products_per_row = 3;} else {$products_per_row = 1;};

if( $products_per_row < 1 ) {
$products_per_row = 1;
}
в данном случае
Код
$products_per_row = 3;
, меняете под себя
« Последнее редактирование: 05.11.2009, 16:44:27 от pvlk »
*

pvlk

  • Осваиваюсь на форуме
  • 37
  • 2 / 0
частично решение найдено http://forum.virtuemart.net/index.php?topic=54070.0

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

pvlk

  • Осваиваюсь на форуме
  • 37
  • 2 / 0
проблему решил присвоением значения $products_per_row в shop.browse.php
*

pvlk

  • Осваиваюсь на форуме
  • 37
  • 2 / 0
+1
Оформите красиво решение и привидите ссылку на демо - поместим в "Решённые вопросы"
Кажись я погорячился не корректно передается  $category_id  и Itemid. подскажите что не так в ссылке

index.php?option=com_virtuemart&page=shop.browse&category_id='.$_GET['category_id'].'&Itemid='.$_GET['Itemid'].'&lType=details

и тогда вопрос будет решен
*

pvlk

  • Осваиваюсь на форуме
  • 37
  • 2 / 0
Как видно я где то напортачил.
У меня в некоторых категориях показывает browse_orderbyform, а в некоторых нет :(
И при выборе отображения почему то отображает одну и ту же категорию

тут есть
http://faunafood.ru/index.php?option=com_virtuemart&page=shop.browse&category_id=17&Itemid=45
а тут нету
http://faunafood.ru/index.php?option=com_virtuemart&page=shop.browse&category_id=153&Itemid=45

такое ощущение что в строке
index.php?option=com_virtuemart&page=shop.browse&category_id='.$category_id.'&Itemid='.$_GET['Itemid'].'&lType=details

$category_id и Itemid постоянные значения
« Последнее редактирование: 04.11.2009, 23:26:37 от pvlk »
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
я понял в чём дело -
index.php?option=com_virtuemart&page=shop.browse&category_id=<?php echo $_GET['category_id'] ?>&Itemid=<?php echo $_GET['Itemid'] ?>&lType=details
нужно было сразу ссылку дать
*

pvlk

  • Осваиваюсь на форуме
  • 37
  • 2 / 0
я понял в чём дело -
index.php?option=com_virtuemart&page=shop.browse&category_id=<?php echo $_GET['category_id'] ?>&Itemid=<?php echo $_GET['Itemid'] ?>&lType=details
нужно было сразу ссылку дать

Ура все заработало! СПАСИБО!
Немного свободного времени и оформлю по человечески!
*

sleed

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Первый вариант вывода
Второй вариант вывода

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

sleed

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
browse_listtable, browse_notables - как такой выбор сделать. http://zapravkashop.ru/hp-cherno-belye-lazernye-printery-i-mfu.html - здесь так сделали. помогите как мне так себе сделать....всё вставил, а что в выбор вставить не пойму  ! ! !
*

sleed

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
       <?php
    $ListType = $_GET['lType'];
    if($ListType == "browse/includes/".$browse_listtable.".tpl.php" || !isset($ListType)){
?>

Первый вариант вывода

<?php
    } else if($ListType == "browse/includes/".$browse_notables.".tpl.php"){
?>

Второй вариант вывода

<?php
    }
?> 
- сделал так. и тоже не работает... !
*

sleed

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
не туда походу код вставил, подскажите  ! , куда вставить код ниже...непойму  !...пример напишите, если не трудно...

productListStyle=browse/includes/browse_notables.tpl.php
productListStyle=browse/includes/browse_listtable.tpl.php

*

sleed

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Всё сделал. по первому посту. и не чего не меняется. http://krepezh.org/magazin.html . Щас тут стоит таблицей. хочу что переключало вид как щас на сайте таблицей и без таблицы как есть стандартно картинками. Вот 3 файла, что я менял. http://depositfiles.com/files/v14tco3lh  В чём тут загвостка..помогите разабраться, таблицей и картинками чтоб выбор был.
*

sleed

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
http://zapravkashop.ru/hp-cherno-belye-lazernye-printery-i-mfu.html  - здесь так сделано.  переключение между товаром и картинками.
они сказали что

 shop.browse.php - в самом низу подключается шаблон. если сделать кнопки преключения и в зависимости от того какая кнопка - менять стиль.

if (!empty($browsestyle)) {
 $tplproductListStyle = "browse/includes/".$browsestyle.".tpl.php";
 }
 else {
 $tplproductListStyle = $tpl->config->get( 'productListStyle' );
 }
 echo $tpl->fetch($tplproductListStyle );

где $browsestyle - имя шаблона вывода товаров,что вы передаете через кнопку


Я сделал как они написали.

browse_orderbyform.tpl.php сюда я понял что кнопки вставлять надо.

Вот код что я вставил.
<a href="index.php?option=com_virtuemart&page=shop.browse&category_id=<?php echo $_GET['category_id'] ?>&Itemid=<?php echo $_GET['Itemid'] ?>&lType=browse_listtable">вариант 1</a> | <a href="index.php?option=com_virtuemart&page=shop.browse&category_id=<?php echo $_GET['category_id'] ?>&Itemid=<?php echo $_GET['Itemid'] ?>&lType=browse_notables">вариант 2</a>

В shop.browse.php код такой вставил.
if (!empty($browse_listtable)) {
 $tplproductListStyle = "browse/includes/".$browse_notables.".tpl.php";
 }
 else {
 $tplproductListStyle = $tpl->config->get( 'productListStyle' );
 }
 echo $tpl->fetch($tplproductListStyle );


не работает тоже так переключение между таблицией и картинками. Подскажите где я допустил ошибку.
*

DaVinchy

  • Захожу иногда
  • 326
  • 42 / 3
Попробуй сделать все ЗАНОВО так, как написано в первом посте!
*

sleed

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
всё 1в1 по 1 посту.  http://krepezh.org/magazin.html - щас тут так стоит . Вот 3 файла, что я менял. http://depositfiles.com/files/v14tco3lh  . по первому посту я непойму что там меняться должно. мне надо шаблоны чтоб менялись browse_listtable, browse_notables. пенеключение между таблицей и картинками. Спецы помогите... !
*

DaVinchy

  • Захожу иногда
  • 326
  • 42 / 3
мне надо шаблоны чтоб менялись browse_listtable, browse_notables. пенеключение между таблицей и картинками.
Тут используется один файл browse_X (а не browse_listtable, browse_notables), просто код из этих файлов тебе надо вставить
Цитировать
<?php
    $ListType = $_GET['lType'];
    if($ListType == "variant2" || !isset($ListType)){
?>

Сюда-> Первый вариант вывода

<?php
    } else if($ListType == "variant1"){
?>

Сюда-> Второй вариант вывода

<?php
    }
?>
*

sleed

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
я сразу не понял какой код туда вставлять надо. Но оно только меняет в таком виде как оформлены browse_1.php, browse_2.php и т.д.
Я вставил в Первый вариант вывода browse_1.php, а во Второй вариант вывода код browse_listtable.tpl.php (как тут оформлено мне надо) и щас когда нажимаю на выбор чтоб отображалось таблицей у меня их 3 одинаковых сразу на странице. http://rails.com.ua/index.php?option=com_virtuemart&Itemid=95. выбор работает - спасибо DaVinchy, что тыкнул куда вставлять, чего только 3 таблицы(
« Последнее редактирование: 11.05.2011, 01:14:59 от sleed »
*

ivan01

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
 Парни, все работает, кроме кол-ва товаров в строке . Мне нужно, чтобы 1вариант products_per_row = 1, а второй вариант products_per_row = 3.  Если в shop_browse  добавляю
Цитировать
if($ListType == "variant2" || !isset($ListType)){$products_per_row = 3;} else {$products_per_row = 1;};
, то и в 1ом и 2ом варианте кол-во товаров в строке - 3, VirtueMart 1.1.4  что неправильно делаю??

да, еще в ссылке
Цитировать
<a href="index.php?option=com_virtuemart&page=shop.browse&category_id=<?php echo $_GET['category_id'] ?>&Itemid=<?php echo $_GET['Itemid'] ?>&lType=variant1">вариант 1</a> | <a href="index.php?option=com_virtuemart&page=shop.browse&category_id=<?php echo $_GET['category_id'] ?>&Itemid=<?php echo $_GET['Itemid'] ?>&lType=varian2">вариант 2</a>
  потеряна буква "t" в слове variant2
*

DaVinchy

  • Захожу иногда
  • 326
  • 42 / 3
в условии попробуйте вместо || прописать &&
*

ivan01

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
в условии попробуйте вместо || прописать &&

 кол-во товаров в строке становится = 1 и в вариант1, и в варианте2.
*

DaVinchy

  • Захожу иногда
  • 326
  • 42 / 3
а если вот так
Код
if($ListType == "variant2" && isset($ListType)){$products_per_row = 3;} else {$products_per_row = 1;};
*

ivan01

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Цитировать
а если вот так
Код
if($ListType == "variant2" && isset($ListType)){$products_per_row = 3;} else {$products_per_row = 1;};

тоже не помогло... эффект как и с || на &&
блин, перелопатил весь инет, тут самое нормальное решение представлено, но c products_per_row косяк, у меня )  


разобрался, в shop.browse.php добавил $ListType = $_GET['ListType'];   теперь меняется кол-во товаров в строке..
« Последнее редактирование: 25.07.2011, 20:36:19 от ivan01 »
*

tefun

  • Живу я здесь
  • 2540
  • 130 / 1
  • Легче всего обмануть себя
Тут используется один файл browse_X (а не browse_listtable, browse_notables), просто код из этих файлов тебе надо вставить
Здраствуйте, не могли бы Вы примером показать как вставить шаблон browse_x (php не знаю самоучка). Делаю все как описано выше, осталось только это

<?php
    $ListType = $_GET['lType'];
    if($ListType == "variant2" || !isset($ListType)){
?>

Сюда-> Первый вариант вывода   <--что здесь писать допустим на шаблон browse_listtable.tpl.php таблица

<?php
    } else if($ListType == "variant1"){
?>

Сюда-> Второй вариант вывода   <--что здесь писать browse_x допустим
<?php
    }
?>
« Последнее редактирование: 13.10.2011, 01:26:00 от tefun »
то что постится на фОруме, не вырубается тапОрами
_______________________________________________
Мысли и женщины вместе не приходят М.Ж.
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
*

tefun

  • Живу я здесь
  • 2540
  • 130 / 1
  • Легче всего обмануть себя
Код
echo $tpl->fetch( $tpl->config->get( 'productListStyle' ) ); //возьмет то что выбрано в админке
echo $tpl->fetch( 'browse/includes/browse_listtable_my.tpl.php' ); //что-то своё
Блин, самое обидное у меня с первого раза все получилось >:(
Вообщем у меня теперь вариант 2 показывает, жмем на вар 1
Fatal error: Call to a member function fetch() on a non-object in ....... components\com_virtuemart\themes\default\templates\browse\browse_22.php on line 18
Что делать?
Шаблон вот browse_x в админке, он же вар 2

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


<?php
    $ListType = $_GET['lType'];
    if($ListType == "variant2" || !isset($ListType)){

?>
<?php echo $tpl->fetch( $tpl->config->get( 'productListStyle' ) ); //возьмет то что выбрано в админке ?>

<?php
    } else if($ListType == "variant1"){
 
?>

<?php echo $tpl->fetch( 'browse/browse_10.php' ); //что-то своё?>



<?php
    }
?>
<table style="height: 223px;" border="0" cellspacing="0" cellpadding="0" width="203">

<tbody>

<tr>
<td colspan="4" height="3" valign="top"> </td>
</tr>

<tr>
<td colspan="4" align="center" valign="middle">
<div style='position: relative;'>
<div>
     <script type="text/javascript">//<![CDATA[
        document.write('<a href="javascript:void window.open(\'<?php echo $product_full_image ?>\', \'win2\', \'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=<?php echo $full_image_width ?>,height=<?php echo $full_image_height ?>,directories=no,location=no\');">');
        document.write( '<?php echo ps_product::image_tag( $product_thumb_image, 'class="browseProductImage" border="0" title="'.$product_name.'" alt="'.$product_name .'"' )?></a>' );
        //]]>
        </script>
        <noscript>
            <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>
        </noscript>
        </div>
<div style='position: absolute; right: 15px; top: 0;'>
<?php echo $new_img; ?>
</div>
<div style='position: absolute; right: 15px; bottom: 0;'>
<?php echo $leader_img; ?>
</div>
</div>
</td>
</tr>

<tr>
<td width="193" colspan="3" height="38" align="center"> 

<br>
<a title="<?php echo $product_name ?>" href="<?php echo $product_flypage ?>">
            <?php echo $product_name ?></a>
           

</td>
<td width="8" height="38" align="center">        
</td>
<td width="0" height="38" align="center"> </td>
</tr>

<tr>
<td width="28"> </td>
<td width="110" height="38" align="left" valign="bottom">

<br>
<a title="<?php echo $product_name ?>" href="<?php echo $product_flypage ?>">
            </a>
            <?php echo $product_rating ?>

</td>

<td width="55" height="38" align="right" valign="bottom">
<div>
            <?php echo $product_price ?><?php echo $form_addtocart ?><?php echo $quantaty ?>
           
</div>
</td>
<td width="8">        
</td>
<td width="0"> </td>
</tr>

<tr>
<td colspan="4" height="8" valign="top"> </td>
</tr>

</tbody>
</table>
<p></p>
</div>

то что постится на фОруме, не вырубается тапОрами
_______________________________________________
Мысли и женщины вместе не приходят М.Ж.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор beliyadm

Ответов: 1448
Просмотров: 363039
Последний ответ 21.07.2015, 06:21:55
от Серегин
Альтернативный модуль вывода категорий товаров (mod_kdz_vm_categories)

Автор kordima

Ответов: 89
Просмотров: 26473
Последний ответ 19.02.2015, 22:02:14
от kordima
Отображение товаров в виде таблицы

Автор Doppelganger

Ответов: 183
Просмотров: 57237
Последний ответ 15.04.2014, 23:27:29
от 4ifir
Пагинация в категории товаров

Автор chgr73

Ответов: 0
Просмотров: 1170
Последний ответ 20.02.2014, 16:06:50
от chgr73
Сортировка товаров по цене

Автор Batyabest

Ответов: 2
Просмотров: 1457
Последний ответ 10.01.2014, 13:37:55
от Batyabest