[dev] Ajax on Horde
Ralf Lang
lang at b1-systems.de
Fri Oct 13 08:16:10 UTC 2017
Am 11.10.2017 um 09:33 schrieb Sebastian Birnbach:
> Not much is known about Horde's way to do Ajax. The doc on
> https://wiki.horde.org/Doc/Dev/HordeAjaxApplications seems to be a bit
> wobbly and is at least partly outdated.
>
> I seek to understand the very basic exchange of information between a
> client side document and a server side class. Looking into Horde is often
> like looking into a live organism: too many things going on at the same
> time to understand an isolated feature.
>
> On my own I came about this far:
>
> * <app> registers an Ajax handler in <app>/lib/Ajax/Application.php:
> class IMP_Ajax_Application extends Horde_Core_Ajax_Application{
> $this->addHandler(Some_Path_To_Class);
> }
>
> * <app>/lib/Some/Path/To/Class.php defines the processing code:
> class IMP_Ajax_Application_Handler_Draft extends
> Horde_Core_Ajax_Application_Handler{
> public function foo() {return "hello world"}
> }
>
> * <app>/js/<app>.js defines a variable that contains a function that
> eventually calls doAction(action, params, opts)
> [this bit is unclear to me]
doAction is part of HordeCore js and basically wraps an ajax call to an
endpoint in /services/, which in turn instanciates
Horde_Core_Ajax_Application (or rather a class derived from it) and
calls the method in PHP. It then provides the result in js land to be
processed by a callback.
doAction also transparently handles tokens to secure the communication
against XSS.
I've done some steps to use a promise-based substitute of doAction, but
it's not ready for upstream yet. Due to personal topics, time is very
limited at the moment.
--
Ralf Lang
Linux Consultant / Developer
Tel.: +49-170-6381563
Mail: lang at b1-systems.de
B1 Systems GmbH
Osterfeldstraße 7 / 85088 Vohburg / http://www.b1-systems.de
GF: Ralph Dehner / Unternehmenssitz: Vohburg / AG: Ingolstadt,HRB 3537
More information about the dev
mailing list