MrSena Posted January 25, 2013 Share Posted January 25, 2013 Всем привет! Обычно начинаю топики вопросами, но вот решил поделиться своим дилетантским опытом работы напильником при решении простой задачи. Итак, при добавлении характеристик продукта (feature) возникает вопрос где же указывать единицу измерения характеристики. Если сделать это в наименовании характеристики, то на фронт-энде это выглядит некрасиво, если добавить это в значение фильтра, то это криво выглядит при фильтрации по характеристикам. Для себя решил, что было бы удобно наименование характеристики хранить отдельно и отображать следом за значением характеристики. Берем в руки напильник и приступаем. В базе данных ищем таблицу ps_feature_lang (префикс ps_ может быть и другим, если при инсталляции Вы это указали) и добавляем колонку ext_unit ALTER TABLE `ps_feature_lang` ADD COLUMN `ext_unit` VARCHAR(16) NULL DEFAULT NULL AFTER `name` ; Далее открываем файл themes\default\product.tpl и немного меняем формат вывода. Исходный код: <!-- product's features --> <ul id="idTab2" class="bullet"> {foreach from=$features item=feature} {if isset($feature.value)} <li><span>{$feature.name|escape:'htmlall':'UTF-8'}</span> {$feature.value|escape:'htmlall':'UTF-8'}</li> {/if} {/foreach} </ul> Меняем на: <!-- product's features --> <ul id="idTab2" class="bullet"> {foreach from=$features item=feature} {if isset($feature.value)} <li><span>{$feature.name|escape:'htmlall':'UTF-8'}</span> {$feature.value|escape:'htmlall':'UTF-8'} {$feature.value_unit|escape:'htmlall':'UTF-8'}</li> {/if} {/foreach} </ul> По сути в шаблон мы добавили вывод еще одного поля $feature.value_unit Для того, что бы значение этого поля передалось в шаблон необходимо внести небольшие изменения в файл classes\product.php В этом файле есть две функции cacheFrontFeatures и getFrontFeaturesStatic. В каждой из них меняем строку SELECT id_product, name, value, pf.id_feature на SELECT id_product, name, value, ext_unit value_unit, pf.id_feature Фактически мы передаем в шаблон значение нашего нового атрибута. Собственно все работает. Но! 1. Вносить изменения пока можно только через редактирование таблицы. Как Вы заметили в админке я не вносил изменения. В моей ситуации создание и редактирование характеристик процедура редкая и я решил не тратить на это время. Возможно кто то решиться дописать процедуру допиливания админки. 2. Еще есть необходимость в доработке шаблона отображения сравнений и модуля фильтраций, но это уже сделать будет не сложно. Не судите строго за такой подход, просто решил поделиться сегодняшним своим достижением 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now