2012-05-15 9 views
1

Можно ли обрабатывать вызовы ajax в Joomla без использования вспомогательного компонента?Ajax вызов с помощью вспомогательного модуля

Например, Я хочу создать модуль, который делает вызовы ajax. Я знаю, как обрабатывать вызов с помощью вспомогательного компонента (index.php? Option = com_myhelper .... & format = raw), но вместо вспомогательного компонента я хотел бы сделать это из модуля.

Есть ли способ вызвать модули Joomla, так же, как вы бы назвали компонент Joomla из внешнего скрипта (http: //mydomain.com/index.php? Option = com_myhelper .... & format = сырой)?

ответ

1

Вам нужно позвонить функции AJAX из домена А в домен Б? Если это так, вам нужно использовать прокси-сервер.

То, что я сделал, возможно, может помочь:

JS компоненты:

J.ajax({ 
    type: 'GET', 
    url: '/index.php', 
    data: { 
     option: 'com_mycomponent', 
     task: 'getTaskFromTheController', 
     param: 'paramValue1' 
    }, 
    success: function(data) { 
     J('#suggestions').fadeIn(); 
     J('#suggestions').html(data); 
     J('#suggestions .close-image').click(function() { 
      J('#suggestions').fadeOut();      
     });  
    } 

Более подробной информации о jQuery POST/GET

Добавить в controller.php компоненты функции getTaskFromTheController

public function getTaskFromTheController() 
{ 
    global $mainframe; 
    $model =& $this->getModel(); 
    // If GET 
    // $param= JRequest::getVar('param'); 

    // If POST 
    // $param = JRequest::getVar('param', '', 'post', 'string'); 
    //Or 
    // $param = JRequest::getVar('param', '', 'post', 'string', JREQUEST_ALLOWHTML); 

    echo $model->getUserTaskAjax($param); 
    $mainframe->close(); 
} 

Интересные ссылки: http://forum.joomla.org/viewtopic.php?p=2424982 http://docs.joomla.org/Adding_AJAX_to_your_component How to use jQuery ajax in Joomla module

+0

ли можно использовать модуль в качестве прокси-сервера вместо компонента? – Stilero

+1

Я не уверен на 100%, но Joomla! рабочий процесс модуля не был разработан для этой цели (исправьте меня, если я ошибаюсь). Но вы можете создать файл proxy.php, и вы можете включить Joomla! framework [link] http://stackoverflow.com/questions/2445549/how-to-get-current-joomla-user-with-external-php-script – Daviddd

+0

Это и мой вывод. Кончик с автономным php-файлом, который включает фреймворк, стоит заглянуть в немного больше. Отличный совет, спасибо! – Stilero

 Смежные вопросы

  • Нет связанных вопросов^_^