Phpxcore:php4:newmodule:xajax
Материал из phpXCoreWiki.
Содержание |
[править] Назначение
Xajax - библиотека для реализации AJAX
[править] Конфигурация
Настройка конфигурационного файла modules.run.xml:\\
<module_name> <run> <.../> <xajax>MyXajax</xajax> <.../> </run> </module>
[править] Реализация
Class Xajax наследуется от XModuleXajax, и следовательно Вы можете обращаться к следующим переменным:
- $this->active_user - активный пользователь (объект типа XUser)
- $this->modules_run - массив с конфигурационного файла modules.run.xml для данного модуля
- $this->module_config - конфиг текущего модуля
- $this->module_path - директория текущего модуля
- $this->request - request
Пример класса:
/** * Class MyXajax * * @access public * @package MyXajax * @created Wed Apr 12 16:37:49 EEST 2006 */ class MyXajax extends XModuleXajax { /** * Active user * @type XUser */ var $active_user; /** * modules.run.xml * @type array */ var $modules_run; /** * module config * * @var string */ var $module_config; /** * module path * @type string */ var $module_path; /* Все необходимые файлы инклудим в методе run или используя конфиг модуля и autoinit */ /** * run */ function run () { /* All includes files in this method */ // include_once 'something.php'; } /* ... Описываем необходимые методы, допускается обращения к $this, работа с методами осуществляется не через статику; если есть необходимость проверки прав на использования методов - используем как в примере ... */ /** * test * @access public * @param string $new_value */ function test($new_value, $id) { // Check admin permission if (!$this->checkSecurityAdmin()) { return $this->returnError('Permission denied'); } // Check user permission if (!$this->checkSecurityUser()) { return $this->returnError('Permission denied'); } // Instantiate the xajaxResponse object $objResponse = new xajaxResponse(); $new_value += 10; $objResponse->assign($id, "innerHTML", $new_value); //return the xajaxResponse object return $objResponse; } }
[править] Использование
Схема использования:
xxajax_lock(); // если есть необходимость в блокировке xajax_run('ИМЯ_МОДУЛЯ', 'ИМЯ_МЕТОДА', 'ПАРАМЕТР1', 'ПАРАМЕТР2', ...);
Пример:
<div id='system'></div> <a href="#" onclick="xxajax_lock(); xajax_run('MyModule', 'test', '100', 'system'); return false;">
[править] Debug
Для дебага вашего кода вы можете применять следующие приёмы:
1. - Использование буфера + метода returnDump($aData)
ob_start(); // тут ваш код, который может вызвать ошибку // ... // ... $ob = ob_get_contents(); ob_end_clean(); return $this->returnDump($ob);
2. - Использование FireFox + плагин FireBug
