Jump to content
Sign in to follow this  
magway

[Решено] Помогите с выводом атрибутов

Recommended Posts

Требуется вывести атрибут с id=4 в карточке товара отдельно от остальных. Версия движка opencart 1.5.5.1

Share this post


Link to post
Share on other sites

 <!-- Выводим атрибут -->

  <?php if ($attribute_groups) { ?>

    <?php foreach ($attribute_groups as $attribute_group) { ?>

      <?php if ($attribute_group['name'] == 'Название атрибута') { ?>

        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>

          <span><?php echo $attribute['name']; ?></span> <?php echo html_entity_decode($attribute['text']); ?><br />

        <?php } ?>

      <?php } ?>

    <?php } ?>

  <?php } ?>

  <!-- Выводим атрибут Конец -->

  • +1 1

Share this post


Link to post
Share on other sites

А что мешает сделать тут:

<?php foreach ($attribute_group['attribute'] as $attribute) { ?>
<?php if ($attribute['attribute_id']=='4') { ?>
BLA-bla-bla...
<?php } else { ?>
        <tr>
          <td><?php echo $attribute['name']; ?></td>
          <td><?php echo $attribute['text']; ?></td>
        </tr>
<?php } ?>
<?php } ?>
  • +1 1

Share this post


Link to post
Share on other sites
 <!-- Выводим атрибут -->
  <?php if ($attribute_groups) { ?>
    <?php foreach ($attribute_groups as $attribute_group) { ?>
      <?php if ($attribute_group['name'] == 'Название атрибута') { ?>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
          <span><?php echo $attribute['name']; ?></span> <?php echo html_entity_decode($attribute['text']); ?><br />
        <?php } ?>
      <?php } ?>
    <?php } ?>
  <?php } ?>
  <!-- Выводим атрибут Конец -->

 

Не выводится. Нужно по id атрибута, если можно скрыть атрибут по id значит и вывести тоже можно. вопрос только как .

Share this post


Link to post
Share on other sites

Создаёте группу атрибутов например  PDF

 

Создаёте одноимённый атрибут( то есть тоже PDF) и привязываете к группе PDF

 

в product.tpl в нужном месте вставляете

 <!-- Выводим атрибут -->
  <?php if ($attribute_groups) { ?>
    <?php foreach ($attribute_groups as $attribute_group) { ?>
      <?php if ($attribute_group['name'] == 'PDF') { ?>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
          <span><?php echo $attribute['name']; ?></span> <?php echo html_entity_decode($attribute['text']); ?><br />
        <?php } ?>
      <?php } ?>
    <?php } ?>
  <?php } ?>
  <!-- Выводим атрибут Конец -->

не просто работает а гарантированно выводится.

  • +1 1

Share this post


Link to post
Share on other sites

Создаёте группу атрибутов например  PDF

 

Создаёте одноимённый атрибут( то есть тоже PDF) и привязываете к группе PDF

 

в product.tpl в нужном месте вставляете

 <!-- Выводим атрибут -->
  <?php if ($attribute_groups) { ?>
    <?php foreach ($attribute_groups as $attribute_group) { ?>
      <?php if ($attribute_group['name'] == 'PDF') { ?>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
          <span><?php echo $attribute['name']; ?></span> <?php echo html_entity_decode($attribute['text']); ?><br />
        <?php } ?>
      <?php } ?>
    <?php } ?>
  <?php } ?>
  <!-- Выводим атрибут Конец -->

не просто работает а гарантированно выводится.

Спасибо!!! Работает.

Share this post


Link to post
Share on other sites

 

А что мешает сделать тут:

<?php foreach ($attribute_group['attribute'] as $attribute) { ?>
<?php if ($attribute['attribute_id']=='4') { ?>
BLA-bla-bla...
<?php } else { ?>
        <tr>
          <td><?php echo $attribute['name']; ?></td>
          <td><?php echo $attribute['text']; ?></td>
        </tr>
<?php } ?>
<?php } ?>

Спасибо!!! Тоже работает

  • +1 1

Share this post


Link to post
Share on other sites

В админке

Каталог -атрибуты

находим нужный

Изменить (в ссылке attribute_id=NNNNN)

  • +1 1

Share this post


Link to post
Share on other sites

А можно ли как-то скрыть определенную группу атрибутов?

Share this post


Link to post
Share on other sites

В блоке 

<div id="tab-attribute" class="tab-content">


<table class="attribute">
      <?php foreach ($attribute_groups as $attribute_group) { ?>
      <thead>
        <tr>
          <td colspan="2"><?php echo $attribute_group['name']; ?></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 if($attribute['attribute_id'] <> X.X.) { ?>        


  <?php } ?>

где   X.X. это ID  атрибута.

 

 

Share this post


Link to post
Share on other sites

у меня атрибуты прямо в категории к товарам выводятся. Вставлял, внутрь и перед <div class="description">, не скрываются(

Вставляю так:
<?php if($attribute['attribute_id'] <> 24) { ?>        
<div class="hideattributes"></div>
  <?php } ?>
 
А на класс .hideattributes подвешен display:none..
 
Что-то не то делаю видимо..

Share this post


Link to post
Share on other sites

Дабы не создавать новую похожую тему, напишу здесь.

Почитал, спасибо, полезно, но может кто подскажет как мне это реализовать для создания ссылки для фильтра MegaFilter Pro (иностранный который).

Именно нужно, чтобы в карточке товара снизу была ссылка на товары с такими же атрибутами.

То есть у меня магазин шин, дисков, акб.

На примере шин есть атрибуты: Профиль, Высота, Диаметр. 

Я попробовал по именам атрибутов - вроде получается, только имена атрибутов повторяются (у дисков такое же название атрибута, к тому же нужны id из-за случайного переименования атрибута), поэтому попробовал сделать по id, но не вышло...

 

ссылка получается такой: /tyres/light-truck/?mfp=19-profil-shirina[США],20-vysota[США],18-diametr[США]

а нужно, чтобы была такой: 

<a href="/tyres/car/?mfp=19-profil-shirina[215],20-vysota[55],18-diametr[17]">215/55 R17</a>

 

очнь странно, потому что я точно указал те id атрибутов, что в админке.

 

Вот сам код:

<?php foreach ($attribute_group['attribute'] as $attribute) { ?>
<?php if (($attribute['attribute_id']=='19') || ($attribute['attribute_id']=='20') ||($attribute['attribute_id']=='18'))  { ?>
<?php } ?>

<?php } ?>
<a target="_top" href="<?php echo $cut_url."?mfp=19-profil-shirina[".$attribute['text']."],20-vysota[".$attribute['text']."],18-diametr[".$attribute['text']."]"?>">Такие же шины</a>

если вставить строку

<a target="_top" href="<?php echo $cut_url."?mfp=19-profil-shirina[".$attribute['text']."],20-vysota[".$attribute['text']."],18-diametr[".$attribute['text']."]"?>">Такие же шины</a>

перед последним <?php } ?>, то получается:

lb707Y0.png

 

Вопросы:

 

  1. как сделать нормальную рабочую ссылку на основе ID
  2. как сделать условие, чтобы использовались атрибуты определенной группы (например тут для шин, а как быть с категориями дисков, акб и тд?)

Спасибо за возможную помощь, где рыть. Думаю этот пост поможет еще кому-то, у кого подобные магазины

Edited by Kventin

Share this post


Link to post
Share on other sites

уважаемый @Tom , Ваше решение отлично работает, спасибо

поставил Ваш код так - вроде правильно (мне надо чтоб атрибуты выводились после производителя)

Спойлер

               <ul class="list-unstyled">			 
                  <?php if ($manufacturer) { ?>
                  <li><?php echo $text_manufacturer; ?> <a itemprop="manufacturer" href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a></li>			  
				  
 <!-- Выводим атрибут Начало-->
  <?php if ($attribute_groups) { ?>
    <?php foreach ($attribute_groups as $attribute_group) { ?>
      <?php if ($attribute_group['name'] == 'Характеристики') { ?>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
          <span><?php echo $attribute['name']; ?></span> <?php echo html_entity_decode($attribute['text']); ?><br />
        <?php } ?>
      <?php } ?>
    <?php } ?>
  <?php } ?>
  <!-- Выводим атрибут Конец -->

                  <?php } ?>				  
                  <li><?php echo $text_model; ?> <span itemprop="model"><?php echo $model; ?></span></li>
                  <?php if ($reward) { ?>
                  <li><?php echo $text_reward; ?> <?php echo $reward; ?></li>
                  <?php } ?>
                  <li><?php echo $text_stock; ?> <?php echo $stock; ?></li>
               </ul>

 

но вот надо убрать один атрибут, а не получается

указанного Вами блока для вставки кода в фале нет. есть нечто похожее, встречающееся 3 раза

Спойлер

               <?php if ($attribute_groups) { ?>
               <div class="tab-pane" id="tab-specification">
                  <table class="table table-bordered">
                     <?php foreach ($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 } ?>

 

пытался туда вставить такую конструкцию

 

                     <?php if($attribute['attribute_id'] <> 13) { ?>
                     <?php } ?>

 

к сожалению не работает, возможно не туда вставляю

не подскажите?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.