Поделюсь небольшой информацией, может кому пригодится.
Итак, чтобы использовать в AdsManager (на примере приводится код для версии 2.5). возможности AJAX нужно в AdsManager.html.php:
1. Добавить ссылку (картинку, внопку и т.д.) при нажатии на которую будет сделан нужный запрос, для примера
<a href='javascript:void(0);' class='adsmsanger_ajax' onClick='ajax_test($row->id,this)'>ТЕСТИРУЕМ Ajax</a>
Тут мы назначаем событие при клике мышкой выполнить JS код.
2. Добавляем код JS:
<script type="text/javascript">
function ajax_test(id,el){
var url = '/index2.php?option=<?=$option?>&page=ajax_test&id='+id+'&no_html=1';
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.open("GET", url, true);
req.send(null);
}else if (window.ActiveXObject){
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.open("GET", url, true);
req.send();
}
}
req.onreadystatechange = function(){
if (req.readyState == 4) {
el.innerHTML = req.responseText;
el.setAttribute('onclick','');
}
}
}
</script>
Код выше является универсальным для всех браузеров. В нем создали нужную функцию и передаем AJAX запрос.
Теперь этот запрос надо обработать.
3. В файл AdsManager.php находим сверху switch ($page) { - сюда будет вставлять обработчик:
case 'ajax_test':{
ajax_test();
break;
}
Тут, если передаваемый page=ajax_test, то выполнить функцию ajax_test();
4. Сама функция - размещается также в AdsManager.php:
function ajax_test(){
global $database;
$option = mosGetParam($_GET,'option', "" );
$id = mosGetParam($_GET,'id', "" );
$database->setQuery("UPDATE #__adsmanager_ads SET flag_top=1 WHERE id=$id");
$database->query();
header('Content-type: text/html; '._ISO);
echo "Ура работает";
exit;
Тут мы сделали запрос в БД и в таблице компонента установили значение flag_top=1, после чего показали надпись "Ура работает".
На этом все, довольно просто и эффективно.