2012-02-13 90 views
0

我不知道爲什麼這不起作用,但我的自定義按鈕動作(任務)都沒有在我的組件中做任何事情。在我view.html.php文件我有:Joomla自定義管理按鈕動作

JToolBarHelper::custom('reports.export_csv', 'csv', '', 'CSV', false); 
JToolBarHelper::custom('reports.export_mailchimp', 'mailchimp', '', 'Mailchimp', false); 

然後在我的ReportsControllerReports文件,我有2種方法(不只是2,也有一些人,但他們是不相關的),EXPORT_CSV()和export_mailchimp( )。每當我點擊按鈕,我得到一個JS錯誤,我認爲這是阻止在這些方法中執行代碼的行爲。關於「b是未定義的」。我找不到我的代碼與其他Joomla(核心)組件中使用的代碼之間的任何區別,所以如果任何人都可以解釋這個問題,它將不勝感激(像往常一樣,Joomla論壇是完全無用的)。

回答

0

應覆蓋Joomla的JS框架水煤漿
你應該在你的自定義JS文件使用的功能:
Joomla.submitbutton = function(pressbutton) {
switch(pressbutton) {
case 'export_cvs':
URL = JURI::base.'index.php?option=yourController&task=export_cvs&....
$.ajax({
url: URL, type: post, etc });
}
}

在我的組件everytrhing是確定的,可以正常使用

+0

感謝您的提示!我會給它一個鏡頭。 – aapis 2012-02-22 22:46:14

6

@Cfyzz解決方案工作。

我加入這個以查看文件:

<script type="text/javascript"> 

    Joomla.submitbutton = function(pressbutton) { 
     switch(pressbutton) { 
      case 'google': 

       window.location = '<?=JRoute::_('http://google.com', false);?>'; 

      break; 
      case 'stackoverflow': 

       window.location = '<?=JRoute::_('http://stackoverflow.com', false);?>'; 

      break; 
     } 

    } 
</script> 

而這view.html.php

JToolBarHelper::cancel('stackoverflow', 'Go Overflow'); 
JToolBarHelper::custom('google', 'checkin', '', 'Go Google', false); 

顯然你沒有使用 「JROUTE :: _(」 在這種情況下。我用2個樣品取代了內部鏈接,所以它更容易理解。