如何在prestashop'中获取当前主题的url;s.第三方物流文件&;
我需要获取图像路径,该路径位于www.mysite.com/themes/mytheme/img/image.png ================================================= 我在这里找到了答案:如何在prestashop'中获取当前主题的url;s.第三方物流文件&;,prestashop,Prestashop,我需要获取图像路径,该路径位于www.mysite.com/themes/mytheme/img/image.png ================================================= 我在这里找到了答案: my theme中图像的路径将是:{$tpl_dir}img/myimage.pngmytheme img文件夹有一个全局smarty变量-img_dir 请参见Prestashop中的所有Smarty全局变量: $tpl_uri将返回当前主题相对于web根目
my theme中图像的路径将是:{$tpl_dir}img/myimage.pngmytheme img文件夹有一个全局smarty变量-img_dir 请参见Prestashop中的所有Smarty全局变量:
$tpl_uri
将返回当前主题相对于web根目录的路径
以下是PrestaShop提供的一些其他全局变量,可能会有所帮助:
$img_ps_dir // the PrestaShop image directory
$img_cat_dir // current category's images directory
$img_lang_dir // current language's images directory
$img_prod_dir // current product's images directory
$img_manu_dir // current manufacturer's images directory
$img_sup_dir // current supplier's images directory
$img_ship_dir // current carrier's (shipping) images directory
$img_dir // current theme’s images directory
$css_dir // current theme’s CSS directory
$js_dir // current theme’s JavaScript directory
$tpl_dir // current theme’s directory (physical path on machine)
$tpl_uri // current theme's directory (web-root relative path)
$modules_dir // modules directory
$mail_dir // mail templates directory
$pic_dir // pictures upload directory
在PS1.6上,我发现需要添加一个smarty变量来获取主题的uri。在里面 类/controller/FrontController.php 在设置tpl_dir的第333行,我在下面添加了这一行:
'tpl_uri' => _THEME_DIR_,
它返回主题的路径。有时查看代码,查看分配的所有基本变量就足够了:
// FrontController Class
$this->context->smarty->assign(array(
// Usefull for layout.tpl
'mobile_device' => $this->context->getMobileDevice(),
'link' => $link,
'cart' => $cart,
'currency' => $currency,
'cookie' => $this->context->cookie,
'page_name' => $page_name,
'hide_left_column' => !$this->display_column_left,
'hide_right_column' => !$this->display_column_right,
'base_dir' => _PS_BASE_URL_.__PS_BASE_URI__,
'base_dir_ssl' => $protocol_link.Tools::getShopDomainSsl().__PS_BASE_URI__,
'force_ssl' => Configuration::get('PS_SSL_ENABLED') && Configuration::get('PS_SSL_ENABLED_EVERYWHERE'),
'content_dir' => $protocol_content.Tools::getHttpHost().__PS_BASE_URI__,
'base_uri' => $protocol_content.Tools::getHttpHost().__PS_BASE_URI__.(!Configuration::get('PS_REWRITING_SETTINGS') ? 'index.php' : ''),
'tpl_dir' => _PS_THEME_DIR_,
'tpl_uri' => _THEME_DIR_,
'modules_dir' => _MODULE_DIR_,
'mail_dir' => _MAIL_DIR_,
'lang_iso' => $this->context->language->iso_code,
'lang_id' => (int)$this->context->language->id,
'language_code' => $this->context->language->language_code ? $this->context->language->language_code : $this->context->language->iso_code,
'come_from' => Tools::getHttpHost(true, true).Tools::htmlentitiesUTF8(str_replace(array('\'', '\\'), '', urldecode($_SERVER['REQUEST_URI']))),
'cart_qties' => (int)$cart->nbProducts(),
'currencies' => Currency::getCurrencies(),
'languages' => $languages,
'meta_language' => implode(',', $meta_language),
'priceDisplay' => Product::getTaxCalculationMethod((int)$this->context->cookie->id_customer),
'is_logged' => (bool)$this->context->customer->isLogged(),
'is_guest' => (bool)$this->context->customer->isGuest(),
'add_prod_display' => (int)Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),
'shop_name' => Configuration::get('PS_SHOP_NAME'),
'roundMode' => (int)Configuration::get('PS_PRICE_ROUND_MODE'),
'use_taxes' => (int)Configuration::get('PS_TAX'),
'show_taxes' => (int)(Configuration::get('PS_TAX_DISPLAY') == 1 && (int)Configuration::get('PS_TAX')),
'display_tax_label' => (bool)$display_tax_label,
'vat_management' => (int)Configuration::get('VATNUMBER_MANAGEMENT'),
'opc' => (bool)Configuration::get('PS_ORDER_PROCESS_TYPE'),
'PS_CATALOG_MODE' => (bool)Configuration::get('PS_CATALOG_MODE') || (Group::isFeatureActive() && !(bool)Group::getCurrent()->show_prices),
'b2b_enable' => (bool)Configuration::get('PS_B2B_ENABLE'),
'request' => $link->getPaginationLink(false, false, false, true),
'PS_STOCK_MANAGEMENT' => Configuration::get('PS_STOCK_MANAGEMENT'),
'quick_view' => (bool)Configuration::get('PS_QUICK_VIEW'),
'shop_phone' => Configuration::get('PS_SHOP_PHONE'),
'compared_products' => is_array($compared_products) ? $compared_products : array(),
'comparator_max_item' => (int)Configuration::get('PS_COMPARATOR_MAX_ITEM'),
'currencyRate' => (float)$currency->getConversationRate(),
'currencySign' => $currency->sign,
'currencyFormat' => $currency->format,
'currencyBlank' => $currency->blank,
));
{$tpl_dir}返回物理路径=c:\wamp\WW其中是prestashop中可用smarty变量的列表这是一个极好的答案!不幸的是与PS1.7不兼容…@GofeniceTechnologies请为我们提供一个新链接。在PS1.6中,您只需使用
{$tpl_uri}
-不要使用{$tpl_dir}`那个是服务器上的绝对路径-您不想公开那个…:)