[Помогите] Вывод атрибутов по ИД в категориях

Тема в разделе "OpenCart", создана пользователем kindly, 15 окт 2013.

  1. kindly

    kindly

    Регистрация:
    19 ноя 2012
    Сообщения:
    65
    Симпатии:
    8
    У меня вопрос как реализовать вывод атрибутов под одному чтобы разместить их в моей таблице.

    Есть пример код для вывода в категориях всех атрибутов, то бишь как я понимаю нужно его переделать для вывода 1 атрибута по его ИД.

    catalog\controller\product\category.php, 199

    PHP:
     'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES'UTF-8')), 0100) . '..',
                        
    'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),
                        
    'price'      => $price,
    catalog\view\theme\default\template\product\category.tpl, 76

    HTML:
    <div class="description">
                            <?php if($product['attribute_groups']) { ?>
                            <table>
                                    <?php foreach($product['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>
                            <?php } ?>
                    </div>


    [​IMG]
     
  2. Bogdan

    Bogdan

    Регистрация:
    25 фев 2013
    Сообщения:
    228
    Симпатии:
    104
    Вместо
    Код:
                                            <?php foreach($attribute_group['attribute'] as $attribute) { ?>
                                    <tr>
                                            <td><?php echo $attribute['name']; ?></td>
                                            <td><?php echo $attribute['text']; ?></td>
                                    </tr>
                                            <?php } ?>
    Попробуйте это

    Код:
    <?php foreach($attribute_group['attribute'] as $attribute) {
                if ($attribute['atribute_id']==ПЕРМЕННАЯ_ГДЕ_ХАРНИТСЯ_НЕОБХОДИМЫЙ_ВАМ_ИД) { ?>
                                            <td><?php echo $attribute['text']; ?></td>
                                    <?php break;
                }
    } ?>
     
  3. kindly

    kindly

    Регистрация:
    19 ноя 2012
    Сообщения:
    65
    Симпатии:
    8
    Вставляю ваш код сталкиваюсь с ошибкой , а править каталог.пхп не нужно?

    Notice
    : Undefined variable: attribute_group i */product/category.tpl on line 119Warning: Invalid argument supplied for foreach() in /home/u938108026/public_html/catalog/view/theme/bigshop/template/product/category.tpl on line 119
     
  4. Bogdan

    Bogdan

    Регистрация:
    25 фев 2013
    Сообщения:
    228
    Симпатии:
    104
    Ну во-первых не нужно же так дословно воспринимать - я же просто как пример показал, ну а вписать в контекст нужно уже как-то самому ...
    Но и не в этом дело - Вы что-то зацепили, т.к. начало ругаться на отсутствие переменной $attribute_group, чего совсем не должно быть. Очевидно, что Вы зацепили:
    Код:
    <?php foreach($product['attribute_groups'] as $attribute_group) { ?>

    Я обратил внимание, что код вы приводили из дефолтного шаблона, а ошибка на шаблоне BigShop ...
     
  5. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    803
    Симпатии:
    399
    Вместо
    Код:
                   <?php foreach($attribute_group['attribute'] as $attribute) { ?>
                                    <tr>
                                            <td><?php echo $attribute['name']; ?></td>
                                            <td><?php echo $attribute['text']; ?></td>
                                    </tr>
                           <?php } ?>
    Попробуйте это

    Код:
                                    <tr>
                                            <td><?php echo $attribute_group['attribute'][0]['name']; ?></td>
                                            <td><?php echo$attribute_group['attribute'][0]['text']; ?></td>
                                    </tr>
    
    Для Атр-2 (согласно табличной разметке, а то в цсс я постольку поскольку...)
    Код:
                                    <tr>
                                            <td><?php echo $attribute_group['attribute'][1]['name']; ?></td>
                                            <td><?php echo$attribute_group['attribute'][1]['text']; ?></td>
                                    </tr>
    
     
  6. kindly

    kindly

    Регистрация:
    19 ноя 2012
    Сообщения:
    65
    Симпатии:
    8
    Большое вам спасибо, сделал как вы написали получилось так, осталось убрать название и само слово характеристики! Я очень вам благодарен!!

    [​IMG]