Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Вывод атрибутов по id


Recommended Posts

Прошу помочь вывода атрибутов по id.
Конструкция такая:
<?php if (isset($short_attribut_status) && ($short_attribut_status == '1')) { ?>
<hr>   
<label class="olabel">Размеры</label>
<ul class="list-inline inlineb">
      <li>
        <?php foreach ($attribute_groups as $attribute_group) { ?>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
            <?php if(in_array($attribute['attribute_id'], array(13))) { ?>
            <div class="tname">Длина</div>  
            <div class="tvalue"><?php echo $attribute['text']; ?> мм</div>
            <?php }?>
        <?php }?>  
        <?php }?>  
     </li>
     <li>
        <?php foreach ($attribute_groups as $attribute_group) { ?>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
            <?php if(in_array($attribute['attribute_id'], array(14))) { ?>
                <div class="tname">Ширина</div>
                <div class="tvalue"><?php echo $attribute['text']; ?> мм</div>
            <?php }?>
        <?php }?>
        <?php }?>
    </li>
    <li>
        <?php foreach ($attribute_groups as $attribute_group) { ?>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
            <?php if(in_array($attribute['attribute_id'], array(16))) { ?>
            <div class="tname">Высота</div>
            <div class="tvalue"><?php echo $attribute['text']; ?> мм</div>
            <?php }?>
        <?php }?>
        <?php }?>  
    </li>
    <li>
        <?php foreach ($attribute_groups as $attribute_group) { ?>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
            <?php if(in_array($attribute['attribute_id'], array(52))) { ?>
            <div class="tname">Глубина</div>
            <div class="tvalue"><?php echo $attribute['text']; ?> мм</div>
            <?php }?>
        <?php }?>
        <?php }?>  
    </li>    
    <li>
        <?php foreach ($attribute_groups as $attribute_group) { ?>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
            <?php if(in_array($attribute['attribute_id'], array(17))) { ?>
            <div class="tname">Выступ</div>
            <div class="tvalue"><?php echo $attribute['text']; ?> мм</div>
            <?php }?>
        <?php }?>
        <?php }?>  
    </li>  
    <li>
        <?php foreach ($attribute_groups as $attribute_group) { ?>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
            <?php if(in_array($attribute['attribute_id'], array(53))) { ?>
            <div class="tname">Диаметр</div>
            <div class="tvalue"><?php echo $attribute['text']; ?> мм</div>
            <?php }?>
        <?php }?>
        <?php }?>  
    </li>     
</ul>
</div>
<div>
<label class="olabel">Спальное место</label>
<ul class="list-inline inlineb">
     <li>
        <?php foreach ($attribute_groups as $attribute_group) { ?>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
            <?php if(in_array($attribute['attribute_id'], array(19))) { ?>
            <div class="tname">Длина</div>
            <div class="tvalue"><?php echo $attribute['text']; ?> мм</div>
            <?php }?>
        <?php }?>
        <?php }?>
    </li>
    <li>
         <?php foreach ($attribute_groups as $attribute_group) { ?>
         <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
            <?php if(in_array($attribute['attribute_id'], array(23))) { ?>
            <div class="tname">Ширина</div>
            <div class="tvalue"><?php echo $attribute['text']; ?> мм</div>
            <?php }?>
        <?php }?>
        <?php }?>
    </li>    
</ul>
</div>
<?php } ?>
 
Вопрос в следующем.
Скрыть заголовки
<label class="olabel">Размеры</label>
<label class="olabel">Спальное место</label>
Если отсутствуют атрибуты.
Надіслати
Поділитися на інших сайтах


9 минут назад, helen2014 сказал:
Прошу помочь вывода атрибутов по id.
Конструкция такая:
 

ну и нагромоздили вы ) 

сделайте логику в контроллере. Просто переберите ОДИН раз атрибуты, и задайте в $data необходимые ключи, зачем в tpl файле уже проверяйте, если есть значение, то выводить заголовок и значение

Надіслати
Поділитися на інших сайтах

поняли как ? 

в контроллере catalog/controller/product/product.php

после 

$data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']);

вы строите свою логику 

$data['attr_length'] = '';
$data['attr_width'] = '';

foreach ($data['attribute_groups'] as $attribute_group){
             foreach ($attribute_group['attribute'] as $attribute){
                 if($attribute['attribute_id'] == 13){
                     $data['attr_length'] = $attribute['text'];
                 }
                 if($attribute['attribute_id'] == 14){
                     $data['attr_width'] = $attribute['text'];
                 }
             }
         }

 

а в tpl в нужном месте выводите, проверяете, что там нужно и где, примерно так 

<?php if($attr_length){ ?> 

   <div class="tname">Длина</div>
            <div class="tvalue"><?php echo $attr_length ?> мм</div>

<?php } ?>

 

где там заголовки нужно выводить проверку тоже делайте

<?php if($attr_length){ ?> 

    <label class="olabel">Размеры</label>

<?php } ?>

 

а то полотнище лучше удалите, спасибо скажите своим глазам за это )))

Змінено користувачем Seriusis
  • +1 1
Надіслати
Поділитися на інших сайтах

24 минуты назад, helen2014 сказал:

Большое спасибо!

Атрибуты вывели.

Вопрос решен.

гуд!

Надіслати
Поділитися на інших сайтах

В 20.05.2020 в 12:01, Seriusis сказал:

гуд!

Разрешите еще вопрос!

Выводим атрибуты в категориях с той же конструкцией

Ругается на $data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($result['product_id']);

Notice: Undefined variable: result in /public_html/system/storage/modification/catalog/controller/product/category.php on line 291

Весь код выглядит так

перед $data['products'] = array(); вставили его

Спойлер

           $data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($result['product_id']);

 

           $data['attr_sizes'] = '';
           $data['attr_length'] = '';
           $data['attr_width'] = '';
           $data['attr_height'] = '';
           $data['attr_depth'] = '';
           $data['attr_protrusion'] = '';
           $data['attr_diameter'] = '';
           foreach ($data['attribute_groups'] as $attribute_group){
             foreach ($attribute_group['attribute'] as $attribute){
                 if($attribute['attribute_id'] == 18){
                     $data['attr_sizes'] = $attribute['text'];
                 }               
                 if($attribute['attribute_id'] == 13){
                     $data['attr_length'] = $attribute['text'];
                 }
                 if($attribute['attribute_id'] == 14){
                     $data['attr_width'] = $attribute['text'];
                 }
                 if($attribute['attribute_id'] == 16){
                     $data['attr_height'] = $attribute['text'];
                 }
                 if($attribute['attribute_id'] == 52){
                     $data['attr_depth'] = $attribute['text'];
                 }
                 if($attribute['attribute_id'] == 17){
                     $data['attr_protrusion'] = $attribute['text'];
                 }
                 if($attribute['attribute_id'] == 53){
                     $data['attr_diameter'] = $attribute['text'];
                 }               
             }
         }
          
           $data['attr_berth_length'] = '';
           $data['attr_berth_width'] = '';
           foreach ($data['attribute_groups'] as $attribute_group){
             foreach ($attribute_group['attribute'] as $attribute){
                 if($attribute['attribute_id'] == 19){
                     $data['attr_berth_length'] = $attribute['text'];
                 }
                 if($attribute['attribute_id'] == 23){
                     $data['attr_berth_width'] = $attribute['text'];
                 }
             }
         }              
           

 

Прописали переменную

после $data['products'][] = array(

Добавили

                  'attribute_groups' => $attribute_groups,

                  'attribute_groups' => $data['attribute_groups'],  
                  'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),

Не помогло

Змінено користувачем helen2014
Надіслати
Поділитися на інших сайтах


Помогите вывести в категориях!

Теперь такая ошибка.

неопределенный индекс: product_id 

Notice: Undefined index: product_id in public_html/system/storage/modification/catalog/controller/product/category.php on line 291

Надіслати
Поділитися на інших сайтах


1 час назад, helen2014 сказал:

Помогите вывести в категориях!

Теперь такая ошибка.


неопределенный индекс: product_id 

Notice: Undefined index: product_id in public_html/system/storage/modification/catalog/controller/product/category.php on line 291

посмотрите, где вы подставляете и что , может попутали, именно перед 

$data['products'][] = array(

вставляйте, result должен быть доступен там

Надіслати
Поділитися на інших сайтах

1 час назад, helen2014 сказал:

Помогите вывести в категориях!

Теперь такая ошибка.


неопределенный индекс: product_id 

Notice: Undefined index: product_id in public_html/system/storage/modification/catalog/controller/product/category.php on line 291

посмотрите, где вы подставляете и что , может попутали, именно перед 

$data['products'][] = array(

вставляйте, result должен быть доступен там

  • +1 1
Надіслати
Поділитися на інших сайтах

50 минут назад, Seriusis сказал:

вставляйте, result должен быть доступен там

 

Может я не так понимаю но result прописан

$data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($result['product_id']);

Змінено користувачем helen2014
Надіслати
Поділитися на інших сайтах


 

 

только заметил, и поправил, в общем перед  

$data['products'][] = array(

 

получите атрибуты в переменную

 

$attribute_groups = $this->model_catalog_product->getProductAttributes($result['product_id']);

затем добавьте ключ в массив 

$data['products'][] = array(

т.е. после 

'product_id'  => $result['product_id'],

добавьте 

'attribute_groups' => $attribute_groups,

 

все, теперь в tpl категории можете получить доступ к атрибутам в цыкле так:

 

 $product['attribute_groups']

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.