douwu7168 2017-04-07 08:33
浏览 68
已采纳

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

I'm developing a Prestashop 1.6.1.x module that has a Back Office settings page. From this page I want to have a link to index.php?controller=AdminThemes and have this open in a modal/fancybox.

  1. How do i load fancybox js and css, so that i can use class="fancybox" on the link?
  2. How do I tokenize the link?
  3. Is it possible to link to this controller "naked", not including header, footer, and left menubar?

PS: I want to echo this out in PHP, not Smarty, but if someone would like to share both the php and the Smarty-way, I think it would be helpful for even more people.

  • 写回答

1条回答 默认 最新

  • dqd22496 2017-04-07 14:47
    关注

    Fancybox is automatically loaded on every admin page.

    Basically all you need to do is display a simple link in your page.

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

    and add this javascript

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

    $link->getAdminLink('AdminThemes')

    will generate a link to that page and by appending &liteDisplaying=1 you tell the controller to load only page content (without header, footer and menu).

    And in javascript you load that page as an iframe fancybox. It will automatically read the href from anchor.

    Please don't echo out content with PHP. You have MVC structure for a reason.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?