Создать настраиваемое поле в OpenCart 2.0

Я новичок в OpenCart и хотел бы знать, как добавить настраиваемое поле (текстовое поле с включенным редактором WYSIWYG) в бэкэнд OpenCart (в разделе «Продукт»), а затем повторить его во внешнем интерфейсе (product.tpl).

Я следил за этим tutorial и успешно создал настраиваемое поле в админ-панели бэкенда, но не смог отобразить его во внешнем интерфейсе.


person Crtvca Mag    schedule 10.04.2015    source источник
comment
Пожалуйста, очистите весь кеш как vqmod (если вы его используете), так и кеш opencart, иначе изменения могут не появиться.   -  person CLECode    schedule 10.04.2015


Ответы (1)


Здравствуйте, я нашел это руководство, совместимое с Opencart 2.0:

http://www.php-dev-zone.com/2015/01/how-to-add-custom-product-field-in.html

Пожалуйста, воздержитесь от перезаписи файлов ядра и используйте вместо этого vqmod:

http://www.opencart.com/index.php?route=extension/extension/info&extension_id=19501

Я бы посоветовал вам использовать учебник и сначала записать все в настоящие файлы ядра, чтобы увидеть, работает ли это (что кажется правильным), а затем сделать это правильно и перенести все это в vqmod.

В: /catalog/controller/product/product.php

Вы найдете такие вещи, как:

$data['description'] = html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8');

Если вы добавите туда свое поле, например:

$data['custom_desc'] = $product_info['custom_desc'];

Тогда на внешнем интерфейсе вы сможете повторить это в

/каталог/представление/тема/по умолчанию/шаблон/продукт/продукт.tpl

как

$custom_desc;
person CLECode    schedule 10.04.2015
comment
Спасибо за ответ, я уже перешел по указанному вами URL-адресу и успешно создал настраиваемое поле, но в учебнике не показано, как отобразить их во внешнем интерфейсе. - person Crtvca Mag; 10.04.2015
comment
Я вижу эту ошибку Notice: Undefined variable: custom_desc in C:\wamp\www\Dazzle_OpenCart\catalog\view\theme\dazzle\template\product\product.tpl on line 330 - person Crtvca Mag; 10.04.2015
comment
Пожалуйста, не забывайте очищать кеш после каждой модификации (на всякий случай) - person CLECode; 10.04.2015
comment
Вам также может понадобиться добавить его в $data['products'][] = array(.. И попробуйте повторить как $product['custom_desc']; - person CLECode; 10.04.2015
comment
в контроллере есть массив $data['products'] , вам нужно добавить в него свое пользовательское поле, а затем вывести его на внешний интерфейс как $ product['custom_field'] - person CLECode; 10.04.2015
comment
Кроме того, убедитесь, что вы используете правильный контроллер. Если ваше представление — product.tpl, используйте контроллер product.php и т. д. - person CLECode; 10.04.2015
comment
@CrtvcaMag: опубликована следующая часть статьи об отображении пользовательского поля продукта в интерфейсе. Пожалуйста, проверьте ссылку, указанную в нижней части этой упомянутой статьи. - person Ketan; 13.05.2015
comment
@CLECode : Если мы хотим использовать vqmod, мы должны очень хорошо знать, как работает vqmod, поскольку у него есть проблемы с кешем и совместимостью версий. Иногда незначительная ошибка в файле vqmod может полностью обелить ваше приложение. Изменения в файлах просты для всех. вам просто нужно убедиться, что вы применили все изменения в правильных местах. Поэтому я написал статью об изменении файлов. - person Ketan; 13.05.2015