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

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

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

Помощь Virtuemart: вывести производителя в категории

Тема в разделе "Joomla", создана пользователем RedRabbit, 19 дек 2010.

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

    RedRabbit

    Регистр.:
    11 июл 2008
    Сообщения:
    606
    Симпатии:
    251
    Хочу вывести в категории товаров
    manufacturer_name
    product_packaging
    product_unit

    Не выводится:(
    В настрйках вирта:
    Product List Style - Flat Product List (fixed to 1 product per row, using a table)
    brows_x игонорируется и выводится
    Код:
    omponents\com_virtuemart\themes\default\templates\browse\includes\browse_layouttable.tpl.php 
    components\com_virtuemart\themes\default\templates\browse\includes\browse_listtable.tpl.php 
    
    Правлю browse_listtable.tpl.php
    Код:
    <?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
    mm_showMyFileName(__FILE__); ?>
    <?php echo $buttons_header // The PDF, Email and Print buttons ?>
    <?php echo $browsepage_header // The heading, the category description ?>
    <?php echo $parameter_form // The Parameter search form ?>
    <?php echo $orderby_form // The sort-by, order-by form PLUS top page navigation ?>
    <?php
    $data =array(); // Holds the rows of products
    $i = 1; $row = 0; // Counters
    // Table header
    $tableheader[] = 'Код';
    $tableheader[] = 'Номенклатура';
    $tableheader[] = 'Артикул';
    $tableheader[] = 'Изготовитель';
    $tableheader[] = 'Тарное место';
    $tableheader[] = 'Ед.';
    $tableheader[] = 'Цена';
    // Creates a new HTML_Table object that will help us
    // to build a table holding all the products
    $table = new HTML_Table('width="100%"');
    $table->addRow( $tableheader, 'class="sectiontableheader"', 'th', true );
    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 );
                $this->set( 'manufacturer_name', $manufacturer_name );
            }
            $data[$row][] = $product['product_sku'];
            $data[$row][] = '<a href="'.$product['product_flypage'].'" title="'.$product['product_name'].'">'.$product['product_name'].'</a>';
            $data[$row][] = $product['product_s_desc'];
            //$data[$row][] = $product['manufacturer_name'];
            [B]if( $this->get_cfg('manufacturer_name', 1)) {
                $data[$row][] = $product['manufacturer_name'];
            }[/B]
            //$data[$row][] = $product['manufacturer_name'];
            $data[$row][] = $product['product_packaging'];
            $data[$row][] = $product['product_unit'];
            $data[$row][] = $product['product_price'];
            $data[$row][] = $product['form_addtocart'];
            $row++;
    }
    // Loop through each row and build the table
    foreach($data as $key => $value) {
        $table->addRow( $data[$key], 'class="sectiontableentry'.$i.'"', 'td', true );
        $i = $i == 1 ? 2 : 1;
    }
    // Display the table
    echo $table->toHtml();
    ?>
    <br class="clr" /><br />
    <?php echo $browsepage_footer ?>
    
    И так и сяк пробывал, в чем проблема??? Помогите пожалуйста!!!
    Так ... с производителем разобрался
    http://joomlaforum.ru/index.php/topic,80739.0.html
    А как пилить product_packaging product_unit???????????
    Пробую править shop.browse.php

    Ставлю, опять не работает
    Код:
          // Add-to-Cart Button
            // Вывод производителя в категории
            $manufacturer_name = $ps_product->get_mf_name($db_browse->f('product_id'));
            $products[$i]['manufacturer_name'] = $manufacturer_name;
            //конец вывода производителя
            //Поробуем вывести количество товаров в упаковке
            //$packaging =  $ps_product->get_mf_name($db_browse->f("product_packaging") & 0xFFFF);
            //$packaging =  $ps_product->get_mf_name($db_browse->f("product_packaging") & 0xFFFF);
            //$products[$i]['product_packaging'] = $packaging;
            //$product_packaging = $db_browse->f("product_packaging") & 0xFFFF;
            $product_packaging = $dbp->f("product_packaging") & 0xFFFF;
            $products[$i]['product_packaging'] = $product_packaging;
            //Поробуем вывести единицу измерения количества товара в упаковке
            $product_unit = $db_browse->f("product_unit");
            $product_unit = $dbp->f("product_unit");
            $products[$i]['product_unit'] = $product_unit;
    Все разобрался!!!
    1) В файле \com_VirtueMart\html\shop_browse_queries.php
    Ищем строку (у меня 37) с описание всех доступных полей для запроса.
    $fieldnames = "`product_name`,`products_per_row`,`category_browsepage`,`category_flypage`,`#__{vm}_category`.`category_id`,...
    Добавляем туда `product_packaging` и product_unit
    Код:
    $fieldnames = "`#__{vm}_product`.`product_id`, `product_name`, `products_per_row`, `category_browsepage`, `category_flypage`, `#__{vm}_category`.`category_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_available_date`, `product_availability`, `#__{vm}_product`.`mdate`, `#__{vm}_product`.`cdate`, `#__{vm}_product`.`product_packaging`, `#__{vm}_product`.`product_unit`";
    2)в файл \components\com_VirtueMart\html\shop.browse.php в нужном месте добавляем строки:

    Код:
    		//START HACK
    		// Вывод производителя в категории
    		$manufacturer_name = $ps_product->get_mf_name($db_browse->f('product_id'));
    		$products[$i]['manufacturer_name'] = $manufacturer_name;
    		//конец вывода производителя
    		
    		//Поробуем вывести количество товаров в упаковке
    		$products[$i]['product_packaging'] = $db_browse->f("product_packaging") & 0xFFFF;
    		$tpl->set( 'product_packaging', $db_browse->f("product_packaging")& 0xFFFF); 
    		
    		//Поробуем вывести единицу измерения количества товара в упаковке
    		$products[$i]['product_unit'] = $db_browse->f("product_unit");
    		$tpl->set( 'product_unit', $db_browse->f("product_unit")); 
    		//END HACK
    
     
    KomCher нравится это.
  2. KomCher

    KomCher Постоялец

    Регистр.:
    26 май 2009
    Сообщения:
    55
    Симпатии:
    7
    Количество товаров в упаковке выводит.
    Как доработать хак, чтобы вывести Количество товаров в коробке?
     
  3. RedRabbit

    RedRabbit

    Регистр.:
    11 июл 2008
    Сообщения:
    606
    Симпатии:
    251
    Наверно так
    1) В файле \com_VirtueMart\html\shop_browse_queries.php
    Ищем строку (у меня 37) с описание всех доступных полей для запроса.
    Код:
    $fieldnames = "`product_name`,`products_per_row`,`category_brows epage`,`category_flypage`,`#__{vm}_category`.`cate gory_id`,...
    Добавляем туда product_box
    2)в файл \components\com_VirtueMart\html\shop.browse.php в нужном месте добавляем строки после // Add-to-Cart Button:
    //Поробуем вывести количество товаров в коробке
    Код:
    		$products[$i]['product_box'] = $db_browse->f("product_box"));
    		$tpl->set( 'product_box', $db_browse->f("product_box")); 
     
  4. KomCher

    KomCher Постоялец

    Регистр.:
    26 май 2009
    Сообщения:
    55
    Симпатии:
    7
    Сейчас попробую
    Во flypage.tpl.php
    PHP:
    <?php echo $product_packaging?>
    выводит сразу оба значения, а как в категории теперь выводить эту $box?
    Какая заглушка должна быть если получится.

    Кстати, слово шт. к "в упаковке" не добавилось, а ведь единицы запрашивались. Пристыкую просто шт.

    PS. Попробовал
    После добавления запроса (именно запроса, проверял пошагово)
    `#__{vm}_product`.`product_box`
    Вот, все, что добавил
    `#__{vm}_product`.`product_packaging`, `#__{vm}_product`.`product_box`, `#__{vm}_product`.`product_unit`
    Товары в категории перестали выводиться!
    Только название категории.

    Синтаксис error – была лишняя скобка, убрал.
    Не нужно ли добавить это - & 0xFFFF
     
  5. RedRabbit

    RedRabbit

    Регистр.:
    11 июл 2008
    Сообщения:
    606
    Симпатии:
    251
    А так?
    PHP:
    <?php echo $product_box ?>
    Код:
    `#__{vm}_product`.`product_box`
    Проверь еще раз синтаксис. Может она уже есть в списке. Если нет, удаляй.
    Не нужно ли добавить это - & 0xFFFF
    Да хз. Возможно. Добавь и посмотри. По идее нет, не нужна.
     
  6. 555

    555 Создатель

    Регистр.:
    27 апр 2007
    Сообщения:
    12
    Симпатии:
    3
    А Вы перенесите вот эту строчку $products[$i]['manufacturer_name'] = $manufacturer_name; в самый конец, перед $products[$i]['product_price'] = $product_price;

    мне помогло, теперь производитель выводится только в описании и ничего лишнего
     
Статус темы:
Закрыта.