1

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

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

但是 content_only=1 似乎没有做任何事情?

4

3 回答 3

2

问题是此链接正在从 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);
于 2013-09-18T10:38:13.323 回答
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
            }
        }
    });
});

我希望这有帮助!

于 2019-06-04T01:32:49.887 回答
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;
}

返回假。只需将其替换为

 $this->ssl = true;

田...

于 2016-09-01T07:10:45.963 回答