Prestashop内容仅链接不起作用

时间:2012-12-15 01:00:34

标签: php prestashop

我已经有了条款和条件链接并添加了Fancybox,但是当它点击链接时,它会出现整个网页,而不仅仅是花式框容器中的内容。

链接的格式为site / online-store / au / content / 3-terms-of-use-use?content_only = 1

然而,content_only = 1似乎没有做任何事情?

3 个答案:

答案 0 :(得分:1)

问题是此链接正在从https页面加载非https内容。

要修复它,请编辑controllers / front / ParentOrderController.php

$this->link_conditions = $this->context->link->getCMSLink($cms, $cms->link_rewrite, false);

并将最后一个参数更改为true以强制使用https

$this->link_conditions = $this->context->link->getCMSLink($cms, $cms->link_rewrite, true);

答案 1 :(得分:0)

问题是因为您加载的CMS没有所需的参数。因此,条件

  

/controllers/front/CmsController.php

if (Configuration::get('PS_SSL_ENABLED') && Tools::getValue('content_only') && $id_cms && Validate::isLoadedObject($this->cms) && in_array($id_cms, array((int)Configuration::get('PS_CONDITIONS_CMS_ID'), (int)Configuration::get('LEGAL_CMS_ID_REVOCATION')))) 
{
  $this->ssl = true;
}

返回false。只需用

替换它
 $this->ssl = true;

...多田

答案 2 :(得分:0)

这将适用于PrestaShop 1.6.x / 1.7.x,并将在Fancybox中打开ToS

在您的控制器中:

$cms = new CMS(Configuration::get('PS_CONDITIONS_CMS_ID'), $this->context->language->id);
$conditions_link = $this->context->link->getCMSLink($cms, $cms->link_rewrite).'?content_only=1';
$this->addJqueryPlugin(array('fancybox'));
$this->context->smarty->assign(['conditions_link' => $conditions_link]);

然后,在您的.tpl文件中:

<a class="fancybox-tos" href="{$conditions_link}">{l s='Terms of service' d='Shop.Theme.Checkout'}</a>

最后,在您的.js文件中:

$(document).ready(function() {
        $('.fancybox-tos').fancybox({
            type: 'iframe',
            autoDimensions: false,
            autoSize: false,
            width: 600,
            height: 'auto',
            helpers: {
                overlay: {
                locked: false
            }
        }
    });
});

我希望这会有所帮助!