Как получить переменную $static_token из файла managewishlist.tpl в Prestashop 1.6.1.x

Я использую следующие две строки для создания кнопки "Купить" в файле managewishlist.tpl (в папке модулей моей темы):

{capture}add={$product.quantity|intval}&id_product={$product.id_product|intval}{if isset($product.id_product_attribute) && $product.id_product_attribute}&ipa={$product.id_product_attribute|intval}{/if}{if isset($static_token)}&token={$static_token}{/if}{/capture}
<a class="btn btn-default ajax_add_to_cart_button add-to-cart-wishlist-button" href="{$link->getPageLink('cart', true, NULL, $smarty.capture.default, false)|escape:'html':'UTF-8'}" data-id-attribute="{$product.id_product_attribute}" data-id-product="{$product.id_product|intval}" data-minimal_quantity="{$product.quantity|intval}" title="{l s='Add to cart' mod='blockwishlist'}"><span>{l s='Buy' mod='blockwishlist'}</span></a>

... и переменная $static_token, по-видимому, недоступна для шаблона.

1 ответ

Изначально я задавал это как серьезный вопрос, чтобы продолжить работу над своим проектом, но я понял это и подумал, что тоже поделюсь решением.

В файле /modules/blockwishlist/managewishlist.php нужно добавить следующую строку:

    $context->smarty->assign(array('static_token' => Tools::getToken(false))); /* make $static_token available in tpl */

непосредственно перед этой строкой:

    $action = Tools::getValue('action');
Другие вопросы по тегам