Php 如何在fancybox中打开Prestashop 1.6.1.x后台控制器?
我正在开发一个具有后台设置页面的Prestashop 1.6.1.x模块。 从这个页面我想有一个到index.php?controller=AdminThemes的链接,并在modal/fancybox中打开它Php 如何在fancybox中打开Prestashop 1.6.1.x后台控制器?,php,fancybox,smarty,prestashop,Php,Fancybox,Smarty,Prestashop,我正在开发一个具有后台设置页面的Prestashop 1.6.1.x模块。 从这个页面我想有一个到index.php?controller=AdminThemes的链接,并在modal/fancybox中打开它 如何加载fancybox js和css,以便在链接上使用class=“fancybox” 如何标记链接 是否可以链接到此控制器“裸”,不包括页眉、页脚和左菜单栏 PS:我想在PHP中重复这一点,而不是Smarty,但如果有人想同时分享PHP和Smarty方式,我认为这将对更多人有所帮助。
PS:我想在PHP中重复这一点,而不是Smarty,但如果有人想同时分享PHP和Smarty方式,我认为这将对更多人有所帮助。Fancybox会自动加载到每个管理页面上 基本上你需要做的就是在你的页面上显示一个简单的链接
<a class="fancybox" href="{$link->getAdminLink('AdminThemes')}&liteDisplaying=1">Link description</a>
$link->getAdminLink('AdminThemes')
将生成指向该页面的链接,并通过附加
&litedinging=1
通知控制器仅加载页面内容(不带页眉、页脚和菜单)
在javascript中,您将该页面作为iframe fancybox加载。它将自动从锚点读取href
请不要用PHP呼应内容。您使用MVC结构是有原因的。
&liteDisplaying=1
在大多数页面上工作得很好,但在模块上,页面是空白的。如果我查看html源代码,我会发现:在/home/fikennettbitkk/public_html/tpl2/tools/smarty/sysplugins/smarty_internal_templatebase.php(157):eval()'d第165行的代码
关于&litedinging=1
不适用于模块页面@drot的任何细节?我甚至尝试了prestashop 1.7在线后台演示。空白页的结果相同。@OnklMaps在加载模板之前,您可能必须在控制器中分配smarty变量<代码>$this->context->smarty->assign('link',$this->context->link)代码>
(function ($) {
$(document).ready(function () {
$('.fancybox').fancybox({
width: '90%',
height: '90%',
type: 'iframe',
title: ''
});
});
})(jQuery);