Как получить переменную $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');