OcStore — Как добавить поддержку html к полю attribute

Опубликовано Опубликовано в рубрике CMS, OpenCart/OcSrore, Веб-разработка

Сама система OpenCart и ее русская версия OcStore очень удобна и функциональна, несмотря на то, что она бесплатна.

Но очень часто возникает необходимость сделать нестандартный вывод тех или иных параметров.

Сегодня столкнулся с таким нюансом — атрибуты товаров нужно вывести с оформлением — переносы строк, выделение жирным и курсивом, список и т.д.

А вот система все это выводит сплошным текстом.

Решение было найдено и внедрено.

Что, собственно, нужно сделать:

Откываем файл admin/view/template/catalog/product_form.tpl

В нем находим строку

<script type="text/javascript" src="view/javascript/ckeditor/ckeditor.js"></script>

После нее добавляем:

<script type="text/javascript" src="view/javascript/ckeditor/adapters/jquery.js"></script>

Находим блок:

<?php foreach ($languages as $language) { ?>
CKEDITOR.replace('description<?php echo $language['language_id']; ?>', {
filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>'
});
<?php } ?>

После него добавляем:

$('#attribute textarea').ckeditor({
filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>'
});

Находим строку:

attributeautocomplete(attribute_row);

После нее добавляем:

$('#attribute-row' + attribute_row + ' textarea').ckeditor({
filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>'
});

После этого наблюдаем такую картину в админке:

Теперь, чтобы вывод текста был не тегами, а именно текстом, добавим еще немного кода:

Открываем файл admin/model/catalog/product.php

В нем находим строку (их две):

foreach ($product_attribute['product_attribute_description'] as $language_id => $product_attribute_description) {

После обоих добавляем:

$product_attribute_description['text'] = html_entity_decode($product_attribute_description['text'], ENT_QUOTES, 'UTF-8');

Вот и все, теперь атрибуты можно красиво оформить. Стили, при необходимости, подкорректируете под свое оформление.

Кстати, есть еще модуль HTML code to Product Attribute, но у меня на OcStore 1.5.5.1 он не сработал, возможно по причине того, что я в ядре покопался (была такая необходимость). Попробуйте, может, у Вас сработает.

Поделитесь статьей в соц. сетях, если помогло 🙂

 

 

Подождите, промокоды загружаются

РАССКАЖИТЕ ДРУЗЬЯМ



Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *