2012-02-29 48 views
0

我已經非常熟悉Magento的設計結構,現在正在爲我的手而開發。Magento - Onclick View.php方法?

無論如何,我想要做的是添加幾個按鈕到銷售/訂單菜單,該菜單提供了點擊一個按鈕,然後發出一個預定義的模板(例如退貨/派送產品)的選項。

我有電子郵件的方法排序,由於一些相當豐厚的谷歌,但試圖在view.php中調用此方法提供一個麻煩。我可以運行這個方法,但是它會在沒有按下按鈕的情況下運行,並且非常明顯的是'Works !!'卡在頂部並且與Magento的樣式相混淆。

我一直在尋找這樣的onclick方法:

$model = Mage::getModel('MyTux_Email_Model_Email'); 
if($this->_isAllowedAction('Despatch')) 
{ 
    $this->_addButton('Despatched', array(
    $message = Mage::helper('sales')->__('Are you sure this item has been despatched?'), 
    'label'  => Mage::helper('sales')->__('Despatch Confirm'), 
    'onclick' => $model->_sendStatusMail($order), 
    )); 
} 

我想盡其中修改這個方式,我用各種夾雜布爾的if語句,即如果按鈕點擊然後執行此操作,然後執行所有操作,但似乎沒有正確地封裝該方法。

自定義模塊已正確設置,我現在必須弄清的真正障礙是調用該方法。正如你所看到的,我已經把它變成了一個全球幫手,所以我可以很容易地找到這個方法。但真的證明是麻煩的,有沒有人有任何想法如何我可以去完成:

onclick - 調用方法!只是不加載頁面時調用它! :|

謝謝!

回答

0

我已經設法讓它在StackOverflow上正確的方向上運行(真的是越野車)。 I \」 M要詳細說一下我爲了做這個,爲別人打工使用:

  1. 您的自定義模塊中創建索引控制器。 Magento Wiki有關於此的教程。
  2. 設置與您的config.xml以下(這是前端,該模塊意在後端,所以只是爲了示例的目的)與下列:

    ... 
    <frontend> 
    <routers> 
        <namespace_module> 
         <use>standard</use> 
         <args> 
          <module>namespace_module</module> 
          <frontName>modulename</frontName> 
         </args> 
        </namespace_module> 
    </routers> 
    </frontend> 
    ... 
    

前名稱將指:http://yoursite.com/modulename,如果您認爲合適,則更改。

3:使用以下作爲用於您的方法的鹼例如:

'onclick' => "confirmSetLocation(\'{$message}','{$this->getUrl('namespace_module')}\')", 

4:爲了獲取您的訂單ID和順序使用以下內容:

class MyTux_Email_IndexController extends Mage_Core_Controller_Front_Action 
    {   
     public function indexAction() 
     { 
      $orderId = $this->getRequest()->getParam(\'order_id\'); 
      $order = Mage::getModel(\'sales/order\')->load($orderId); 
      $model = Mage::getModel(\'Your_Custom_Model_Name\'); 
      $email = $model->_sendStatusMail($order); 
     } 
    } 

5:其次任何有關模型你的電話。請確保在控制器級別調用訂單。夢魘來弄清楚這一點,但希望這篇文章能夠幫助那些有類似困境的人!

1

onclick選項設置HTML按鈕標籤的onclick屬性。它不會被Magento執行。

我已經看到完成的方式是創建一個控制器和路由來處理請求並設置onclick將瀏覽器重定向到控制器的URL或向控制器發出AJAX調用。

+0

感謝芽,真正的好推向正確的方向我不知道從哪裏開始! – evensis 2012-02-29 01:21:00

+0

感謝weirdo我設法得出解決方案,試圖自我回答,但不會讓我再過8個小時! – evensis 2012-02-29 03:15:28

+0

很高興幫助。迫不及待想看看你想出了什麼! – wierdo 2012-02-29 07:21:37