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

nikas

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Вывожу VirtueMart 1.1.3 как таблицу. Нужно добавить вывод производителей в таблицу.
Код файла browse_listtable.tpl.php прилагаю ниже, там в комментах места указал где помощь требуется:
// Заголовки таблицы
$tableheader[] = $VM_LANG->_('_');//PHPSHOP_PRODUCT_FORM_THUMB_IMAGE
$tableheader[] = $VM_LANG->_('PHPSHOP_MANUFACTURER_NAME');
$tableheader[] = $VM_LANG->_('PHPSHOP_CART_NAME');
$tableheader[] = $VM_LANG->_('PHPSHOP_PRODUCT_FORM_IN_STOCK');
$tableheader[] = $VM_LANG->_('PHPSHOP_AVAILABILITY');
if( _SHOW_PRICES && $auth['show_prices'] ) {
$tableheader[] = $VM_LANG->_('PHPSHOP_CART_PRICE');
}
if( _SHOW_PRICES && $auth['show_prices'] && USE_AS_CATALOGUE != '1' ) {
$tableheader[] = $VM_LANG->_('PHPSHOP_DOPINFO');
}
// Тут заполняются данные таблицы
$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 );
}
$data[$row][] = '<a href="'.$product['product_flypage'].'" title="'.$product['product_name'].'">'
. ps_product::image_tag( $product['product_thumb_image'] ). '</a>'; //Маленькая картинка

$data[$row][] = $manufacturer;?       // И ТУТ ПОМОЩЬ НУЖНА Вывести производителя
$data[$row][] = '<a href="'.$product['product_flypage'].'" title="'.$product['product_name'].'">'.$product['product_name'].'</a>';
$data[$row][] = $product['product_in_stock'];
$data[$row][] = $product['product_availability'];
if( _SHOW_PRICES && $auth['show_prices'] ) {
$data[$row][] = $product['product_price'];
}
$data[$row][] = '<a href="'.$product['product_flypage'].'" title="'.$product['product_name'].'">'
.        $product['product_details']
.        '</a>';
$row++;
}
Как ни крутил не получается.  кто может!
« Последнее редактирование: 24.09.2009, 22:53:32 от nikas »
*

nikas

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Нашел на virtuemart.net для Производителей.

Для версии VirtueMart 1.0.15:
В файле shop.browse.php  :

До /*** Add-to-Cart Button ***/
Добавляем:
$mf_name = $ps_product->get_mf_name( $db_browse->f('product_id') );
После:
$product_cell = str_replace( "{product_sku}", $db_browse->f("product_sku"), $product_cell );
Добавляем:
$product_cell = str_replace( "{manufacturer_name}", $mf_name, $product_cell );
Вставку производим заглушкой: {manufacturer_name}

Для версии VirtueMart 1.1.3 :

До: /*** Add-to-Cart Button ***/
Добавляем:
$mf_name = $ps_product->get_mf_name( $db_browse->f('product_id') );
$tpl->set('mf_name',$mf_name);

До: // END OF while loop: "
Добавляем;
$products[$i]['mf_name'] = $mf_name;

Вставку производим: $mf_name или <?php echo $mf_name; ?>

« Последнее редактирование: 24.09.2009, 22:56:50 от nikas »
*

nikas

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Сегодня проверил для ВМ 1.1.3
Не работает. При составлении таблицы подхватывает первого производителя и по всем ячейка его заполняет, а других в этой категории не видит.
Может у кого мысли какие будут? Осталось чуть-чуть код подправить. Ребята помогите!

[вложение удалено Администратором]
« Последнее редактирование: 24.09.2009, 23:16:52 от nikas »
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
сделайте проще - вместо
Код
$data[$row][] = $manufacturer;?       // И ТУТ ПОМОЩЬ НУЖНА Вывести производителя
поставьте сразу
Код
$data[$row][] = $ps_product->get_mf_name( $product['product_id']; );
*

nikas

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Пробовал такое, вообще производителей не отображает
*

nikas

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Может подскажешь еще как в таблицу название подкатегории к торой принадлежит товар вывести?
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Может подскажешь еще как в таблицу название подкатегории к торой принадлежит товар вывести?
А у тебя один товар принадлежит одной подкатегории? Просто может принадлежать нескольким.
*

nikas

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Один товар принадлежит только одной подкатегории.
*

nikas

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
странно, что не работает. попробуй просто $data[$row][] =  $product['product_id'];
Выводится ли product_id ?
Нет не выводится
*

nikas

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
значит нужно формировать product_id в  файле shop.browse.php
А каким образом это делается? Я сам точно не разберусь.
*

nikas

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Поставил заново зумлу 1.5.11 RE, чистый VirtueMart 1.1.3 сделал все операции с virtuemart.net, все равно не работает (и как же у них то работает?), не могу понять почему.
*

nikas

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Написал разработчикам VMa, будем ждать от них вестей.
*

nikas

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
А может есть у кого-нибудь VirtueMart 1.1.1, дайте попробовать, а то на официальном сайте ссылки недоступны
*

nikas

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Проверил VM версий 1.1.0, 1.1.1, 1.1.2, и RC 1.1.4, ну невыводиться производитель, хоть убейте.
значит нужно формировать product_id в  файле shop.browse.php
Как это можно реализовать?
*

nikas

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
А как вывести название подкатегории, где товар принадлежит только одной подкатегории
*

nikas

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Чего-то я не понял куда этот код вставить нужно?!
*

nikas

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Заметил недавно, что и описание товара в табличный дизайн не выводиться, как его вывести?
*

nikas

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
А можно узнать список всех возможных выводов в табличном види (артикул, даты, и т.д. все что можно вывести). Или может у кого есть VM который в таблице выводит производителей?
*

nikas

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Уважаемые Зумляне! Скажите уже мне сколько денег надо потратить, чтобы вывести прозводителя, название подкатегории, дату добавления в таблицу в ВМ 1.1.3. Я уже устал перебирать разные варианты. Пхп я не знаю, но это требуется сделать. ПОМОГИТЕ!

Нашел решение.
В подробности вдаваться не буду, выложу сразу алгоритмом.
Кому интересно, вот оригинал: http://forum.virtuemart.net/index.php?topic=48371.0
От себя - огромное тебе спасибо, BUNAK.  ^-^

1. Файл shop_browse_queries.php

1.1. Находим код:
// These are the names of all fields we fetch data from
$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`";

И меняем его на указанный ниже:
// These are the names of all fields we fetch data from
$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`,
   `#__{vm}_manufacturer`.`manufacturer_id`,
   `#__{vm}_manufacturer`.`mf_name`";


1.2. Находим код:
if( $perm->is_registered_customer($auth['user_id']) ) {   
   $where_clause[] = "(`#__{vm}_product`.`product_id`=`#__{vm}_product_price`.`product_id` OR `#__{vm}_product_price`.`product_id` IS NULL) ";
   $join_array[] = 'LEFT JOIN `#__{vm}_shopper_vendor_xref` ON (`#__{vm}_shopper_vendor_xref`.`user_id` ='.$auth['user_id'].' AND `#__{vm}_shopper_vendor_xref`.`shopper_group_id`=`#__{vm}_shopper_group`.`shopper_group_id`)';
}
else {
   $where_clause[] = "((`#__{vm}_product`.`product_id`=`#__{vm}_product_price`.`product_id` AND `#__{vm}_shopper_group`.`shopper_group_id`=`#__{vm}_product_price`.`shopper_group_id`) OR `#__{vm}_product_price`.`product_id` IS NULL) ";
   $where_clause[] = '`#__{vm}_shopper_group`.`default` = 1';
}

Сразу после него добавляем:
$join_array[] = 'LEFT JOIN `#__{vm}_product_mf_xref` ON `#__{vm}_product_mf_xref`.`product_id` = `#__{vm}_product`.`product_id`';
$join_array[] = 'LEFT JOIN `#__{vm}_manufacturer` ON `#__{vm}_manufacturer`.`manufacturer_id` = `#__{vm}_product_mf_xref`.`manufacturer_id`';

Должно получится так:
if( $perm->is_registered_customer($auth['user_id']) ) {   
   $where_clause[] = "(`#__{vm}_product`.`product_id`=`#__{vm}_product_price`.`product_id` OR `#__{vm}_product_price`.`product_id` IS NULL) ";
   $join_array[] = 'LEFT JOIN `#__{vm}_shopper_vendor_xref` ON (`#__{vm}_shopper_vendor_xref`.`user_id` ='.$auth['user_id'].' AND `#__{vm}_shopper_vendor_xref`.`shopper_group_id`=`#__{vm}_shopper_group`.`shopper_group_id`)';
}
else {
   $where_clause[] = "((`#__{vm}_product`.`product_id`=`#__{vm}_product_price`.`product_id` AND `#__{vm}_shopper_group`.`shopper_group_id`=`#__{vm}_product_price`.`shopper_group_id`) OR `#__{vm}_product_price`.`product_id` IS NULL) ";
   $where_clause[] = '`#__{vm}_shopper_group`.`default` = 1';
}
$join_array[] = 'LEFT JOIN `#__{vm}_product_mf_xref` ON `#__{vm}_product_mf_xref`.`product_id` = `#__{vm}_product`.`product_id`';
$join_array[] = 'LEFT JOIN `#__{vm}_manufacturer` ON `#__{vm}_manufacturer`.`manufacturer_id` = `#__{vm}_product_mf_xref`.`manufacturer_id`';

1.3. Находим код:
// GET ALL PUBLISHED PRODUCTS FROM THAT MANUFACTURER
if (!empty($manufacturer_id)) {
   $table_names .= ',`#__{vm}_product_mf_xref`';   
   $where_clause[]  = "manufacturer_id='".$manufacturer_id."'";
   $where_clause[] = "`#__{vm}_product`.`product_id`=`#__{vm}_product_mf_xref`.`product_id` ";
}

Меняем его на указанный ниже:
// GET ALL PUBLISHED PRODUCTS FROM THAT MANUFACTURER
if (!empty($manufacturer_id)) {
//   $table_names .= ',`#__{vm}_product_mf_xref`';   
   $where_clause[]  = "`#__{vm}_manufacturer`.`manufacturer_id`='".$manufacturer_id."'";
//   $where_clause[] = "`#__{vm}_product`.`product_id`=`#__{vm}_product_mf_xref`.`product_id` ";
}


2. Файл shop.browse.php

Находим код:
$products[$i]['product_url'] = $db_browse->f("product_url");

Следующей строкой добавляем:
$products[$i]['manufacturer_name'] = $db_browse->f("mf_name");

Все.
Теперь в нужное нам место в файле browse_listtable.tpl.php вставляем

$data[$row][] = $product['manufacturer_name'];
*

ANRY_777

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
Нашел решение.
В подробности вдаваться не буду, выложу сразу алгоритмом.

Подскажи как вывести производителя в корзине? В файле basket_b2c.html.php?
Спасибо!
*

qqqarmani

  • Новичок
  • 5
  • 0 / 0
Неработает ваш код.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как вывести дочерние товары в список товаров?

Автор One

Ответов: 0
Просмотров: 1003
Последний ответ 28.09.2013, 15:52:11
от One
Как вывести список всех производитлей?

Автор bullvinkle

Ответов: 30
Просмотров: 8962
Последний ответ 06.08.2013, 18:49:39
от ilyxaaa
Как вывести название товара в другой модуль или компонент?

Автор bearn

Ответов: 0
Просмотров: 1023
Последний ответ 21.02.2013, 14:04:56
от bearn
Отображение только производителей присутствующих в категории

Автор tigra-uki

Ответов: 11
Просмотров: 2150
Последний ответ 01.11.2012, 12:14:51
от artrush
Как вывести в категорию "Доступен Обычно отгружается в течение: "

Автор stardel

Ответов: 1
Просмотров: 1028
Последний ответ 10.10.2012, 17:19:24
от vtx