2011-09-15 14 views
19

に現在のテーマのURLを取得するにはどうすればはPrestaShopののの.tplファイル&

===== www.mysite.com/themes/mytheme/img/image.pngに位置している画像のパスを取得する必要があります==========================

I 'ここで答えが見つかりました:http://prestalab.ru/wiki/peremennye-v-shablonax

私のテーマの画像へのパスは次のようになります。{$ tpl_dir}のimg/myimage.png

+2

- ** {$ tpl_dir}使用しないでください'!** - サーバー上の絶対パスです - あなたはそれを公開したくありません。:) –

答えて

20

$tpl_uriは、Webルートを現在のテーマの相対パスを返します。ここで

はPrestaShopのが役に立つかもしれが利用可能になり、いくつかの他のグローバル変数です:

PS 1.6で
$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 
+2

{$ tpl_dir}はphisical path = c:\ wamp \ wwwを返します。 –

+0

ここでは利用可能なsmartyのリストですプレストーシャップの変数 http://blog.gofenice.com/prestashop/global-smarty-variables-used-in-prestashop/ –

3

私は私が私のテーマのURIを取得するためにSmartyの変数を追加するために必要なことがわかりました。パスにテーマを返し

'tpl_uri' => _THEME_DIR_, 

:tpl_dirが設定されている約ライン333上の/ FrontController.php クラス/コントローラにおいて、Iは、以下の行を追加しました。

8

時にはそのenoughtは、すべての基本的な変数が割り当てられて見て、コードを見て:

あなたは、単に `` {$ tpl_uri}使用することができますPS1.6で
// 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, 
    )); 
関連する問題