Производительописание Бренда На Странице Товара

[quote name=‘daer’ timestamp=‘1437910131’ post=‘224343’]

Пока ковыряем самостоятельно.



Задача по сути сводится к тому, чтобы заставить view.tpl вывести данные о производителе, айдишник которого получен из карточки товара… :wacko:

[/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}

  • {$var.description nofilter


  • {/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]

    Snap 2015-07-26 at 16.31.29.jpg

    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



    Будем делить его на два блока и справа отображать информацию о бренде?

    у меня вот так было, галка “отображать товары во вкладках” снята

    Snap 2015-07-26 at 16.37.20.jpg

    [quote name='dbazhenov' timestamp='1437917591' post='224362']

    Будем делить его на два блока и справа отображать информацию о бренде?

    [/quote]



    Ну блок это вообще круто ИМХО, Хочешь - там поставил, хочешь - сям, хочешь, дизайн для него изменил…



    Было бы интересно узнать, как связывать содержимое двух блоков по, например, ИД товара.

    [quote name='daer' timestamp='1437918131' post='224364']

    Ну блок это вообще круто ИМХО, Хочешь - там поставил, хочешь - сям, хочешь, дизайн для него изменил…

    [/quote]



    Можно сделать отдельную вкладку или отдельный блок, который можно отобразить в отдельной вкладке, трудозатраты одинаковые.

    лучше делать блок. проблемы одинаковые :-)

    В понедельник-вторник, будет блок :)

    [quote name=‘dbazhenov’ timestamp=‘1437923944’ post=‘224377’]

    В понедельник-вторник, будет блок :)

    [/quote]



    :-o … крутяк!!!



    А я целое воскресенье потратил и так и не понял, почему в старой версии у товара [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 />



    а в новой - как корова языком слизала

    апну тему. Вдруг Даниил забыл :wink:

    [quote name=‘daer’ timestamp=‘1438108665’ post=‘224663’]

    апну тему. Вдруг Даниил забыл :wink:

    [/quote]



    Не забыл, там ход конем :) Старею, с пол пинка ничего не заводится.


    1. Нужно расширить информацию о характеристиках на странице товара



      а) инициализируем хук, создаём файл:

      /app/addons/my_changes/init.php



      Код:


    [CODE]

    <?php

    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}

    {if $variant_data.url}

    {$variant_data.url}


    {/if}
    {$variant_data.description nofilter}


    {/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]







    ЗЫ: Просто уже начал все изменения в дизайне и пр. делать в своем блоке, поэтому пока и не трогал блок Мои изменения.

    Snap 2015-07-29 at 17.35.28.jpg

    [quote name='daer' timestamp='1438180308' post='224781']

    Спасибо, Даниил! Оху жети юзвери… ты им на ложке, а они все равно через зад…



    ЗЫ: Просто уже начал все изменения в дизайне и пр. делать в своем блоке, поэтому пока и не трогал блок Мои изменения.

    [/quote]



    Просто не нужно мне было ночью публиковать, голова уже не соображает.



    Уберите проверку в функции, она не нужна.

    Заработало! Спасибо Даниил.



    Чем могу отблагодарить, так это всего лишь дать две идеи может очевидные и может ненужные идеи команде CSCART


    1. Почему бы не делать темы - модулем. Ведь очень много можно поменять. Скачал модуль, подключил и готово. И ничего не поползет при обновлениях.


    2. У вас весьма большое количество учебного видео. И рука Даниила приложена конкретно. Скоро станете номер один по документированности. Почему бы не предложить пользователям публиковать свое видео, видео своих доработок, но не бесплатно, а за баллы. Как накопится нужная сумма - годовая подписка на обновление - бесплатно. Видео конечно проверять, проверять пользовательское решение… тогда вас вообще будет не догнать.



      И
    1. Я рекомендую делать темы модулем и обучаю их делать модулем, вот здесь:

      http://www.youtube.com/playlist?list=PL4okpC0OV7TQmBjqBe6_PXM_S2xRDVrKa



      Если информации мало, могу дополнить.


    2. Можно придумать какую нибудь мативацию конечно. На этом можно зарабатывать, надеюсь наши партнёры скоро поймут это :)

    День добрый.

    Статейка сильно помогла мне вывести логотип бренда в карточку товара. Спасибо !

    У меня возник следующий вопрос. Есть код который отвечает чисто за вывод логотипа из значений характеристики. (Это не обязательно может быть бренд, в общем любое значение характеристики товара). Можно ли это как то превратить в переменную и выводить уже с помощью этой переменной в карточке товара?

    Для наглядности - с помощью кода {$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