да с add_to_compare_list.tpl я спутал локальную и глобальную версии
Спойлер
`{$comp_list = $smarty.session.comparison_list}
{* constant }
{$compare_button_type = $compare_button_type|default:“icon”}
{$but_name = “dispatch[product_features.add_product…$product_id]”}
{$but_id = $compare_but_id|default:“button_compare_$obj_prefix$product_id”}
{$but_role = $compare_but_role|default:“text”}
{$but_href = $compare_but_href|default:$but_href}
{$but_onclick = $compare_but_onclick|default:$but_onclick}
{$but_target_id = "button_compare_ ,account_info*"}
{* dynamic *}
{$but_title = $compare_but_title|default:__(“add_to_comparison_list”)}
{$but_meta = $compare_but_meta|default:“compare”}
{* change active *}
{if $comp_list && in_array($product_id, $comp_list)}
{$but_title = “Убрать из сравнения”}
{$but_meta = “compare uk-active”}
{/if}
{if $compare_button_type == “icon”}
{$but_icon = $compare_but_icon|default:“barchart”}
{$but_text = $compare_but_text|default:false}
{else}
{$but_icon = ($compare_but_icon === true) ? “barchart” : $compare_but_icon}
{$but_text = $compare_but_text|default:__(“add_to_comparison_list”)}
{/if}
{include file=“buttons/button.tpl”
but_id=$but_id
but_meta=$but_meta
but_name=$but_name
but_text=$but_text
but_tooltip=$but_title
but_role=$but_role
but_onclick=$but_onclick
but_href=$but_href
but_icon=$but_icon
but_target_id=$but_target_id
but_rel=“nofollow”
}`
но на разводящей у кнопок тот же ID и так как работало так и работает
а на детальной нет
Да и невидимый блок (на детальной) как отрабатывал так и отрабатывает
дописать родителям кнопок id=“account_info_{pid}” тоже не сработало
id должен быть последним атрибутом (после class получается). Перед закрытием блока нужно указать:
<!--account_info_6-->
После любых правок в шаблоне нужно очистить кэш.
id переносится на первое место перед классом автоматически
Верхний (видимый блок кнопок)
Спойлер
<div class="sony-centre-top-buttons-wrapper cm-reload-3526 " id="add_to_cart_update_3526"> <a class="cm-external-click ty-btn ty-btn__tertiary ty-btn-icon ty-add-to-wish cm-submit text-button" data-ca-external-click-id="button_wishlist_3526" title="Отложить"><i class="ty-icon-heart ty-icon-heart_b"></i></a> <a class="ty-btn compare cm-submit text-button " id="button_compare_3526" data-ca-dispatch="dispatch[product_features.add_product..3526]" rel="nofollow" data-ca-target-id="comparison_list,account_info*,account_info_*" title="Добавить в список сравнения"><span class="ty-icon barchart"></span></a> <!--add_to_cart_update_3526--></div>
`<div class="sony-centre-top-buttons-wrapper cm-reload-3526 " id="add_to_cart_update_{$obj_id}">
{$compare_product_id = $product.product_id}
<a class="cm-external-click ty-btn ty-btn__tertiary ty-btn-icon ty-add-to-wish cm-submit text-button" data-ca-external-click-id="button_wishlist_{$obj_id}" title="Отложить"><i class="ty-icon-heart"></i></a>
<a class="ty-btn compare cm-submit text-button " id="button_compare_{$obj_id}" data-ca-dispatch="dispatch[product_features.add_product..{$obj_id}]" rel="nofollow" data-ca-target-id="comparison_list,account_info*,account_info_*" title="Добавить в список сравнения"><span class="ty-icon barchart"></span></a>
{*{assign var="add_to_cart" value="add_to_cart_`$obj_id`"}
{fn_sony_centre_product_card_compare_buttons($smarty.capture.$add_to_cart) nofilter} *}
<!--add_to_cart_update_{$obj_id}--></div>
`
Нижняя (невидимая) работающая кнопка
Спойлер
<a class="ty-btn compare cm-submit text-button " id="button_compare_3526" data-ca-dispatch="dispatch[product_features.add_product..3526]" rel="nofollow" data-ca-target-id="comparison_list,account_info*,account_info_*" title="Добавить в список сравнения"><span class="ty-icon barchart"></span></a>
Ну т.е. в “верхнем блоке” указан id=“add_to_cart_update_3526”, а обновить по клику мы пытаемся блоки с id=“comparison_list,account_info*,account_info_*”. Контроллер точно рабочий, у вас путаница с id блоков в шаблоне.
вообще так дубли, не критично абсолютно, просто не совсем красиво )
BillBoard:
account_info_
account_info_* в верхнем блоке я прописывал, я уже просто пытался понять почему нижний блок как раз с id=“add_to_cart_update_*” отрабатывает нажатие/второе нажатие
а верхний с любым ID нет
да дело не в красивости, а в том что скрытый блок на карточке товара отрабатывает нажатие/второе нажатие а верхний (видимый и с иконками разноцветными) с любым ID нет
Кстати, вопрос: “верхний” - это тот, который в шапке?
1 лайк
Нет
в шапке
есть два на карточке товара (скрытый блок на карточке товара отрабатывает нажатие/второе нажатие), был скрыт ранее и не мной
и верхний
Делал для сайта проверку для подсветки иконки “избранное” на карточке
<script type="text/javascript">
window.comparlist = [
{foreach $smarty.session.comparison_list as $in_com}
{$in_com['product_id']},
{/foreach}
-1
];
console.log(window.comparlist);
</script>
и увидел что $smarty.session.comparison_list как то не работает?
Никто не знает в чем причина?