1
votes

I create a module, not a component, a module because it should appears a number of times, on a number of pages in various positions I follow basic module creation

In default.php I would like to make a ajax call to helper to refresh data, something like that :

$.ajax({ url: '/index.php?option=mod_doodlike&format=raw&tmpl=component, 

all other parameters are in post

Is it possible ? what is the exact URL ? what should I put in helper.php (public function , class myclass extends JController) or in mod_module.php : jimport('joomla.application.component.controller');

or definitely it's a component I need to create ?

2

2 Answers

2
votes

so after some ggsearch, I succeeded thanks to this post

you have to call itself, best way to do is to use (in default.php):

 'url: "<?php echo JURI::getInstance() ?>",'

Then is mod_yourmodule.php intercept get or post "query" with JRequest::getVar because "$_POST['xxx']" does not work

 '$task = JRequest::getVar('task'); '
 'if($task == ....... '
 'and call the helper modyourmoduleHelper::youfuncion'

In helper, as you don't need all layouts I sent an echo of funcion returned value between “<”reply“>” tags and stoped joomla with jexit()

The reply will be the default.php + the echo easily parsed with :

 'var re = /<reply>(.*)<\/reply>/;'
 'var result = re.exec(T_output);       '       
 'if(result[1] != ''){ Displayfunction($.parseJSON(result[1]));}'

... finished

2
votes

No, you can't call a module URL as modules don't use them.

Your best bet would be to download and install the brand new com_ajax component that acts as an entry point for Ajax functionality. It's available for Joomla 1.5, 2,5 and 3.x, so whichever version you need, don't forget to select that branch first:

https://github.com/betweenbrain-llc/Joomla-Ajax-Interface

Hope this helps