Добрый день. При написании модулей обнаружил такую вот, не то, что проблему, больше неудобство. Допустим, есть скрипт, интерфейсная часть которого генерируется другим скриптом, например капча генерируется на лету при помощи AJAX и JSHttpRequest. Скрипт, в общем виде выглядит так: Основной_файл_скрипта.php Код (CODE): [B]Подключаем JSHttpRequest.js[/B] <script language="JavaScript" type="text/javascript" src="<?php echo $mosConfig_live_site; ?>/modules/mod_smssend/JSHttpRequest.js"></script> <script language="JavaScript"> var is_ie = (/msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent)); [B]Cкрипт генерации капчи на лету[/B] function cap_change() { // генерируем случайное число var now = new Date(); var num = (now.getSeconds())*now; var nameBlock = 'captcha'; var req = new JSHttpRequest(); req.onreadystatechange = function() { if (req.readyState == 4) { GID(nameBlock).innerHTML = req.responseJS.captcha; } } req.caching = false; req.open('GET', '[B]<?php echo $mosConfig_live_site; ?>/modules/mod_smssend/captcha.php[/B]', true); req.send({ code: num }); //window.alert(num); } [B]Втыкаем эту капчу в отображаемую часть[/B] <div id="captcha" align="left"></div> Здесь вопросов не возникает и все работает на ура. Теперь берем непосредственно файл генерации капчи Код (CODE): [B]Здесь подключаем файлы конфигурации Джумлы, чтобы можно было как-то обратно вернуть результат именно туда[/B] include_once("../../configuration.php"); include_once("../../modules/mod_smssend/JSHttpRequest.php"); $JSHttpRequest = new JSHttpRequest("windows-1251"); $code = $_REQUEST['code']; $code = substr($code, 0, 6); [B]Здесь, соответственно, $mosConfig_live_site уже работает[/B] $result = "<img src=\"".[B]$mosConfig_live_site[/B]."/modules/mod_smssend/captcha_img.php?code=".$code."\" border=\"1\">"; Неудобство заключается в том, что, допустим, мне в этом скрипте было бы удобно использовать что-то из джумловского API, например, запрос к базе данных сделать, но при попытке сделать запрос через $database->setQuery("....") я получаю ошибку, что класс $database не известен, т.е. заново подключаться к базе данных через mysql_connect неудобно. Прикладываю модуль собственной разработки, где я использовал JSHttpRequest. Сразу об использовании JSHttpRequest. Кто-нибудь смог решить проблему с использованием его в IE? У меня не работает. Ни в каком виде, уже гугл замучил распросами.
Никто каптчу через модуль не делает. Для этого есть компоненты, и спец вызов через index2.php и no_html. Почитай документацию, я там обрисовал вроде бы это. index2.php?option=com_твой_компонент&no_html=1&task=get_captcha