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

pechen13

  • Новичок
  • 9
  • 0 / 0
Всем привет.
Попал ко мне случайно код разбиения товаров в категории по производителям для virtuemart2. То есть товары выводятся следующим образом:
-Категория
Производитель1
товар товар товар
товар товар
Производитель 2
товар товар товар
товар товар
То есть это не просто сортировка по производителю, а разбиение на несколько списков.
В оригинальном файле VirtueMart 2.6.8 components/com_virtuemart/views/category/tmpl/default.php вместо 204 строки
Код
foreach ($this->products as $product){
вставляется следующее
Код
$manuf=array(); 
foreach ($this->products as $product)
{
    $manuf[$product->virtuemart_manufacturer_id]['name']= $product->mf_name;   
    $manuf[$product->virtuemart_manufacturer_id]['products'][] = $product;
    foreach ($this->orderByList['manufacturers'] as $key){
        if ($product->virtuemart_manufacturer_id == $key->virtuemart_manufacturer_id ){
        $manuf[$product->virtuemart_manufacturer_id]['url']=$key->file_url;   
        }
    }
}
       
foreach ($manuf as $key=>$product)
{
    $iBrowseCol = 1;
    $iBrowseProduct = 1;
    $BrowseTotalProducts = count($product['products']);
    $manufacturerURL = JRoute::_('index.php?option=com_virtuemart&view=manufacturer&virtuemart_manufacturer_id=' . $key, FALSE);
?>
    <a  href="<?php echo $manufacturerURL;?>">
        <h3><?php echo $product['name']?></h3>
    </a>
    <img width="88" height="36" alt ="<?php echo $product['name']?>" src="<?php echo $product['url']?>">
<?php
    foreach ($product['products'] as $product){
Поскольку мастер в php я никакой, то сколько ни бился, так и не смог подогнать его для VirtueMart 3.
Нижайше прошу помощи в данном вопросе))))))))))
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Код
$this->orderByList['manufacturers']
Вот это не  из той Opera...
тут модель нужно подключить.
Код
$model = VmModel::getModel('manufacturer');
$manufacturers = $model->getManufacturers(true, true,  true);
$model->addImages($manufacturers,1);


Вот а потом уже это крутить
Код
foreach ($manufacturers as $key){
        if ($product->virtuemart_manufacturer_id == $key->virtuemart_manufacturer_id ){
        $manuf[$product->virtuemart_manufacturer_id]['url']=$key->file_url;  
        }
    }

Типа так )

ps и модель мы в самом начале подключим после строки $manuf=array();
Если картинки производителя не нужны то эту строчку можно не писать $model->addImages($manufacturers,1);
*

pechen13

  • Новичок
  • 9
  • 0 / 0
Не пойму в чем косяк, категория показывается но пустая, уже все перерыл.
в файле /components/com_virtuemart/sublayouts/products.php начиная с 40 строки у меня получилось следующее
Код
	
$BrowseTotalProducts = count($products);

$manuf=array();
$model = VmModel::getModel('manufacturer');
        $manufacturers = $model->getManufacturers(true, true,  true);
        $model->addImages($manufacturers,1);
        foreach ($products as $product){
            $manuf[$product->virtuemart_manufacturer_id]['name']= $product->mf_name;    
            $manuf[$product->virtuemart_manufacturer_id]['products'][] = $product;
            foreach ($manufacturers as $key){
                if ($product->virtuemart_manufacturer_id == $key->virtuemart_manufacturer_id ){
                $manuf[$product->virtuemart_manufacturer_id]['url']=$key->file_url;  
                }
            }
        }
    foreach ($manuf as $key=>$product){
        $col = 1;
$nb = 1;
$row = 1;
        $BrowseTotalProducts = count($product['products']);
        $manufacturerURL = JRoute::_('index.php?option=com_virtuemart&view=manufacturer&virtuemart_manufacturer_id=' . $key, FALSE);
    ?>
    <a href="<?php echo $manufacturerURL;?>">
        <h3><?php echo $product['name']?></h3>
    </a>
    <img alt ="<?php echo $product['name']?>" src="<?php echo $product['url']?>">

    <?php
    foreach ( $product['products'] as $product ) {

// Show the horizontal seperator
может где ошибся?
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Включите отображение ошибок . Max - для разработчиков...
тогда будет видно..
*

pechen13

  • Новичок
  • 9
  • 0 / 0
Шла ругань Warning: Illegal offset type in на вот эти 2 строчки
Код
$manuf[$product->virtuemart_manufacturer_id]['name']= $product->mf_name;    
$manuf[$product->virtuemart_manufacturer_id]['products'][] = $product;
Заключил все 3 $product->virtuemart_manufacturer_id в кавычки, тоесть в конце концов код получился такой
Код
    $manuf=array(); 
    $model = VmModel::getModel('manufacturer');
    $manufacturers = $model->getManufacturers(true, true,  true);
    $model->addImages($manufacturers,1);
    foreach ($products as $product){
        $manuf['$product->virtuemart_manufacturer_id']['name'] = $product->mf_name;    
        $manuf['$product->virtuemart_manufacturer_id']['products'][] = $product;
        foreach ($manufacturers as $key){
            if ($product->virtuemart_manufacturer_id == $key->virtuemart_manufacturer_id ){
            $manuf['$product->virtuemart_manufacturer_id']['url']=$key->file_url;  
            }
        }
    }
    foreach ($manuf as $key=>$product){
        $col = 1;
$nb = 1;
$row = 1;
        $BrowseTotalProducts = count($product['products']);
        $manufacturerURL = JRoute::_('index.php?option=com_virtuemart&view=manufacturer&virtuemart_manufacturer_id=' . $key, FALSE);
    ?>
    <a href="<?php echo $manufacturerURL;?>">
        <h3><?php echo $product['name']?></h3>
    </a>
    <img alt ="<?php echo $product['name']?>" src="<?php echo $product['url']?>">


<?php
foreach ( $product['products'] as $product ) {

// Show the horizontal seperator
ошибки пропали, товары выводятся, но не так, как хотелось: выводятся не несколькими списками с разными производителями, а точно также, как и раньше все одним списком. Но перед списком выводится название одного производителя(насколько я понял последнего по порядку) и его битая картинка. При инспектировании картинки вижу следующее <img src="/Notice: Undefined index: url in products.php on line 65">. 65 строка - это вот эта
Код
<img alt ="<?php echo $product['name']?>" src="<?php echo $product['url']?>">
вобще уже ничего не понимаю
*

pechen13

  • Новичок
  • 9
  • 0 / 0
Коряво, но проблема решена.
в sublayouts/products.php после 46 строки
Код
foreach ( $products as $product ) {
добавляем
Код
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('virtuemart_manufacturer_id')
->from('#__virtuemart_product_manufacturers')
->where('virtuemart_product_id = ' . (int)$product->virtuemart_product_id);
$db->setQuery($query);
$datavalue = $db->loadResult();

$samsung == 0;
$siemens == 0;
$zap == 0;

        if ($datavalue == 1 && $samsung == 0):?>
            <div>
                <p>samsung</p>
                <img src="/images/stories/virtuemart/manufacturer/resized/samsung11_0x120.png" />
            </div>
        <? $samsung++;
        if ($datavalue == 2 && $siemens == 0):?>
            <div>
                <p>siemens</p>
                <img src="/images/stories/virtuemart/manufacturer/resized/siemens11_0x120.png" />
            </div>
        <? $siemens++;
        if ($datavalue == 3 && $zap == 0):?>
            <div>
                <p>zap</p>
                <img src="/images/stories/virtuemart/manufacturer/resized/zap11_0x120.png" />
            </div>
        <? $zap++;
без учета стилей и классов, чтоб не нагромождать кодами)
« Последнее редактирование: 29.09.2015, 09:25:52 от pechen13 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не открываются некоторые карточки товаров

Автор Vatag

Ответов: 5
Просмотров: 2402
Последний ответ 04.12.2022, 13:26:04
от Evgen Kulibin
Вывод всех товаров на Главную

Автор Akeksandr

Ответов: 1
Просмотров: 1219
Последний ответ 28.12.2021, 14:48:23
от Akeksandr
Вывод модуля рекомендуемых товаров

Автор sergspb

Ответов: 0
Просмотров: 1338
Последний ответ 06.11.2020, 09:59:01
от sergspb
Как убрать показ дополнительного изображения в категории товаров?

Автор ElenaNova

Ответов: 0
Просмотров: 1499
Последний ответ 22.04.2020, 13:13:27
от ElenaNova
Как вывести количество позиций (а не товаров) в корзине?

Автор SABON

Ответов: 1
Просмотров: 1138
Последний ответ 14.11.2018, 11:30:43
от rsn