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

Вывод атрибутов в категориях


Recommended Posts

Вывод атрибутов в категориях.

Чуть исправленный пост  Tom , за что ему СПАСИБО.

Версия ocStore 2.3.0.2.3

 

В catalog/controller/product/category.php  

 

ПОСЛЕ:  

 

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

 

ДОБАВИТЬ:

 

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

 

 

 

В catalog/view/theme/default/template/product/category.tpl

 

ПОСЛЕ:  

 

<div class="caption">
<h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4>

 

ДОБАВИТЬ (вариант 1 - виде списка атрибутов):

 

<p>
<?php if ($product['attribute_groups']) { ?>
<?php foreach ($product['attribute_groups'] as $attribute_group) { ?>
<strong><?php echo $attribute_group['name']; ?>:</strong>
<?php foreach ($attribute_group['attribute'] as $attribute) { ?>
<span><?php echo $attribute['name']; ?>:</span> <?php echo $attribute['text']; ?><br />   
<?php } ?>
<?php } ?>
<?php } ?>
</p>

 

ИЛИ  (вариант 2 - таблицей):

 

<p>
  <?php if ($product['attribute_groups']) { ?>
<div class="tab-pane" id="tab-specification">
  <table class="table table-bordered">
    <?php foreach ($product['attribute_groups'] as $attribute_group) { ?>
    <thead>
    <tr>
      <td colspan="2"><strong><?php echo $attribute_group['name']; ?></strong></td>
    </tr>
    </thead>
    <tbody>
    <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
    <tr>
      <td><?php echo $attribute['name']; ?></td>
      <td><?php echo $attribute['text']; ?></td>
    </tr>
    <?php } ?>
    </tbody>
    <?php } ?>
  </table>
</div>
<?php } ?>
</p>

 

ИЛИ  (вариант 3 - в одну строку,через слеш):

 

<p>
<?php if ($product['attribute_groups']) { ?>
<?php foreach ($product['attribute_groups'] as $attribute_group) { ?>
<strong><?php echo $attribute_group['name']; ?>:</strong>
<?php foreach ($attribute_group['attribute'] as $attribute) { ?>
<span><?php echo $attribute['name']; ?>:</span> <?php echo $attribute['text']; ?> /   
<?php } ?>
<?php } ?>
<?php } ?>
</p>

 

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


  • 3 months later...
В 16.11.2019 в 12:30, SHip сказал:

Вывод атрибутов в категориях.

Чуть исправленный пост  Tom , за что ему СПАСИБО.

Версия ocStore 2.3.0.2.3

 

В catalog/controller/product/category.php  

 

ПОСЛЕ:  

 

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

 

ДОБАВИТЬ:

 

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

 

 

 

В catalog/view/theme/default/template/product/category.tpl

 

ПОСЛЕ:  

 

<div class="caption">
<h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4>

 

ДОБАВИТЬ (вариант 1 - виде списка атрибутов):

 

<p>
<?php if ($product['attribute_groups']) { ?>
<?php foreach ($product['attribute_groups'] as $attribute_group) { ?>
<strong><?php echo $attribute_group['name']; ?>:</strong>
<?php foreach ($attribute_group['attribute'] as $attribute) { ?>
<span><?php echo $attribute['name']; ?>:</span> <?php echo $attribute['text']; ?><br />   
<?php } ?>
<?php } ?>
<?php } ?>
</p>

 

ИЛИ  (вариант 2 - таблицей):

 

<p>
  <?php if ($product['attribute_groups']) { ?>
<div class="tab-pane" id="tab-specification">
  <table class="table table-bordered">
    <?php foreach ($product['attribute_groups'] as $attribute_group) { ?>
    <thead>
    <tr>
      <td colspan="2"><strong><?php echo $attribute_group['name']; ?></strong></td>
    </tr>
    </thead>
    <tbody>
    <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
    <tr>
      <td><?php echo $attribute['name']; ?></td>
      <td><?php echo $attribute['text']; ?></td>
    </tr>
    <?php } ?>
    </tbody>
    <?php } ?>
  </table>
</div>
<?php } ?>
</p>

 

ИЛИ  (вариант 3 - в одну строку,через слеш):

 

<p>
<?php if ($product['attribute_groups']) { ?>
<?php foreach ($product['attribute_groups'] as $attribute_group) { ?>
<strong><?php echo $attribute_group['name']; ?>:</strong>
<?php foreach ($attribute_group['attribute'] as $attribute) { ?>
<span><?php echo $attribute['name']; ?>:</span> <?php echo $attribute['text']; ?> /   
<?php } ?>
<?php } ?>
<?php } ?>
</p>

 

Добрый день,

А не подскажете, если у товара много атрибутов, как ограничить количество строк? Например выводить 5 первых строк.
Заранее спасибо

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


55 минут назад, wawa сказал:

Спасибо огромное. +1
 

всё это хорошо, но когда атрибутов и их значений действительно много, то лучше сразу из Базы брать определенное количество, а не потом отсеивать.

например в метод по пути /catalog/model/catalog/product.php -

public function getProductAttributes($product_id) 

добавить еще одни параметр (только если данная строка не попадает под другие модификаторы - надо проверять)

например вот так:

public function getProductAttributes($product_id, $limit = '')

и потом найти вот эту строку (внимание есть там похожий код):

ORDER BY a.sort_order, ad.name"

и добавить данный параметр  в запрос, вот так :

ORDER BY a.sort_order, ad.name"." ".$limit

а в саму переменную подставлять ваш лимит, например вот так будет:

В 16.11.2019 в 11:30, SHip сказал:

ДОБАВИТЬ:

 

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

 

после изменений обновить модификаторы.

либо модификатором изменения сделать.

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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