首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Prestashop根目录

Prestashop根目录
EN

Stack Overflow用户
提问于 2012-05-03 17:13:35
回答 3查看 16.1K关注 0票数 3

我正在使用prestashop,并在主题中添加了我自己的目录,其中包含一个样式表

然后我将样式表链接到header.tpl中,例如

代码语言:javascript
运行
复制
<link rel="stylesheet" type="text/css" href="/directory/style.css" />

但是,如果我将prestashop安装在子目录中,例如

www.website.com/prestashop/,则样式不会显示,因为它认为站点的根是www.website.com。有没有可以用来回显prestashop安装目录的prestashop字符串?

像这样的东西

$ps_dir还是$ps_uri?

所以我可以做这样的事情

代码语言:javascript
运行
复制
<link rel="stylesheet" type="text/css" href="{$ps_dir}/directory/style.css" />

干杯

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-04 15:10:19

假设您使用的是PS1.4以后的版本,那么您实际上应该始终将额外的样式表排入队列,不过要做到这一点,您需要向FrontController类添加一个简单的覆盖,或者创建一个特定于主题的模块。这样做的好处是,Prestashop将把你的CSS (或javascript)包含到它的最小化和CDN代码中,这可以大大提高你的网站速度。

为什么你需要一个单独的css文件,而不能命名你的主题global.css所需要的css呢?使用global.css文件意味着它将被自动包含和最小化。

如果您可能需要有条件地添加css (这是您必须将其硬编码到主题中的地方),或者引用其他主题资源,那么您也可以使用以下变量:

代码语言:javascript
运行
复制
{$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 
票数 6
EN

Stack Overflow用户

发布于 2012-10-25 20:34:35

这些可能是一些有用的变量

(看看PrestaShop v1.5.2中的PS_root/classes/controller/FrontConrtoller.php -第310行)

代码语言:javascript
运行
复制
 $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)
    ));

我需要我的PrestaShop站点的根绝对变量来包含文件,所以我必须定义一个新变量:

在PS_root/override/classes/controller/FrontConrtoller.php中

代码语言:javascript
运行
复制
class FrontController extends FrontControllerCore{
    $this->context->smarty->assign(array(
        'root_dir' => _PS_ROOT_DIR_
    ));
}
票数 5
EN

Stack Overflow用户

发布于 2012-05-03 21:11:35

您可以使用

代码语言:javascript
运行
复制
<a href="{$base_dir}/directory/style.css">
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10428347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档