Jump to content
abramsDesign

[Решено] Вывод определенных атрибутов

Recommended Posts

Здравствуйте!

Делаю магазин на Opencart (ocstore сб.), столкнулся с проблемой вывода элементов на странице товара.

 

Нужно вывести определенные атрибуты в колонке с информацией, с разметкой проблем не возникнет, а вот с самим выводом уже проблемы. Поискав по форуму наткнулся на чем-то похожую тему: https://opencartforum.com/topic/10643-вывод-атрибутов-вместо-описания-в-категориях/ , но проблема в том, что там задача состояла в вывода атрибутов вместо описания, а мне нужно выводить определенную группу атрибутов в определенном месте, то есть к примеру:

 

Мне нужно вывести группу атрибутов под названием: "Тип кожи" и соответственно заполненные значения.

Вопрос: "Как мне вывести именно эту группу атрибутов?".

 

Прикрепляю скрин для более подробного рассмотрения моего вопроса/

 

Спасибо заранее

 

 

post-681765-0-87503800-1396824160_thumb.jpg

Share this post


Link to post
Share on other sites

У вас что,в товаре  несколько различных групп атрибутов,что нужно вывести только какой то определённый?

Share this post


Link to post
Share on other sites

У вас что,в товаре  несколько различных групп атрибутов,что нужно вывести только какой то определённый?

Выходит что так, но нужно не 1, а 3, там на скрине их 3, просто "обрысовал" только 1

 

Запутался сам, в общем результате нужно вывести эти 3 группы (что на скрине), желательно вывод группы атрибутов по имени или id

Share this post


Link to post
Share on other sites


 $this->data['products'][] = array(

....

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

...


  <table class="attribute">

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

   

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

                 

<?php if(!in_array($attribute['attribute_id'], array(19, 20, 21, 22))) { ?>

        <tr>

          <td><?php echo $attribute['name']; ?></td>

          <td><?php echo $attribute['text']; ?></td>

        </tr>

   

Share this post


Link to post
Share on other sites

 $this->data['products'][] = array(
....
'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),
...
  <table class="attribute">
      <?php foreach ($attribute_groups as $attribute_group) { ?>
   
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
                  
<?php if(!in_array($attribute['attribute_id'], array(19, 20, 21, 22))) { ?>

        <tr>
          <td><?php echo $attribute['name']; ?></td>
          <td><?php echo $attribute['text']; ?></td>
        </tr>
   

как я понимаю 1 "кусок" кода нужно где-то в контроллере вставить, а второй в шаблоне?

Можете уточнить пожалуйста

Share this post


Link to post
Share on other sites

Так нужно вывести в карточке товара?

Share this post


Link to post
Share on other sites

Так нужно вывести в карточке товара?

Верно, я указал в начале

Share this post


Link to post
Share on other sites

как я понимаю 1 "кусок" кода нужно где-то в контроллере вставить, а второй в шаблоне?

Можете уточнить пожалуйста

Сейчас попробую

Share this post


Link to post
Share on other sites

В карточке товара данный кусок уже как в контроллере так и в шаблоне есть.Здесь немного иначе нужно.Например вывести по ID атрибута.

Share this post


Link to post
Share on other sites

В карточке товара данный кусок уже как в контроллере так и в шаблоне есть.Здесь немного иначе нужно.Например вывести по ID атрибута.

Можете уточнить, или расписать подробно что да как? Думаю людям понадобится, да и тема актуальна.

Я только начинаю изучение MVC так что не силен еще)

Share this post


Link to post
Share on other sites

Создаём  Группу Атрибутов  и прикрепляем к ней Атрибут ( например Атрибут new-Группа атрибутов  new) 

 

добавляем в шаблон в нужное место 

 

   <!-- =====================Атрибуты NEW==================== -->


         
<?php if ($attribute_groups) { ?>
    <?php foreach ($attribute_groups as $attribute_group) { ?>
        <?php if ($attribute_group['name'] == 'new') { ?>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
          <?php echo html_entity_decode($attribute['text']); ?><br />
        <?php } ?>
      <?php } ?>
    <?php } ?>
  <?php } ?>
   <!-- =====================Атрибут NEW конец==================== -->

Share this post


Link to post
Share on other sites

 

Создаём  Группу Атрибутов  и прикрепляем к ней Атрибут ( например Атрибут new-Группа атрибутов  new) 

 

добавляем в шаблон в нужное место 

 

   <!-- =====================Атрибуты NEW==================== -->


         
<?php if ($attribute_groups) { ?>
    <?php foreach ($attribute_groups as $attribute_group) { ?>
        <?php if ($attribute_group['name'] == 'new') { ?>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
          <?php echo html_entity_decode($attribute['text']); ?><br />
        <?php } ?>
      <?php } ?>
    <?php } ?>
  <?php } ?>
   <!-- =====================Атрибут NEW конец==================== -->

 

Спасибо, сейчас протестирую

Share this post


Link to post
Share on other sites

 

Создаём  Группу Атрибутов  и прикрепляем к ней Атрибут ( например Атрибут new-Группа атрибутов  new) 

 

добавляем в шаблон в нужное место 

 

   <!-- =====================Атрибуты NEW==================== -->


         
<?php if ($attribute_groups) { ?>
    <?php foreach ($attribute_groups as $attribute_group) { ?>
        <?php if ($attribute_group['name'] == 'new') { ?>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
          <?php echo html_entity_decode($attribute['text']); ?><br />
        <?php } ?>
      <?php } ?>
    <?php } ?>
  <?php } ?>
   <!-- =====================Атрибут NEW конец==================== -->

 

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

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

Share this post


Link to post
Share on other sites

 $this->data['products'][] = array(
....
'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),
...
  <table class="attribute">
      <?php foreach ($attribute_groups as $attribute_group) { ?>
   
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
                  
<?php if(!in_array($attribute['attribute_id'], array(19, 20, 21, 22))) { ?>

        <tr>
          <td><?php echo $attribute['name']; ?></td>
          <td><?php echo $attribute['text']; ?></td>
        </tr>
   

А как вывести в разных столбцах разные определенные атрибуты... 

Share this post


Link to post
Share on other sites
В 07.04.2014 в 05:53, Pascha сказал:

<?php if(!in_array($attribute['attribute_id'], array(19, 20, 21, 22))) { ?>

Таким условием у меня выводятся все атрибуты, кроме указанных в массиве. Версия 1.5.6.4

Share this post


Link to post
Share on other sites

смотрим сюда
 

!in

восклицательный знак считайте как исключение, отсутствие его - разрешение

Share this post


Link to post
Share on other sites
В 16.01.2018 в 00:24, Pascha сказал:

смотрим сюда
 


!in

восклицательный знак считайте как исключение, отсутствие его - разрешение

<?php if(in_array($attribute['attribute_id'], array(52))) { ?>

 

Может я что не так делаю, но у меня проблема с выводом атрибутов. Надо было вывести 2 атрибута.

пишу так:

<?php if(in_array($attribute['attribute_id'], array(52,16))) { ?>

Выводится все равно только один 52, 16 прям ни в какую не хочет выводится. При этом я даже ставил 16,52, все равно выводится только 52. 16 в атрибутах есть, нужный мне артибут, но прям никак не хочет он появляться. При этом если !in указать, то выводятся все атрибуты, включая и 16ый, но если убрать !, то вновь выводится только 52...

 

Почему так может быть!?) Не подскажите!?)

Share this post


Link to post
Share on other sites

Как такое же сделать в OPENCART 3 ???

Share this post


Link to post
Share on other sites
Posted (edited)
В 07.04.2014 в 06:53, Pascha сказал:

<table class="attribute">

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

   

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

                 

<?php if(!in_array($attribute['attribute_id'], array(19, 20, 21, 22))) { ?>

        <tr>

          <td><?php echo $attribute['name']; ?></td>

          <td><?php echo $attribute['text']; ?></td>

        </tr>

 

Спасибо, работает!

Edited by Iskander16

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.


  • 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.