В интернет-магазине на Опенкарт есть такая замечательная вещь, как атрибуты товара. Выводятся они в карточке товара (по-умолчанию, но можно выводит и в любом месте) во вкладке «Характеристики». Иногда случаются ситуации, когда атрибуты в карточке нужно выводить каждый с новой строки. Изначально движок убирается переносы, которые сохраняются в административной части вашего интернет-магазина. В этой статье вы найдёте решение этой ситуации.
Содержание
Как сделать перенос строк в описании атрибутов?
Допустим, есть характеристика «Модель» — в ней нужно вывести все модели, к которым подойдёт выбранный товар. Когда вы указываете в админке список значений этой характеристики товара, вы нажимаете клавишу «Enter» и происходит перенос курсора на новую строку. Указывая следующее значение, оно пишется как раз с новой строки. В админке сайта — все красиво и понятно.
На витрине в карточке товара эти переносы исчезают — весь список значений характеристики идёт друг за другом. Решить эту проблему очень просто.
Чтобы сделать перенос строк в описании атрибутов, нужно:
-
- Зайти на хостинг, открыть «менеджер файлов» или воспользоваться FTP-клиентом.
- Открыть корневую папку с магазином и пройти по пути: /catalog/view/theme*(название темы может отличаться)*/default/template/product/product.tpl
- Открыть на редактирование файл product.tpl
- Найти в этом файле строки:
123456<?php foreach ($attribute_group['attribute'] as $attribute) { ?><tr><td><?php echo $attribute['name']; ?></td><td><?php echo $attribute['text']; ?></td></tr><?php } ?> - Заменить их на следующий код:
123456<?php foreach ($attribute_group['attribute'] as $attribute) { ?><tr><td><?php echo $attribute['name']; ?></td><td><?php echo str_replace("\n","<br>",$attribute['text']); ?></td></tr><?php } ?>
Может быть так, что именно таких строк вы не найдёте. Тогда просто ищите:
1 |
<?php echo $attribute['text']; ?> |
и меняйте на:
1 |
<?php echo str_replace("\n","<br>",$attribute['text']); ?> |
Сохраняйте изменения.
Последние шаги на пути к переносу строк в артибутах
Кончено, после внесения изменений нужно обновить кэш системы и модификаторов.
Если после этого вы не увидели изменений — значит какие-то модификаторы работают с измененным вами участком кода. В этой ситуации необходимо адаптировать конфликтный модуль самостоятельно или обратившись к автору. В большинстве случаев — ошибок и конфликтов не возникает.