.. You may want to use the usual include line. Uncomment and adjust the path. .. include:: ../Includes.txt ======================== EXT: TYPO3 adapted xaJax ======================== :Created: 2010-02-18T17:33:18 :Changed by: Holzinger Franz :Changed: 2014-02-05T09:05:41 :Classification: taxajax :Keywords: forDevelopers;forIntermediates :Author: Franz Holzinger :Email: franz@ttproducts.de :Info 4: :Language: en |img-1| |img-2| EXT: TYPO3 adapted xaJax - taxajax .. _EXT-TYPO3-adapted-xaJax: EXT: TYPO3 adapted xaJax ======================== Extension Key: taxajax Language: en Keywords: forDevelopers;forIntermediates Copyright 2011-2014, Franz Holzinger, This document is published under the Open Content License available from http://www.opencontent.org/opl.shtml The content of this document is related to TYPO3 \- a GNU/GPL CMS/Framework available from www.typo3.org .. _Table-of-Contents: Table of Contents ----------------- `EXT: TYPO3 adapted xaJax 1 <#1.EXT:%20TYPO3%20adapted%20xaJax|outline>`_ **`Introduction 3 <#2.1.Introduction|outline>`_** `What is xajax? 3 <#2.1.1.What%20is%20xajax_|outline>`_ `How does xajax work? 3 <#2.1.2.How%20does%20xajax%20work_|outline>`_ `Why should I use xajax instead of another Ajax library for PHP? 3 <#2 .1.3.Why%20should%20I%20use%20xajax%20instead%20of%20another%20Ajax%20 library%20for%20PHP_|outline>`_ `Where do I find the documentation and get help? 4 <#2.1.4.Where%20do% 20I%20find%20the%20documentation%20and%20get%20help_|outline>`_ **`ChangeLog 5 <#2.2.ChangeLog|outline>`_** .. _Introduction: Introduction ------------ .. _What-is-xajax: What is xajax? ^^^^^^^^^^^^^^ xajax is an open source `PHP `_ class library that allows you to easily create powerful, web-based, `Ajax `_ applications using HTML, CSS, JavaScript, and PHP. Applications developed with xajax can asynchronously call server-side PHP functions and update content without reloading the page. `http://www.xajax-project.org/ `_ Within the extension taxaJax the original xajax library has been licensed from LGPL to GPL to match the license requirements of TYPO3. All namings have been adapted to the coding guidelines of TYPO3. taxajax is the same as the xajax extension, but with TYPO3 specific changes to the code .. _How-does-xajax-work: How does xajax work? ^^^^^^^^^^^^^^^^^^^^ The xajax PHP object generates JavaScript wrapper functions for the PHP functions you want to be able to call asynchronously from your application. When called, these wrapper functions use JavaScript's XMLHttpRequest object to asynchronously communicate with the xajax object on the server which calls the corresponding PHP functions. Upon completion, an xajax XML response is returned from the PHP functions, which xajax passes back to the application. The XML response contains instructions and data that are parsed by xajax's JavaScript message pump and used to update the content of your application. .. _Why-should-I-use-xajax-instead-of-another-Ajax-library-for-PHP: Why should I use xajax instead of another Ajax library for PHP? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ You should choose whatever library will best meet the needs of your project. xajax offers the following features that, together, make it unique and powerful: - xajax's **unique XML response / javascript message-pump system** does the work for you, automatically handling the data returned from your functions and updating your content or state according to the instructions you return from your PHP functions. Because xajax does the work, you don't have to write javascript callback handler functions. - xajax is **object oriented** to maintain tighter relationships between the code and data, and to keep the xajax code separate from other code. Because it is object oriented, you can **add your own custom functionality** to xajax by extending the xajaxResponse class and using the addScript() method. - xajax works in **Firefox** , Mozilla, probably other Mozilla based browsers, **Internet Explorer** , and **Safari** . - In addition to updating element values and innerHTML, xajax can be used to update styles, css classes, checkbox and radio button selection, or nearly **any other element attribute.** - xajax supports **passing single and multidimensional arrays and associative arrays** from javascript to PHP as parameters to your xajax functions. Additionally, if you pass a javascript object into an xajax function, the PHP function will receive an associative array representing the **properties of the object.** - xajax provides **easy asynchronous Form processing** . By using the xajax.getFormValues() javascript method, you can easily submit an array representing the values in a form as a parameter to a xajax asynchronous function: :: xajax_processForm(xajax.getFormValues('formId'); . It even works with **complex input names** like "checkbox[][]" and "name[first]" to produce multidimensional and associative arrays, just as if you had submitted the form and used the PHP $\_GET array - Using xajax you can **dynamically send additional javascript** to your application to be run in response to a request as well as dynamically update element attributes. - xajax automatically compares the data returned from the PHP functions to the data that is already in the attribute of the element you have marked for change. The attribute is **only updated with the new data if it will actually change what is already in the attribute** . This **eliminates the flicker** often observed in applications that update content at a regular time interval with data which may or may not differ from extant content. - Each function registered to be accessible through xajax can have a **different request type** . All functions **default to use POST** unless GET is explicitly set. This is to encourage careful consideration of when to use GET requests - If no request URI is specified, xajax tries to **autodetect the URL** of the script. The xajax autodetection algorithm is sophisticated enough that, on most servers, it will work under a **secure https:// protocol** as well as http:// and with **nonstandard ports.** - xajax can encode all of its requests and responses also in **UTF-8** so that it can support a wider range of characters and languages. xajax has been successfully tested with various unicode characters including **Spanish, Russian, Arabic, and Hebrew** - Nearly all of the javascript generated by xajax is included into your web application through **dynamic external javascript** . When you view the source of your application in your browser, the markup will be **not cluttered by JavaScript function definitions** . - xajax can be used with the **`Smarty `_ templating system** by creating a variable in smarty that contains the xajax javascript: :: $smarty->assign('xajax_javascript', $xajax->getJavascript()); Then you can use :: {$xajax_javascript} in your header template to use xajax on your site. .. _Where-do-I-find-the-documentation-and-get-help: Where do I find the documentation and get help? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _The-xaJax-Tutor-extension: The xaJax Tutor extension """"""""""""""""""""""""" To demonstrate how xaJax can be used within the FE and the BE we have prepared an own Extension xaJax-Tutor with the extension key xajax\_tutor. .. _The-original-website-of-xajax: The original website of xajax """"""""""""""""""""""""""""" On `http://www.xajax-project.org/ `_ you find: - examples - a wiki - a big forum, where you usually get personal help quickly .. _drweb-de: drweb.de """""""" `http://www.drweb.de/magazin/xajax-ajax-einfach-mit-php/ `_ .. _ChangeLog: ChangeLog --------- See the changelog file within the extension. |img-2| 5 .. ######CUTTER_MARK_IMAGES###### .. |img-1| image:: img-1.png .. :align: left .. |img-2| image:: img-2.png .. :border: 0 .. :height: 21 .. :hspace: 9 .. :id: Grafik2 .. :name: Grafik2 .. :width: 87