Приветствую! Есть небольшая проблема в отображении вывода атрибутов на странице карточки товара. Если присваиваю несколько атрибутов одной группы одному товару, то второй атрибут уходит в таблице под группу атрибутов HTML: <tr> <td><strong>Цвет</strong></td> <td>Красный</td> </tr> <tr> <td><strong>Вкус</strong></td> <td>Клубника</td> </tr> <td>Цитрус</td> </tr> а нужно чтобы было так в последнем куске HTML: <tr> <td></td> <td>Цитрус</td> </tr> получается что когда несколько атрибутов в группе, то не хватает тегов. Как это добавить? Вот проблемный кусок кода PHP: <?php if ($attribute_groups) { ?><div class="tab-pane" id="tab-specification"><table class="table table-bordered"><?php foreach ($attribute_groups as $attribute_group) { ?><tr><td><strong><?php echo $attribute_group['name']; ?></strong></td><?php foreach ($attribute_group['attribute'] as $attribute) { ?><td><?php echo $attribute['name']; ?></td></tr><?php } ?><?php } ?></table></div><?php } ?>
А не так ли должно это выглядеть??? Код: <?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 } ?>
Дело в том, что колонка с текстом атрибута мне не нужна. Или как сделать чтобы если в группе есть несколько атрибутов, то они выводились бы через запятую. Блин, делаю изменения в product.tpl, чищу кэш, а изменений не видно Когда меняю другие файлы, все ок.
Да, действительно нужно было обновить кэш модификатора, спасибо. А как сделать вывод атрибутов через запятую, если их больше одного?
Опенкарт2 Нужно добавить атрибут в карточку товара (справа) там где цена. Код атрибута attribute_id=13 назв групы - SZS Иду в catalog/view/theme/default/template/product и вставляю (перед <?php if ($attribute_groups) { ?>) в product.tpl ( код: В описании товара вывожу кодом ... Код: <!-- Выводим атрибут --> <?php if($attribute_groups){?> <?php foreach($attribute_groups as $attribute_group){?> <?php if($attribute_group['name']=='SZS'){?> <?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 }?> <!-- Выводим атрибут Конец --> Работаеь... НО!!! НО НУЖНО СПРАВА ТАМ ГДЕ ЦЕНА!.... Не знаю как сделать ... Нужна помощь...
ну это же обычный css!! Найти Код: <?php if (!$special) { ?> <li> и ниже цену заменить на Код: <h2 style="float:left"><?php echo $price; ?></h2> <div> тут атибуты </div> <div class="clearfix"></div>
Нужна помощь, подскажите как вывести не атрибуты определенной группы, а определенный атрибут или несколько атрибутов. нашел в инете вот это но я совсем не понимаю что к чему, и вставив у меня сайт вызывает ошибку, подскажите как правильно прописать Спойлер: Вот код найденный в инете $this->data['products'][]= array( .... 'attribute_groups'=> $this->model_catalog_product->getProductAttributes($result['product_id']), ... <tableclass="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.5 Вам нужно в \catalog\controller\product\product.php найти PHP: $data['products'][] = array( и во внутрь вставить PHP: 'attribute_groups'=> $this->model_catalog_product->getProductAttributes($result['product_id']), а в файл catalog\view\theme\default\template\product\product.tpl в нужное место вставить PHP: <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><?php }?> <?php }?> <?php }?></table> Где 19, 20, 21, 22 = id атрибутов
Спойлер: Я сделал так и все получилось <!-- Выводим атрибут --> <?php if($attribute_groups){?> <?php foreach ($attribute_groups as $attribute_group) { ?> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <?php if(in_array($attribute['attribute_id'], array(15, 12))) { ?> <span class="marked"><?php echo $attribute['name']; ?></span><?php echo $attribute['text']; ?></span><br /> <?php }?> <?php }?> <?php }?> <?php }?> <!-- Выводим атрибут Конец --> Смущает одно, в коде поменял немного (отметил красным) и не знаю, как правильнее сделать Спойлер: подскажите <?php if($attribute_groups){?> или <?php if($attribute){?>
На 2.2 заработал этот способ, Спасибо очень помог. А как вывести туда же "Вес" из данных товара? Вопрос снят, вот решение, спасибо автору http://forum.opencart-russia.ru/threads/ves-i-razmer-v-kartochke-tovara.527/#post-18009