[TASK] Correct DBAL ux_* class mapping in migrations file
[Packages/TYPO3.CMS.git] / t3lib / class.t3lib_ajax.php
1 <?php
2 /***************************************************************
3 * Copyright notice
4 *
5 * (c) 2004-2011 Kasper Skårhøj (kasperYYYY@typo3.com)
6 * All rights reserved
7 *
8 * This script is part of the TYPO3 project. The TYPO3 project is
9 * free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * The GNU General Public License can be found at
15 * http://www.gnu.org/copyleft/gpl.html.
16 * A copy is found in the textfile GPL.txt and important notices to the license
17 * from the author is found in LICENSE.txt distributed with these scripts.
18 *
19 *
20 * This script is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * This copyright notice MUST APPEAR in all copies of the script!
26 ***************************************************************/
27 /**
28 * Contains the class "t3lib_ajax" containing functions for doing XMLHTTP requests
29 * to the TYPO3 backend and as well for generating replys. This technology is also known as ajax.
30 * Call ALL methods without making an object!
31 *
32 * IMPORTANT NOTICE: The API the class provides is still NOT STABLE and SUBJECT TO CHANGE!
33 * It is planned to integrate an external AJAX library, so the API will most likely change again.
34 *
35 * TYPO3 XMLHTTP class (new in TYPO3 4.0.0)
36 * This class contains two main parts:
37 * (1) generation of JavaScript code which creates an XMLHTTP object in a cross-browser manner
38 * (2) generation of XML data as a reply
39 *
40 * @author Sebastian Kurfürst <sebastian@garbage-group.de>
41 * @package TYPO3
42 * @subpackage t3lib
43 * @deprecated since 6.0, the class will be removed from core with 6.2
44 */
45 class t3lib_ajax {
46
47 /**
48 * Default constructor writes deprecation log.
49 */
50 public function __construct() {
51 \TYPO3\CMS\Core\Utility\GeneralUtility::deprecationLog('Class t3lib_ajax is deprecated and unused since TYPO3 6.0. ' . 'It will be removed with version 6.2.');
52 }
53
54 /**
55 * Gets the JavaScript code needed to handle an XMLHTTP request in the frontend.
56 * All JS functions have to call ajax_doRequest(url) to make a request to the server.
57 * USE:
58 * See examples of using this function in template.php -> getContextMenuCode and alt_clickmenu.php -> printContent
59 *
60 * @param string $handler Function JS function handling the XML data from the server. That function gets the returned XML data as parameter.
61 * @param string $fallback JS fallback function which is called with the URL of the request in case ajax is not available.
62 * @param boolean $debug If set to 1, the returned XML data is outputted as text in an alert window - useful for debugging, PHP errors are shown there, ...
63 * @return string JavaScript code needed to make and handle an XMLHTTP request
64 * @deprecated since 6.0, class will be removed with 6.2
65 */
66 public function getJScode($handlerFunction, $fallback = '', $debug = 0) {
67 \TYPO3\CMS\Core\Utility\GeneralUtility::logDeprecatedFunction();
68 // Init the XMLHTTP request object
69 $code = '
70 function ajax_initObject() {
71 var A;
72 try {
73 A=new ActiveXObject("Msxml2.XMLHTTP");
74 } catch (e) {
75 try {
76 A=new ActiveXObject("Microsoft.XMLHTTP");
77 } catch (oc) {
78 A=null;
79 }
80 }
81 if (!A && typeof XMLHttpRequest != "undefined") {
82 A = new XMLHttpRequest();
83 }
84 return A;
85 }';
86 // In case AJAX is not available, fallback function
87 if ($fallback) {
88 $fallback .= '(url)';
89 } else {
90 $fallback = 'return';
91 }
92 $code .= ((((('
93 function ajax_doRequest(url) {
94 var x;
95
96 x = ajax_initObject();
97 if (!x) {
98 ' . $fallback) . ';
99 }
100 x.open("GET", url, true);
101
102 x.onreadystatechange = function() {
103 if (x.readyState != 4) {
104 return;
105 }
106 ') . ($debug ? 'alert(x.responseText)' : '')) . '
107 var xmldoc = x.responseXML;
108 var t3ajax = xmldoc.getElementsByTagName("t3ajax")[0];
109 ') . $handlerFunction) . '(t3ajax);
110 }
111 x.send("");
112
113 delete x;
114 }';
115 return $code;
116 }
117
118 /**
119 * Function outputting XML data for TYPO3 ajax. The function directly outputs headers and content to the browser.
120 *
121 * @param string $innerXML XML data which will be sent to the browser
122 * @return void
123 * @deprecated since 6.0, class will be removed with 6.2
124 */
125 public function outputXMLreply($innerXML) {
126 \TYPO3\CMS\Core\Utility\GeneralUtility::logDeprecatedFunction();
127 // AJAX needs some XML data
128 header('Content-Type: text/xml');
129 $xml = ('<?xml version="1.0"?>
130 <t3ajax>' . $innerXML) . '</t3ajax>';
131 echo $xml;
132 }
133
134 }
135
136
137 ?>