Joomla 1.0 Использование JSHttpRequest в модулях

Discussion in 'Создание расширений для Joomla' started by Dark Neo, Oct 1, 2008.

  1. Dark Neo
    Offline

    Dark Neo Недавно здесь

    Joined:
    Aug 2, 2008
    Messages:
    32
    Likes Received:
    0
    Gender:
    Male
    Добрый день.

    При написании модулей обнаружил такую вот, не то, что проблему, больше неудобство.

    Допустим, есть скрипт, интерфейсная часть которого генерируется другим скриптом, например капча генерируется на лету при помощи AJAX и JSHttpRequest. Скрипт, в общем виде выглядит так:

    Основной_файл_скрипта.php

    Код (CODE):
    1. [B]Подключаем JSHttpRequest.js[/B]
    2.  
    3. <script language="JavaScript" type="text/javascript" src="<?php echo $mosConfig_live_site; ?>/modules/mod_smssend/JSHttpRequest.js"></script>
    4. <script language="JavaScript">
    5.  
    6. var is_ie = (/msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent));
    7.  
    8. [B]Cкрипт генерации капчи на лету[/B]
    9.  
    10. function cap_change()
    11. {
    12.   // генерируем случайное число
    13.   var now = new Date();
    14.   var num = (now.getSeconds())*now;
    15.  
    16.   var nameBlock = 'captcha';
    17.   var req = new JSHttpRequest();
    18.   req.onreadystatechange = function() { if (req.readyState == 4) { GID(nameBlock).innerHTML = req.responseJS.captcha; } }
    19.   req.caching = false;
    20.   req.open('GET', '[B]<?php echo $mosConfig_live_site; ?>/modules/mod_smssend/captcha.php[/B]', true);
    21.   req.send({ code: num });  
    22.  
    23.   //window.alert(num);
    24. }
    25.  
    26. [B]Втыкаем эту капчу в отображаемую часть[/B]
    27.  
    28. <div id="captcha" align="left"></div>


    Здесь вопросов не возникает и все работает на ура.

    Теперь берем непосредственно файл генерации капчи

    Код (CODE):
    1. [B]Здесь подключаем файлы конфигурации Джумлы, чтобы можно было как-то обратно вернуть результат именно туда[/B]
    2.  
    3. include_once("../../configuration.php");
    4. include_once("../../modules/mod_smssend/JSHttpRequest.php");
    5. $JSHttpRequest = new JSHttpRequest("windows-1251");  
    6.  
    7. $code = $_REQUEST['code'];
    8. $code = substr($code, 0, 6);
    9.  
    10. [B]Здесь, соответственно, $mosConfig_live_site уже работает[/B]
    11.  
    12. $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? У меня не работает. Ни в каком виде, уже гугл замучил распросами.
     

    Attached Files:

  2.  
  3. sectus
    Offline

    sectus Недавно здесь => Cпециалист <=

    Joined:
    Apr 19, 2006
    Messages:
    1,210
    Likes Received:
    46
    Gender:
    Male
    по первому вопросу
    Код (PHP):
    1. include_once("../../includes/joomla.php");
     
  4. Dark Neo
    Offline

    Dark Neo Недавно здесь

    Joined:
    Aug 2, 2008
    Messages:
    32
    Likes Received:
    0
    Gender:
    Male
    Cпасибо, думаю, самое то. А как на счет использования JSHttpRequest в IE?
     
  5. Dead Krolik
    Offline

    Dead Krolik Недавно здесь => Cпециалист <=

    Joined:
    Apr 13, 2007
    Messages:
    3,685
    Likes Received:
    101
    Gender:
    Male
    Никто каптчу через модуль не делает. Для этого есть компоненты, и спец вызов через index2.php и no_html. Почитай документацию, я там обрисовал вроде бы это.

    index2.php?option=com_твой_компонент&no_html=1&task=get_captcha
     
  6. Dark Neo
    Offline

    Dark Neo Недавно здесь

    Joined:
    Aug 2, 2008
    Messages:
    32
    Likes Received:
    0
    Gender:
    Male
    Не пашет. Нарываюсь на собственный обработчик.
     
    Last edited: Oct 3, 2008

Share This Page

Loading...