我正在使用prestashop,在主题中我添加了自己的目录,里面有样式表
然后我在header.tpl中链接了样式表
<link rel="stylesheet" type="text/css" href="/directory/style.css" />
Run Code Online (Sandbox Code Playgroud)
但是如果我在一个子目录中安装prestashop,例如
www.website.com/prestashop/然后风格没有显示,因为它认为网站的根目录是www.website.com.是否有一个pretsashop字符串我可以用来回应安装prestashop目录?
例如
$ ps_dir或$ ps_uri ???
所以我可以做这样的事情
<link rel="stylesheet" type="text/css" href="{$ps_dir}/directory/style.css" />
Run Code Online (Sandbox Code Playgroud)
干杯
小智 6
假设您使用的是PS 1.4,那么您应该总是将其他样式表排入队列,但要做到这一点,您需要为FrontController该类添加一个简单的覆盖或创建一个特定于主题的模块.这样做的好处是,Prestashop会将CSS(或javascript)包含在最小化和CDN代码中,这可以大大加快您的网站速度.
你有什么理由需要一个单独的css文件,并且不能为你的主题global.css命名你需要的css吗?使用global.css文件意味着它将被自动包含和最小化.
如果您可能需要有条件地添加css(这是您必须将其硬编码到主题中的位置)或引用其他主题资源,那么您还可以使用以下变量:
{$css_dir} The /css directory in your theme
{$js_dir} The /js directory in yout theme
{$img_dir} /img directory in your theme
{$tpl_dir} Your theme's top-level directory
Run Code Online (Sandbox Code Playgroud)
小智 5
这些可能是一些有用的变量
(看看 PS_root/classes/controller/FrontConrtoller.php - PrestaShop v 1.5.2 中的第 310 行)
$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__,
'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_,
'modules_dir' => _MODULE_DIR_,
'mail_dir' => _MAIL_DIR_,
'lang_iso' => $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(),
'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'),
'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') || !(bool)Group::getCurrent()->show_prices,
'b2b_enable' => (bool)Configuration::get('PS_B2B_ENABLE'),
'request' => $link->getPaginationLink(false, false, false, true)
));
Run Code Online (Sandbox Code Playgroud)
我需要我的 PrestaShop 站点的根绝对变量来包含文件,所以我不得不定义一个新的:
在 PS_root/override/classes/controller/FrontConrtoller.php
class FrontController extends FrontControllerCore{
$this->context->smarty->assign(array(
'root_dir' => _PS_ROOT_DIR_
));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14365 次 |
| 最近记录: |