我如何在 fancybox 中打开 Prestashop 1.6.1.x 后台控制器?

How do i open a Prestashop 1.6.1.x Back office controller in a fancybox?

我正在开发具有后台设置页面的 Prestashop 1.6.1.x 模块。 从这个页面我想有一个 link 到 index.php?controller=AdminThemes 并在 modal/fancybox 中打开它。

  1. 如何加载 fancybox js 和 css,以便我可以在 link 上使用 class="fancybox"?
  2. 如何标记 link?
  3. 是否可以 link 此控制器 "naked",不包括页眉、页脚和左侧菜单栏?

PS:我想在 PHP 中回应这一点,而不是 Smarty,但如果有人想分享 php 和 Smarty 方式,我认为对更多人有帮助。

Fancybox 会自动加载到每个管理页面。

基本上您需要做的就是在页面中显示一个简单的 link。

<a class="fancybox" href="{$link->getAdminLink('AdminThemes')}&liteDisplaying=1">Link description</a>

并添加此 javascript

(function ($) {
    $(document).ready(function () {
        $('.fancybox').fancybox({
            width: '90%',
            height: '90%',
            type: 'iframe',
            title: ''
        });
    });
})(jQuery);

$link->getAdminLink('AdminThemes')

将为该页面生成一个 link 并通过附加 &liteDisplaying=1 告诉控制器仅加载页面内容(没有页眉、页脚和菜单)。

然后在 javascript 中将该页面作为 iframe fancybox 加载。它会自动从锚点读取href。

请不要用 PHP 回显内容。您拥有 MVC 结构是有原因的。