2012-02-13 4 views
0

Я понятия не имею, почему это не работает, но ни одно из моих пользовательских действий (задач) ничего не делает в моем компоненте. В моем view.html.php файле у меня есть:Joomla custom admin button действия

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 (core), поэтому, если кто-то может пролить свет на эту проблему, было бы очень полезно (как обычно, форумы Joomla абсолютно бесполезны).

ответ

0

Вы должны переопределить рамки JS в Joomla в behavour
Вы должны использовать функцию в пользовательском файле 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

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 образца, чтобы их было легче понять.