2012-10-23 95 views
0

我試圖在magento中的管理面板(自定義模塊)中創建表單。現在我的magento自定義模塊正常工作。我在管理面板中創建了菜單,我重寫了一些控制器,但我無法在管理面板中創建表單(當我單擊菜單項時)。在config.xml中我的代碼下一部分:在magento管理面板中創建表單

<admin> 
      <routers> 
       <test> 
        <use>admin</use> 
        <args> 
         <module>Mynamespace_Skipcart</module> 
         <frontName>Skipcart</frontName> 
        </args> 
       </test> 
      </routers> 
     </admin> 
     <adminhtml> 
      <menu> 
       <tutorial_menu translate="title" module="skipcart"> 
        <title>Skip Cart</title> 
        <sort_order>9999</sort_order> 
        <children> 
         <first_page module="skipcart"> 
          <title>Our First Page</title> 
          <action>Skipcart/Adminhtml_index/index</action> 
         </first_page> 
        </children> 
       </tutorial_menu> 
      </menu> 
      <layout> 
       <updates> 
        <skipcart> 
         <file>Skipcart.xml</file> 
        </skipcart> 
       </updates> 
      </layout> 
     </adminhtml> 

我在應用程序/設計/前端/預設/默認/佈局/ skipcart.xml文件。在這個文件中我創建了錯誤。用這種方法,我檢查magento是否讀取這個文件。如果magento讀取skipcart.xml,將返回Warning:simplexml_load_string(),但magento不會返回錯誤。我還有一個問題。如果我在adminhtml.xml的config.xml文件中移動此代碼,管理面板中的菜單將消失。我在magento 1.7上試用我的模塊。有誰能夠幫助我?

我在app /代碼控制器/本地/ myNameSpace對象/ Skipcart /控制器/ Adminhtml/IndexController.php

<?php 

class Mynamespace_Skipcart_Adminhtml_IndexController extends Mage_Adminhtml_Controller_Action { 
    public function indexAction() 
    { 
     $this->loadLayout(); 

     //create a text block with the name of "example-block" 
     $block = $this->getLayout() 
     ->createBlock('core/text', 'example-block') 
     ->setText('<h1>This is a text block</h1>'); 

     $this->_addContent($block); 
    //add menu active 
     $this->_setActiveMenu('tutorial_menu/first_page'); 
     // $model = Mage::getModel('skipcart/skipcart'); Mage::log('da'); 
     // $this->_setActiveMenu('system/another_menu_from_us'); 
    // echo $block1 = $this->getLayout()->createBlock('skipcart/add'); 
     // $this->_addContent($block1); 
     $this->renderLayout(); 


    } 
    public function postAction() 
    { 
     $post = $this->getRequest()->getPost(); 
     try { 
      if (empty($post)) { 
       Mage::throwException($this->__('Invalid form data.')); 
      } 

      /* here's your form processing */ 

      $message = $this->__('Your form has been submitted successfully.'); 
      Mage::getSingleton('adminhtml/session')->addSuccess($message); 
     } catch (Exception $e) { 
      Mage::getSingleton('adminhtml/session')->addError($e->getMessage()); 
     } 
     $this->_redirect('*/*'); 
    } 

} 
?> 

和skipcart.xml:

<?xml version="1.0"?> 
<layout> 
    <skipcart_adminhtml_index_index> 
     <reference name="root"> 
      <action method="setTemplate"><template>page/2columns-left.phtml</template></action> 
     </reference> 

     <update handle="skipcart_index_index"/> 
     <reference name="content"> 
      <block type="adminhtml/template" name="skipcart" template="skipcart/add.phtml"/> 
     </reference> 
    </skipcart_adminhtml_index_index> 
<!-- I miss the <layout> because I want to check if magento read this file.--> 
+0

Skipcart.xml - 是大寫的S ...下面你是說我有一個文件'[...] skipcart.xml.'(沒有資本S)... – FlorinelChis

+0

對不起,我只是之後用小寫字母嘗試了資本。現在和文件和config.xml中都是小寫字母。這沒有錯:| –

+0

您可以發佈「Skipcart.xml」的內容......還有,您嘗試顯示什麼樣的表單? (是控制器的動作和相關的塊創建?) – FlorinelChis

回答

1

只是改變你的函數體像下面這樣,而不是core/text調用core/templatesetTemplate('filename.phtml'); 在這個文件中,你需要添加你的表單html就是它。

public function indexAction() 
{ 
    $this->loadLayout(); 

    //create a text block with the name of "example-block" 
    $block = $this->getLayout() 
    ->createBlock('core/template', 'example-block') 
    ->setTemplate('folder/fileName.phtml'); 

    $this->_addContent($block); 

    $this->_setActiveMenu('tutorial_menu/first_page');  

    $this->renderLayout(); 


}