Magento setTemplate во время выполнения / программно - PullRequest
1 голос
/ 15 ноября 2011

У меня есть статические страницы CMS на моем сайте, например Политика конфиденциальности, гарантия возврата денег и т. Д. Я разместил эти ссылки в нижнем колонтитуле веб-сайта, откуда они открываются со стандартным макетом, включая верхний и нижний колонтитулы и боковые панели.

Я хочу разместить эти ссылки в виде значков на страницах моего продукта, но не хочу открывать их в новом окне. Я предпочитаю fancybox / Thickbox для этого, но я хочу, чтобы отображалось только содержимое страницы, а не заголовок, нижний колонтитул, боковые панели и т. Д. Вкратце я хочу установить пустой шаблон для этих страниц CMS только из ссылок, которые находятся на странице продукта.

Может кто-нибудь дать мне знать, пожалуйста, что является лучшим способом для достижения этой цели?

Ответы [ 2 ]

1 голос
/ 15 ноября 2011

Вы можете использовать вкладку «Дизайн» на странице «Редактировать CMS» в бэкэнде, чтобы «перезаписать» используемый шаблон. Вы можете выбрать «макет» из раскрывающегося списка, чтобы применить его только к этой странице. Существует два подхода для добавления новых макетов, один из которых заключается в создании собственного модуля, который определяет что-то вроде XML-макета для вашего модуля

<new_layout translate="label" module="page">
    <label>My New Layout</label>
    <block type="page/html" name="root" output="toHtml" template="page/new-layout.phtml">
</new_layout>

другой вариант - просто добавить это в файл page.xml в файле макета шаблонов (а затем в файл new-layout.phtml, который вы хотите использовать в папке шаблонов), это может быть излишним просто для редактирования блока из страница на страницу, но это «самый простой» способ.

Весь этот код не проверен и записан из памяти, но должен быть достаточно близок к тому, что вам нужно.

Alan

0 голосов
/ 10 апреля 2013

только для страниц cms

Перейдите в mage / page / helper / layput.php

изменить: -

public function applyHandle($pageLayout){     

    $pageLayout = $this->_getConfig()->getPageLayout($pageLayout);

    if(isset('emptylayout'))    {   
            $pageLayout->setCode('empty');
            $pageLayout->setTemplate('page/empty.phtml'); // this will work
            $pageLayout->setLayoutHandle('empty');

        }
            .
            .
            .

   }

// код запроса

 jQuery('.f-left li a').click(function(e){
            e.preventDefault();                         

            var url=jQuery(this).attr('href')+'?emptylayout'; 

            var data= '<iframe width="100%" height="550" frameborder="0" src="'+url+'"></iframe>';
            jQuery('#mask').html(data);
            jQuery.fancybox({
                    'href': '#mask',
                    'afterClose': function() {
                                        jQuery('#mask').html('');

                                        },
                  });

 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...