我創建了一個新的菜單項,可以稱之爲「我的菜單項」。它顯示在Magento的管理區域。如果新項目被點擊,我不想顯示一個網格,但一個簡單的窗體有一些文本字段和一個按鈕應該觸發一個動作。我會怎麼做?我發現的所有例子都創建了一個網格來顯示數據,這不是我想要的。我只是想要一個表格「在」我的菜單項「Magento:如何添加一個簡單的表單到管理菜單項?
這可能嗎?
謝謝!
我創建了一個新的菜單項,可以稱之爲「我的菜單項」。它顯示在Magento的管理區域。如果新項目被點擊,我不想顯示一個網格,但一個簡單的窗體有一些文本字段和一個按鈕應該觸發一個動作。我會怎麼做?我發現的所有例子都創建了一個網格來顯示數據,這不是我想要的。我只是想要一個表格「在」我的菜單項「Magento:如何添加一個簡單的表單到管理菜單項?
這可能嗎?
謝謝!
是的,它完全可能,因爲框架本質上是可擴展的。爲什麼你不做以下事情。
1.)確保你的adminhtml控制器正在工作。 2.)創建您在菜單項中的動作標籤中指定的動作。 3)在上述行動只是:
$this->loadLayout();
$this->renderLayout();
這就是所有需要的控制器。此時您應該加載標準的magento管理佈局。所以你想添加一個表單到頁面?好的,很簡單。
4.)爲你的模塊聲明一個佈局xml文件。即在您的etc/config.xml中,即 將此置於全局節點之外。
<adminhtml>
<layout>
<updates>
<yournamespace_yourmodule>
<file>yourfile.xml</file>
</yournamespace_yourmodule>
</updates>
</layout>
</adminhtml>
那麼你會把這個文件放在哪裏?
以及多數民衆贊成你的,但我建議把它在app /設計/ adminhtml /默認/缺省/佈局
這是什麼文件?以及我們可以註冊一個塊併爲其設置一個模板文件。
文件可能看起來像
<?xml version="1.0" encoding="UTF-8"?>
<layout>
<adminhtml_yourcontroller_youraction>
<reference name="content">
<block type="yournamespace_yourmodule/adminhtml_yourblock"
name="yournamespace_yourmodule_form" template="yourformtemplate.phtml"/>
</reference>
</adminhtml_yourcontroller_youraction>
</layout>
所以接下來的步驟將是
5)聲明一個新的塊之後,你是如何在佈局XML文件中引用它
編輯:爲了澄清塊文件,繼續這個例子,在你的模塊目錄下的Block/Adminhtml下創建一個文件,並將其命名爲「Yourblock.php」或任何你想要的,確保它對應於您塊聲明:
<block type="yournamespace_yourmodule/adminhtml_yourblock" ... found in your layout file.
這裏是塊類可能是什麼樣子的例子:
<?php
class Yournamespace_Yourmodule_Block_Adminhtml_Yourblock extends Mage_Adminhtml_Block_Template
{
//to statt you dont really need anything here, but this is where you would place you block methods that can assist your template file when it needs data or other logic...
}
6)創建一個模板文件,並將其放置correclty,在我的例子把它放在
應用程序/設計/ adminhtml /默認/缺省/模板
添加你的php的形式給它(或者一些標準的HTML,以檢查其工作正常)
多數民衆贊成它(就顯示錶格 - 當然,你現在需要創建行動接受你的表單POST和所有其餘的)。
回顧一下。
謝謝,我現在試着按照這些步驟操作。我會回來:) – user1856596
請花時間來解決這個問題。我只花了20分鐘測試我的解決方案,並按預期工作。讓我知道你是否掙扎。 – activeDev
是的,它的工作原理!我非常感謝你的工作。我爲我的Block擴展了錯誤的類,擴展了Mage_Core_Block_Template完成了這個技巧:)。 – user1856596