[quote name=‘daer’ timestamp=‘1437910131’ post=‘224343’]
Пока ковыряем самостоятельно.
Задача по сути сводится к тому, чтобы заставить view.tpl вывести данные о производителе, айдишник которого получен из карточки товара…
[/quote]
Не совсем, views/product_features/view.tpl выводит больше чем нужно.
Тут больше вопрос в том, “ГДЕ” вывести, а не как.
Где - в карточке товара.
Эх, было почти рабочее решение… Работало в 4.2.3 Там суть была в добавлении
в [color=#282828][font=arial, verdana, tahoma, sans-serif]/templates/views/products/components/product_features.tpl
[/font][/color]
вот такой кусок кода
[CODE]
{elseif $feature.feature_type == "S" || $feature.feature_type == "E"}
{foreach from=$feature.variants item="var"}
{if $var.selected}{$var.variant}
{/if}
{if $var.selected}
{include file="common/image.tpl" images=$var.image_pair}
{/if}
{/foreach}[/CODE]
решал поставленную задачу - выводилось название, ссылка, картинка и описание бренда.
Но в версии 4.3.3 этот код выводит только логотип бренда. описания нет.
[quote]Где - в карточке товара.[/quote]
Где конкретней, можно стрелкой на снимке экрана.
От места зависит шаблон и путь реализации.
[quote]Но в версии 4.3.3 этот код выводит только логотип бренда. описания нет. [/quote]
Распечатайте информацию, может переменная изменилась.
[quote name=‘dbazhenov’ timestamp=‘1437916433’ post=‘224358’]
Где конкретней, можно стрелкой на снимке экрана.
[/quote]
Стандартная вкладка “Особенности” вполне подойдет.
а вот скриншоты информации
Так было в версии 4.2.3
[attachment=9950:Snap 2015-07-26 at 16.31.29.jpg]
а так стало в 4.3.3
[attachment=9951:Snap 2015-07-26 at 16.31.54.jpg]
[quote name=‘daer’ timestamp=‘1437917148’ post=‘224360’]
Стандартная вкладка “Особенности” вполне подойдет.
[/quote]
Нужен шаблон:
/design/themes/responsive/templates/views/products/components/product_features.tpl
Будем делить его на два блока и справа отображать информацию о бренде?
[quote name='dbazhenov' timestamp='1437917591' post='224362']
Будем делить его на два блока и справа отображать информацию о бренде?
[/quote]
Ну блок это вообще круто ИМХО, Хочешь - там поставил, хочешь - сям, хочешь, дизайн для него изменил…
Было бы интересно узнать, как связывать содержимое двух блоков по, например, ИД товара.
[quote name='daer' timestamp='1437918131' post='224364']
Ну блок это вообще круто ИМХО, Хочешь - там поставил, хочешь - сям, хочешь, дизайн для него изменил…
[/quote]
Можно сделать отдельную вкладку или отдельный блок, который можно отобразить в отдельной вкладке, трудозатраты одинаковые.
лучше делать блок. проблемы одинаковые
В понедельник-вторник, будет блок
[quote name=‘dbazhenov’ timestamp=‘1437923944’ post=‘224377’]
В понедельник-вторник, будет блок
[/quote]
… крутяк!!!
А я целое воскресенье потратил и так и не понял, почему в старой версии у товара [color=#282828][font=arial, verdana, tahoma, sans-serif]{$product|fn_print_r} показывает что были параметры (см скриншоты выше)[/font][/color]
<br />
[description] => <p><strong>Немецкая фир...<br />
[page_title] => ТитлЛЮк характеристика<br />
[meta_keywords] =><br />
[meta_description] =><br />
[lang_code] => ru<br />
[feature_id] => 9<br />
[url] => luk.com<br />
а в новой - как корова языком слизала
апну тему. Вдруг Даниил забыл
[quote name=‘daer’ timestamp=‘1438108665’ post=‘224663’]
апну тему. Вдруг Даниил забыл
[/quote]
Не забыл, там ход конем Старею, с пол пинка ничего не заводится.
- Нужно расширить информацию о характеристиках на странице товара
а) инициализируем хук, создаём файл:
/app/addons/my_changes/init.php
Код:
[CODE]
fn_register_hooks(
'get_product_feature_variants'
);[/CODE]
б) Расширяем список полей хуком:
Файл:
/app/addons/my_changes/func.php
Код:
[CODE]
<?php
function fn_my_changes_get_product_feature_variants(&$fields, $join, $condition, $group_by, $sorting, $lang_code, $limit)
{
if (is_array($params['feature_id'])) {
$fields[] = '?:product_feature_variants.url';
$fields[] = '?:product_feature_variant_descriptions.description';
} return true;
}
[/CODE]
2. Сам шаблон создаём:
/design/themes/responsive/templates/addons/my_changes/blocks/static_templates/brand.tpl
[CODE]
{if $product.product_features}
{foreach from=$product.product_features item="feature"}
{if $feature.feature_type == 'E'}
{foreach from=$feature.variants item="variant_data"}
{if $variant_data.image_pair}
{include file="common/image.tpl" images=$variant_data.image_pair}
{/if}
{/foreach}
{/if}
{/foreach}
{/if}
[/CODE]
3. Включаем модуль "Мои изменения".
4. У характеристики "Бренд" ставим галку "Отображать во вкладке характеристики" обязательно! Так как оттуда будет браться инфа, чтобы отображаться в другой вкладке.
5. На странице Дизайн → Вкладки товара , создаём новую вкладку , в неё вставляем новый блок с типом Шаблон → Шаблон: Бренд
Спасибо, Даниил! Оху жети юзвери… ты им на ложке, а они все равно через зад…
Итак, тестировал на международной версии 4.3.4
Второе, попробовал использовать свой модуль, он у меня azx_changes
Все сделал по инструкции, функцию переименовал
с
function fn_my_changes_get_product_feature_variants
на
function fn_azx_changes_get_product_feature_variants
получаю такую ошибку
скриншот
[attachment=9968:Snap 2015-07-29 at 17.35.28.jpg]
ЗЫ: Просто уже начал все изменения в дизайне и пр. делать в своем блоке, поэтому пока и не трогал блок Мои изменения.
[quote name='daer' timestamp='1438180308' post='224781']
Спасибо, Даниил! Оху жети юзвери… ты им на ложке, а они все равно через зад…
ЗЫ: Просто уже начал все изменения в дизайне и пр. делать в своем блоке, поэтому пока и не трогал блок Мои изменения.
[/quote]
Просто не нужно мне было ночью публиковать, голова уже не соображает.
Уберите проверку в функции, она не нужна.
Заработало! Спасибо Даниил.
Чем могу отблагодарить, так это всего лишь дать две идеи может очевидные и может ненужные идеи команде CSCART
- Почему бы не делать темы - модулем. Ведь очень много можно поменять. Скачал модуль, подключил и готово. И ничего не поползет при обновлениях.
- У вас весьма большое количество учебного видео. И рука Даниила приложена конкретно. Скоро станете номер один по документированности. Почему бы не предложить пользователям публиковать свое видео, видео своих доработок, но не бесплатно, а за баллы. Как накопится нужная сумма - годовая подписка на обновление - бесплатно. Видео конечно проверять, проверять пользовательское решение… тогда вас вообще будет не догнать.
И
- Я рекомендую делать темы модулем и обучаю их делать модулем, вот здесь:
http://www.youtube.com/playlist?list=PL4okpC0OV7TQmBjqBe6_PXM_S2xRDVrKa
Если информации мало, могу дополнить.
- Можно придумать какую нибудь мативацию конечно. На этом можно зарабатывать, надеюсь наши партнёры скоро поймут это
День добрый.
Статейка сильно помогла мне вывести логотип бренда в карточку товара. Спасибо !
У меня возник следующий вопрос. Есть код который отвечает чисто за вывод логотипа из значений характеристики. (Это не обязательно может быть бренд, в общем любое значение характеристики товара). Можно ли это как то превратить в переменную и выводить уже с помощью этой переменной в карточке товара?
Для наглядности - с помощью кода {$product.product_features.36.subfeatures.11.value} я вывожу значение XX характеристики "Квадратура упаковки (кв.м)" . Можно ли как то преобразовать код вывода в обычную переменную m2 к примеру ?
$m2 = {$product.product_features.36.subfeatures.11.value} (это только для примера, не силен в php)
И уже далее использовать в своих целях переменную $m2 к примеру для своего калькулятора для расчета количества упаковок. Например заказали 50 кв.м. В калькуляторе (карточка товара) это значение будет делиться 50/m2 = x
В общем сильно не пинайте, я только учусь если что ))
Добавлю свою наработку:
$feature_id = '151'; //id характеристики "Бренд/Производитель" $prod_id = '23';$feature_value = fn_bc_custom_changes_get_product_features($prod_id, $feature_id);
function fn_bc_custom_changes_get_product_features($product_id, $feature_id = '', $lang_code = CART_LANGUAGE) { /*На всякий случай сделать проверку на существование значения $feature_id*/ if ($feature_id == '') {return '';} $features = ''; if (!isset($features[$lang_code])) { list($features[$lang_code]) = fn_get_product_features(array('plain' => true), 0, $lang_code); } //params $main_category = db_get_field('SELECT category_id FROM ?:products_categories WHERE product_id = ?i AND link_type = ?s', $product_id, 'M'); $product = array( 'product_id' => $product_id, 'main_category' => $main_category ); $product_features = fn_get_product_features_list($product, 'CP', $lang_code); $result = array(); if (!empty($product_features)) { foreach ($product_features as $f) { if ($f['feature_id'] == $feature_id) { if ($f['feature_type'] == "C") { $result = ($f['value'] == "Y") ? __("yes") : __ ("no"); } elseif ($f['feature_type'] == "S" && !empty($f['variant'])) { $result = fn_bc_custom_changes_get_product_info($f['variant']); } elseif ($f['feature_type'] == "T" && !empty($f['value'])) { $result = fn_bc_custom_changes_get_product_info($f['value']); } elseif ($f['feature_type'] == "M") { if (!empty($f['variants'])) { $_value = ''; $counter = count($f['variants']); foreach ($f['variants'] as $_variant) { if ($counter > 1) { $_value .= $_variant['variant'] . ', '; } else { $_value = $_variant['variant']; } } $_value = ($counter > 1) ? substr($_value, 0, -2) : $_value; $result = fn_bc_custom_changes_get_product_info($_value); } } elseif ($f['feature_type'] == "N") { $result = fn_bc_custom_changes_get_product_info($f['variant']); } elseif ($f['feature_type'] == "O") { $result = fn_bc_custom_changes_get_product_info($f['value_int']); } elseif ($f['feature_type'] == "E") { $result = fn_bc_custom_changes_get_product_info($f['variant']); } break; } } } return !empty($result) ? $result : ''; }
function fn_bc_custom_changes_get_product_info($data) { return htmlspecialchars(strip_tags($data), ENT_QUOTES, 'UTF-8'); }
Здравствуйте! Сделала всё, как вы написали. Картинка и описание появились. Но хотелось бы, чтобы название бренда было ссылкой на его страницу. А у меня здесь:
{$variant_data.url}
выводиться только url, а названия нет вообще.
Подскажите, пожалуйста, что поправить.
Версия CS-Cart 4.7.4