Я пытался задать этот вопрос в битах, но с ограниченным успехом.
Я пишу пользовательский модуль.Пользовательский модуль имеет аспект конфигурации.В этой конфигурации я хочу открыть окно, содержащее поля, в которые пользователь вводит дополнительную информацию (а не вводить эти поля непосредственно на экране конфигурации).
Итак, у меня есть кнопка на экране конфигурации, которая, если нажата, открывает это новое окно (используя window.open javascript).Просто чтобы проверить механизм, я поместил файл, который нужно открыть, в корень моей установки Magento, и это было нормально.Но, очевидно, мне нужно будет поместить этот файл в другое место.Поэтому вместо открытия abc.html у меня был открытый файл javascript /index.php/myfrontname/mycontroller/myaction (я бы предпочел, чтобы в моих URL не было index.php, но это совсем другое).
Во-первых, правильно ли изменить URL-адрес из простого HTML-файла на структуру frontname / controller / action?
Предполагая, что это так, я не получаю ожидаемое содержимое в всплывающем окне,Я получаю страницу Magento (я использую демонстрационные данные) с битами обслуживания клиентов / мини-корзиной и т. Д. В левом и правом столбцах, а в середине страницы ничего нет.Я не хочу ничего этого на странице - я хочу показать мой HTML, и только мой HTML.
Я использовал документы Alan Storm в качестве источника при настройке следующего, но яЯ явно что-то упустил (или довольно много!).
Мой JS делает window.open для "/index.php/myfrontname/moreDetails/moredetails", и вот что я думаю, соответствующие файлыдля этой проблемы:
config.xml:
<config>
...
<adminhtml>
<layout>
<updates>
<mymodule>
<file>mymodule_moredetails.xml</file>
</mymodule>
</updates>
</layout>
</adminhtml>
</config>
app / code / local / MyPackage / MyModule / controllers / MoreDetailsController.php:
<?php
class MyPackage_MyModule_MoreDetailsController extends Mage_Core_Controller_Front_Action
{
public function moredetailsAction()
{
$this->loadLayout(); // I'm still not clear as to what layout this loads.
$this->renderLayout();
}
}
app /design / adminhtml / default / default / layout / mymodule_moredetails.xml:
<?xml version="1.0"?>
<layout version="0.1.0">
<mymodule_mycontroller_myaction>
<reference name="root">
<block type="mymodule/adminhtml_system_config_moreDetails" name="root"/>
</reference>
</mymodule_mycontroller_myaction>
</layout>
app / code / local / MyPackage / MyModule / Block / Adminhtml / System / Config / MoreDetails.php:
<?php
class Mypackage_MyModule_Block_Adminhtml_System_Config_MoreDetails extends Mage_Core_Block_Template // also tried extending Mage_Core_Block_Text
{
protected function _prepareLayout()
{
parent::_prepareLayout();
if (!$this->getTemplate()) {
$this->setTemplate('mypackage/system/config/more_details.phtml');
}
return $this;
}
}
app / design / adminhtml / default / default / mypackage / system / config / more_details.phtml:
<HTML>
...
</HTML>
Спасибо за любую помощь.