1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

VM 2.x Список товаров в табличке, как сделать?

Тема в разделе "Virtuemart", создана пользователем LDPS, 25 июн 2012.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
Статус темы:
Закрыта.
  1. LDPS

    LDPS Постоялец

    Регистр.:
    29 июн 2009
    Сообщения:
    97
    Симпатии:
    7
    Добрый день!
    Перешел на версию VM2 и не могу понять как сделать вывод товаров в категории в виде списка... на vm 1.0 этот вопрос решался встроенным шаблоном.
     
  2. binh

    binh

    Регистр.:
    6 сен 2011
    Сообщения:
    284
    Симпатии:
    75
    Есть очень хорошая статейка про вывод дочерних товаров таблицей, может пригодится
    http://joomla-create.net/item/tovar-table.html
    А так, увы разработчики встроили только один макет отображения товаров. Нужно будет перекраивать ручками.
     
  3. LDPS

    LDPS Постоялец

    Регистр.:
    29 июн 2009
    Сообщения:
    97
    Симпатии:
    7
    спасибо за отклик, дочерние товары это конечно хорошо... с основными бы только разобраться... видимо в этом проекте пока не получится перейти на vm2. вот не понимаю зачем убирать в новых версиях - то что хорошо работало и то что нужно :(
     
  4. binh

    binh

    Регистр.:
    6 сен 2011
    Сообщения:
    284
    Симпатии:
    75
    Разработчики заявили что переписали весь код почти с нуля, видно у них уже не было сил писать шаблоны вывода, а может пока и руки не дошли, лично я пока остался на vm 1.1.9
     
  5. red_heads

    red_heads

    Регистр.:
    30 янв 2007
    Сообщения:
    159
    Симпатии:
    26
    Править надо файл components\com_virtuemart\views\category\tmpl\ default.php
    Либо в шаблоне сайта если там будет вывод компонента в папке html\com_virtuemart тот же файл
    У меня не совсем получается, я поубирала все дивы, из него . Но из за этого теперь и категории в одну строку выводятся
    Надо переделывать.
    Товары выводятся в таблице. Вот файл вчера делала, если есть у кого уже готовое решение выложите. Очень актуально.
     

    Вложения:

    • default.zip
      Размер файла:
      3,1 КБ
      Просмотров:
      49
  6. vitash

    vitash Создатель

    Регистр.:
    26 июл 2012
    Сообщения:
    20
    Симпатии:
    1
    Список:
    (VM 2.0.8c) administrator -> com_virtuemart -> Настройки - > Настройки -> Шаблоны -> Товаров в строке 1
    Чистим кэш браузера, джумлы.
    з.ы. если честно, не совсем понятно название темы: "Список товаров в табличке..." и первый пост: "..как сделать вывод товаров в категории в виде списка..."
     
  7. red_heads

    red_heads

    Регистр.:
    30 янв 2007
    Сообщения:
    159
    Симпатии:
    26
    у меня стоит товаров в строке 1, ток почему то они идут по три в строке. Хоть чисти его, хоть не чисти.
     
  8. greenscale

    greenscale Создатель

    Регистр.:
    14 авг 2012
    Сообщения:
    27
    Симпатии:
    13
    Попробуйте зайти в components/com_virtuemart/category/tmpl/default.php. В нем найдите строку:
    $BrowseProducts_per_row = $this->perRow;
    Вместо этой строки попробуйте написать:
    $BrowseProducts_per_row = 1;

    У самого была такая проблема, исправил только таким образом (не исключаю возможности того, что существует более элегантное решение проблемы).
     
  9. lara77775

    lara77775 Писатель

    Регистр.:
    15 сен 2011
    Сообщения:
    8
    Симпатии:
    0
    тема неактуальна уже вроде , но все же напишу, так как вдруг поможет кому-нить (сама искала 2 дня по интернету, кто как делал)
    я переделала
    components/com_virtuemart/category/tmpl/default.php. (только в своем шаблоне)
    сначала нужно в админке в настройках категории выставить товаров в строке - 1


    <?php
    /**
    *
    * Show the products in a category
    *
    * @package VirtueMart
    * @subpackage
    * @author RolandD
    * @author Max Milbers
    * @todo add pagination
    * @link http://www.virtuemart.net
    * @copyright Copyright (c) 2004 - 2010 VirtueMart Team. All rights reserved.
    * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
    * VirtueMart is free software. This version may have been modified pursuant
    * to the GNU General Public License, and as distributed it includes or
    * is derivative of works licensed under the GNU General Public License or
    * other free or open source software licenses.
    * @version $Id: default.php 6556 2012-10-17 18:15:30Z kkmediaproduction $
    */

    //vmdebug('$this->category',$this->category);
    vmdebug ('$this->category ' . $this->category->category_name);
    // Check to ensure this file is included in Joomla!
    defined ('_JEXEC') or die('Restricted access');
    JHTML::_ ('behavior.modal');
    /* javascript for list Slide
    Only here for the order list
    can be changed by the template maker
    */
    $js = "
    jQuery(document).ready(function () {
    jQuery('.orderlistcontainer').hover(
    function() { jQuery(this).find('.orderlist').stop().show()},
    function() { jQuery(this).find('.orderlist').stop().hide()}
    )
    });
    ";

    $document = JFactory::getDocument ();
    $document->addScriptDeclaration ($js);

    /*$edit_link = '';
    if(!class_exists('Permissions')) require(JPATH_VM_ADMINISTRATOR.DS.'helpers'.DS.'permissions.php');
    if (Permissions::getInstance()->check("admin,storeadmin")) {
    $edit_link = '<a href="'.JURI::root().'index.php?option=com_virtuemart&tmpl=component&view=category&task=edit&virtuemart_category_id='.$this->category->virtuemart_category_id.'">
    '.JHTML::_('image', 'images/M_images/edit.png', JText::_('COM_VIRTUEMART_PRODUCT_FORM_EDIT_PRODUCT'), array('width' => 16, 'height' => 16, 'border' => 0)).'</a>';
    }


    echo $edit_link; */
    if (empty($this->keyword)) {
    ?>
    <div class="category_description">
    <?php echo $this->category->category_description; ?>
    </div>
    <?php
    }



    /* Show child categories */

    if (VmConfig::get ('showCategory', 1) and empty($this->keyword)) {
    if ($this->category->haschildren) {

    // Category and Columns Counter
    $iCol = 1;
    $iCategory = 1;

    // Calculating Categories Per Row
    $categories_per_row = VmConfig::get ('categories_per_row', 3);
    $category_cellwidth = ' width' . floor (100 / $categories_per_row);

    // Separator
    $verticalseparator = " vertical-separator";
    ?>

    <div class="category-view">

    <?php // Start the Output
    if (!empty($this->category->children)) {
    foreach ($this->category->children as $category) {

    // Show the horizontal seperator
    if ($iCol == 1 && $iCategory > $categories_per_row) {
    ?>
    <div class="horizontal-separator"></div>
    <?php
    }

    // this is an indicator wether a row needs to be opened or not
    if ($iCol == 1) {
    ?>
    <div class="row">
    <?php
    }

    // Show the vertical seperator
    if ($iCategory == $categories_per_row or $iCategory % $categories_per_row == 0) {
    $show_vertical_separator = ' ';
    } else {
    $show_vertical_separator = $verticalseparator;
    }

    // Category Link
    $caturl = JRoute::_ ('index.php?option=com_virtuemart&view=category&virtuemart_category_id=' . $category->virtuemart_category_id);

    // Show Category
    ?>
    <div class="category floatleft<?php echo $category_cellwidth . $show_vertical_separator ?>">
    <div class="spacer">
    <h2>
    <a href="<?php echo $caturl ?>" title="<?php echo $category->category_name ?>">
    <?php echo $category->category_name ?>
    <br/>
    <?php // if ($category->ids) {
    echo $category->images[0]->displayMediaThumb ("", FALSE);
    //} ?>
    </a>
    </h2>
    </div>
    </div>
    <?php
    $iCategory++;

    // Do we need to close the current row now?
    if ($iCol == $categories_per_row) {
    ?>
    <div class="clear"></div>
    </div>
    <?php
    $iCol = 1;
    } else {
    $iCol++;
    }
    }
    }
    // Do we need a final closing row tag?
    if ($iCol != 1) {
    ?>
    <div class="clear"></div>
    </div>
    <?php } ?>
    </div>

    <?php
    }
    }
    ?>
    <div class="browse-view">
    <?php
    if (!empty($this->keyword)) {
    ?>
    <h3><?php echo $this->keyword; ?></h3>
    <?php
    } ?>
    <?php if ($this->search !== NULL) { ?>
    <form action="<?php echo JRoute::_ ('index.php?option=com_virtuemart&view=category&limitstart=0&virtuemart_category_id=' . $this->category->virtuemart_category_id); ?>" method="get">

    <!--BEGIN Search Box -->
    <div class="virtuemart_search">
    <?php echo $this->searchcustom ?>
    <br/>
    <?php echo $this->searchcustomvalues ?>
    <input name="keyword" class="inputbox" type="text" size="20" value="<?php echo $this->keyword ?>"/>
    <input type="submit" value="<?php echo JText::_ ('COM_VIRTUEMART_SEARCH') ?>" class="button" onclick="this.form.keyword.focus();"/>
    </div>
    <input type="hidden" name="search" value="true"/>
    <input type="hidden" name="view" value="category"/>

    </form>
    <!-- End Search Box -->
    <?php } ?>

    <?php // Show child categories
    if (!empty($this->products)) {
    ?>
    <div class="orderby-displaynumber">
    <div class="width70 floatleft">
    <?php echo $this->orderByList['orderby']; ?>
    <?php echo $this->orderByList['manufacturer']; ?>
    </div>
    <div class="width30 floatright display-number"><?php echo $this->vmPagination->getResultsCounter ();?><br/><?php echo $this->vmPagination->getLimitBox (); ?></div>
    <div class="vm-pagination">
    <?php echo $this->vmPagination->getPagesLinks (); ?>
    <span style="float:right"><?php echo $this->vmPagination->getPagesCounter (); ?></span>
    </div>

    <div class="clear"></div>
    </div> <!-- end of orderby-displaynumber -->

    <h1><?php echo $this->category->category_name; ?></h1>

    <?php
    // Category and Columns Counter
    $iBrowseCol = 1;
    $iBrowseProduct = 1;

    // Calculating Products Per Row
    $BrowseProducts_per_row = $this->perRow;
    $Browsecellwidth = ' width' . floor (100 / $BrowseProducts_per_row);

    // Separator
    $verticalseparator = " vertical-separator";

    // Count products ?? why not just count ($this->products) ?? note by Max Milbers
    $BrowseTotalProducts = 0;
    foreach ($this->products as $product) {
    $BrowseTotalProducts++;
    }

    // Start the Output
    foreach ($this->products as $product) {
    /* поля*/
    defined('_JEXEC') or die('Restricted access');

    if(!class_exists("VmSmallHelper"))
    require(JPATH_VM_SITE.DS.'helpers'.DS.'vmsmallhelper.php');
    /*енд поля*/

    // Show the horizontal seperator
    if ($iBrowseCol == 1 && $iBrowseProduct > $BrowseProducts_per_row) {
    ?>
    <div class="horizontal-separator"></div>
    <?php



    }

    // this is an indicator wether a row needs to be opened or not
    if ($iBrowseCol == 1) {
    ?>
    <div class="row">
    <?php
    }

    // Show the vertical seperator
    if ($iBrowseProduct == $BrowseProducts_per_row or $iBrowseProduct % $BrowseProducts_per_row == 0) {
    $show_vertical_separator = ' ';
    } else {
    $show_vertical_separator = $verticalseparator;
    }

    // Show Products
    ?>
    <div class="product floatleft<?php echo $Browsecellwidth . $show_vertical_separator ?>">








    <div class="spacer">
    <div class="width20 floatleft center">


    <!-- The "Average Customer Rating" Part -->
    <?php if ($this->showRating) { ?>
    <span class="contentpagetitle"><?php echo JText::_ ('COM_VIRTUEMART_CUSTOMER_RATING') ?>:</span>
    <br/>
    <?php
    // $img_url = JURI::root().VmConfig::get('assets_general_path').'/reviews/'.$product->votes->rating.'.gif';
    // echo JHTML::image($img_url, $product->votes->rating.' '.JText::_('COM_VIRTUEMART_REVIEW_STARS'));
    // echo JText::_('COM_VIRTUEMART_TOTAL_VOTES').": ". $product->votes->allvotes;
    ?>
    <?php } ?>

    <?php
    if (!VmConfig::get ('use_as_catalog') and !(VmConfig::get ('stockhandle', 'none') == 'none') && (VmConfig::get ('display_stock', 1))) {
    ?>
    <!-- if (!VmConfig::get('use_as_catalog') and !(VmConfig::get('stockhandle','none')=='none')){?> -->
    <div class="paddingtop8">
    <span class="vmicon vm2-<?php echo $product->stock->stock_level ?>" title="<?php echo $product->stock->stock_tip ?>"></span>
    <span class="stock-level"><?php echo JText::_ ('COM_VIRTUEMART_STOCK_LEVEL_DISPLAY_TITLE_TIP') ?></span>
    </div>
    <?php }?>

    </div>








    <div class="width20 floatleft">

    <h2><?php echo JHTML::link ($product->link, $product->product_name); ?></h2>
    </div>

    <div class="width20 floatleft">

    <?php // Product Short Description
    if (!empty($product->product_s_desc)) {

    ?>

    <span class="product_s_desc" style="float:left;">
    <?php echo shopFunctionsF::limitStringByWord ($product->product_s_desc, 40, '...') ?>
    </span>


    <?php } ?>



    </div>

    <div class="width20 floatleft">

    <div class="product-price marginbottom12" id="productPrice<?php echo $product->virtuemart_product_id ?>">
    <?php
    if ($this->show_prices == '1') {
    if (empty($product->prices['salesPrice']) and VmConfig::get ('askprice', 1) and !$product->images[0]->file_is_downloadable) {
    echo JText::_ ('COM_VIRTUEMART_PRODUCT_ASKPRICE');
    }






    //todo add config settings
    if ($this->showBasePrice) {
    echo $this->currency->createPriceDiv ('basePrice', 'COM_VIRTUEMART_PRODUCT_BASEPRICE', $product->prices);
    echo $this->currency->createPriceDiv ('basePriceVariant', 'COM_VIRTUEMART_PRODUCT_BASEPRICE_VARIANT', $product->prices);
    }
    echo $this->currency->createPriceDiv ('variantModification', 'COM_VIRTUEMART_PRODUCT_VARIANT_MOD', $product->prices);
    if (round($product->prices['basePriceWithTax'],VmConfig::get('salesPriceRounding')) != $product->prices['salesPrice']) {
    echo '<span class="price-crossed" >' . $this->currency->createPriceDiv ('basePriceWithTax', 'COM_VIRTUEMART_PRODUCT_BASEPRICE_WITHTAX', $product->prices) . "</span>";
    }
    if (round($product->prices['salesPriceWithDiscount'],VmConfig::get('salesPriceRounding')) != $product->prices['salesPrice']) {
    echo $this->currency->createPriceDiv ('salesPriceWithDiscount', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITH_DISCOUNT', $product->prices);
    }
    echo $this->currency->createPriceDiv ('salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $product->prices);
    echo $this->currency->createPriceDiv ('priceWithoutTax', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $product->prices);
    echo $this->currency->createPriceDiv ('discountAmount', 'COM_VIRTUEMART_PRODUCT_DISCOUNT_AMOUNT', $product->prices);
    echo $this->currency->createPriceDiv ('taxAmount', 'COM_VIRTUEMART_PRODUCT_TAX_AMOUNT', $product->prices);
    $unitPriceDescription = JText::sprintf ('COM_VIRTUEMART_PRODUCT_UNITPRICE', $product->product_unit);
    echo $this->currency->createPriceDiv ('unitPrice', $unitPriceDescription, $product->prices);
    } ?>




    </div>


    </div>

    <div class="width20 floatleft">






    <!-- Пытаемся вставить ручные поля -->
    <?php // Product custom_fields
    if (!empty($product->customfieldsCart)) { ?>
    <div class="product-fields">
    <?php foreach ($product->customfieldsCart as $field)
    { ?><div style="display:inline-block;" class="product-field product-field-type-<?php echo $field->field_type ?>">
    <span class="product-fields-title" ><b><?php echo JText::_($field->custom_title)?></b></span>
    <?php //echo JHTML::tooltip($field->custom_tip, JText::_($field->custom_title), 'tooltip.png'); ?>
    <span class="product-field-display"><?php echo $field->display ?></span>

    <span class="product-field-desc"><?php echo $field->custom_field_desc ?></span>
    </div><br/ >
    <?php
    }
    ?>
    </div>
    <?php }
    /* Product custom Childs
    * to display a simple link use $field->virtuemart_product_id as link to child product_id
    * custom_value is relation value to child
    */

    if (!empty($product->customsChilds)) { ?>
    <div class="product-fields">
    <?php foreach ($product->customsChilds as $field) { ?>
    <div style="display:inline-block;" class="product-field product-field-type-<?php echo $field->field->field_type ?>">
    <span class="product-fields-title" ><b><?php echo JText::_($field->field->custom_title)?></b></span>
    <span class="product-field-desc"><?php echo JText::_($field->field->custom_value)?></span>
    <span class="product-field-display"><?php echo $field->display ?></span>

    </div><br/ >
    <?php
    } ?>
    </div>
    <?php } ?>







    </div>

    <div class="width20 floatleft">
    <span>
    <?php // Product Details Button
    echo JHTML::link ($product->link, JText::_ ('COM_VIRTUEMART_PRODUCT_DETAILS'), array('title' => $product->product_name, 'class' => 'product-details'));
    ?>










    </span>




    </div>



    </div>



    </div>
    <div class="clear">
    </div>
    </div>
    <!-- end of spacer -->
    </div> <!-- end of product -->
    <?php

    // Do we need to close the current row now?
    if ($iBrowseCol == $BrowseProducts_per_row || $iBrowseProduct == $BrowseTotalProducts) {
    ?>


    <div class="clear">
    <div class="clear"></div>











    </div> <!-- end of row -->
    <?php
    $iBrowseCol = 1;
    } else {
    $iBrowseCol++;
    }

    $iBrowseProduct++;
    } // end of foreach ( $this->products as $product )
    // Do we need a final closing row tag?
    if ($iBrowseCol != 1) {
    ?>
    <div class="clear"></div>

    <?php
    }
    ?>

    <div class="vm-pagination"><?php echo $this->vmPagination->getPagesLinks (); ?><span style="float:right"><?php echo $this->vmPagination->getPagesCounter (); ?></span></div>

    <?php
    } elseif ($this->search !== NULL) {
    echo JText::_ ('COM_VIRTUEMART_NO_RESULT') . ($this->keyword ? ' : (' . $this->keyword . ')' : '');
    }

    ?>

    </div><!-- end browse-view -->
     
Статус темы:
Закрыта.