Czy kto¶ ju¿ ³±czy³ Zend Framework i bibliotekê XAJAX?
Albo mo¿e Zend Framework i inn± bibliotekê dla AJAXa?
<?php require_once('xajax/xajax.inc.php'); class wrx_Ajax { /** * tablica przechowujaca ustawienia * * @var array */ 'requestURI'=>'', 'prefix'=>'wrxajax_', 'encoding'=>'utf-8', 'debug'=>false, 'xajaxDir'=>'/libs/xajax' ); /** * zmienna przechowujaca instancje xajax * * @var xajax */ /** * zmienna przechowujaca instancje xajaxResponse * * @var xajaxResponse */ /** * ustawia adres do ktorego ma sie odwolac ajax * * @param string $uri */ self::$_config['requestURI']=wrx::config()->dir->base.$uri; } /** * zwraca xajax * * @return xajax */ self::$_config['xajaxDir']=wrx::config()->dir->base.self::$_config['xajaxDir']; self::$_ajax=new xajax( self::$_config['requestURI'], self::$_config['prefix'], self::$_config['encoding'], wrx::debug() ); } return self::$_ajax; } /** * zwraca xajaxResponse * * @return xajaxResponse */ self::$_config['xajaxDir']=WRX_BASEURL.self::$_config['xajaxDir']; self::$_ajaxResponse=new xajaxResponse( self::$_config['encoding'], false ); } return self::$_ajaxResponse; } /** * wiaze javascript wygenerowany przez xajax z szablonem na stronie * */ wrx_Template::instance()->assign('wrx_Ajax',self::$_ajax->getJavascript(self::$_config['xajaxDir'])); } /** * resetuje instancje xajax i xajaxResponse * */ self::$_ajax=null; self::$_ajaxResponse=null; self::setRequestURI('/libs/xajax'); } /** * ustawia grupy funkcji uformowanych w klasy jednoczesnie inicjalizujac * klase systemowa wrx_Ajax_Default, grupy funkcji to klasy dziedziczace * po wrx_Ajax_Library ktore leza w przestrzeni nazw aplikacji. * opcjonalnie mozna zarejestrowac grupe ktora nie nalezy do przestrzeni nazw ap
likacji * * @param string $groupName * @param bool $useNamespace */ self::setRequestURI('/wrxajax/'.$groupName); if ($useNamespace) { $groupName=wrx::config()->appnamespace.'_Ajax_'.$groupName; } $obj=new $groupName; $objWrx=new wrx_Ajax_Default(); self::postSetup(); } } ?>
<?php class wrx_Ajax_Library { /** * A prefix for all ajax functions to aid automatic xajax registration */ protected $_ajaxFuncPrefix = 'wrxajax'; /** * Do things */ public function __construct () { $this->registerFunctions(); } /** * Register all needed functions with xajax. * * All ajax function names must begin with self::$ajaxFuncPrefix, followed by * an uppercase letter. They will be exported with that name, minus the prefix, * and with the first letter in lowercase. So axFoo() would end up as the * Javascript function xajax_foo() */ protected function registerFunctions() { $methods = get_class_methods($this); foreach ($methods as $m) { $p = $this->_ajaxFuncPrefix; } } } } ?>
<?php class Ajax_ProcessController extends Zend_Controller_Action { public function preDispatch(){ //code executed before action } public function indexAction(){ } public function runAction(){ $obj=$this->_getParam('ajax_action'); wrx_Ajax::setupGroup($obj); wrx_Ajax::get()->processRequests(); } } public function __call($func,$args){ $this->_redirect('/'); } public function postDispatch(){ //code executed after action } } ?>