2013-02-01 100 views
1

我創建了一個新的菜單項,可以稱之爲「我的菜單項」。它顯示在Magento的管理區域。如果新項目被點擊,我不想顯示一個網格,但一個簡單的窗體有一些文本字段和一個按鈕應該觸發一個動作。我會怎麼做?我發現的所有例子都創建了一個網格來顯示數據,這不是我想要的。我只是想要一個表格「在」我的菜單項「Magento:如何添加一個簡單的表單到管理菜單項?

這可能嗎?

謝謝!

回答

2

是的,它完全可能,因爲框架本質上是可擴展的。爲什麼你不做以下事情。

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和所有其餘的)。

回顧一下。

  • 聲明一個adminhtml佈局更新文件
  • 聲明新adminhtml塊
  • 實例化塊,並設置它的模板文件確保佈局更新是特定於只有你的控制器動作。 (全部在佈局xml文件中)
  • 在控制器操作中,只需加載和渲染布局即可。
+0

謝謝,我現在試着按照這些步驟操作。我會回來:) – user1856596

+0

請花時間來解決這個問題。我只花了20分鐘測試我的解決方案,並按預期工作。讓我知道你是否掙扎。 – activeDev

+0

是的,它的工作原理!我非常感謝你的工作。我爲我的Block擴展了錯誤的類,擴展了Mage_Core_Block_Template完成了這個技巧:)。 – user1856596

相關問題