Я хочу добавить глобальную переменную в smarty.
Я добавил стили css с {$ urls.css_url} в stylesheep.tpl
<link rel="stylesheet" type="text/css" href="{$urls.css_url}my.css">
Это работает очень хорошо, за исключением того, что, если я переключаю магазин в режим отладки, у меня появляется эта ошибка:
ContextErrorException in smarty_internal_templatebase.php(157) : eval()'d code line 393: Notice: Undefined index: css_url
Что это значит? что эта переменная не будет доступна в smarty ?, поэтому если я поставлю кеш, она не будет загружена?
Как сделать переменную {$ urls.css_url} доступной с помощью smarty? везде на сайте?
Какой код я должен поставить и где его разместить, чтобы переменная (url_css) оставалась доступной в режиме отладки?
Спасибо за вашу помощь
Спасибо за вашу помощь, у вас высокий уровень по сравнению со мной.
На самом деле переменная уже определена и доступна везде.
В frontcontroler.php у меня было это:
$assign_array = array(
'img_ps_url' => _PS_IMG_,
'img_cat_url' => _THEME_CAT_DIR_,
'img_lang_url' => _THEME_LANG_DIR_,
'img_prod_url' => _THEME_PROD_DIR_,
'img_manu_url' => _THEME_MANU_DIR_,
'img_sup_url' => _THEME_SUP_DIR_,
'img_ship_url' => _THEME_SHIP_DIR_,
'img_store_url' => _THEME_STORE_DIR_,
'img_col_url' => _THEME_COL_DIR_,
'img_url' => _THEME_IMG_DIR_,
'css_url' => _THEME_CSS_DIR_,
'js_url' => _THEME_JS_DIR_,
'pic_url' => _THEME_PROD_PIC_DIR_,
);
Затем я добавил следующую строку ниже, чтобы назначить ее в smarty.
$this->context->smarty->assign(array('urls' => $urls));
Переменная отображается, без проблем, но если я переведу магазин в режим отладки:
/* Debug only */
if (!defined('_PS_MODE_DEV_')) {
define('_PS_MODE_DEV_', true);
}
У меня всегда есть это:
ContextErrorException in smarty_internal_templatebase.php(157) : eval()'d code line 393: Notice: Undefined index: css_url
Означает ли это, что нет значения? Почему исчезает его ценность? (когда я активирую PS_MODE_DEV)
Еще раз спасибо.