Fixed Bug #9359: XML Problems with PHP5 and libxml
authorSteffen Kamper <info@sk-typo3.de>
Wed, 18 Mar 2009 21:33:38 +0000 (21:33 +0000)
committerSteffen Kamper <info@sk-typo3.de>
Wed, 18 Mar 2009 21:33:38 +0000 (21:33 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@5206 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
t3lib/class.t3lib_flexformtools.php
t3lib/config_default.php

index 086f16a..f144540 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2009-03-18  Steffen Kamper  <info@sk-typo3.de>
+
+       * Fixed Bug #9359: XML Problems with PHP5 and libxml
+
 2009-03-12  Stanislas Rolland  <typo3@sjbr.ca>
 
        * Added feature #10670: htmlArea RTE: enable alternate rendering of image click enlarge by FE plugins
index a9e633b..2149e9f 100644 (file)
@@ -455,7 +455,10 @@ class t3lib_flexformtools {
         * @return      string          XML content.
         */
        function flexArray2Xml($array, $addPrologue=FALSE)      {
-
+               if ($GLOBALS['TYPO3_CONF_VARS']['BE']['flexformForceCDATA']) {
+                       $this->flexArray2Xml_options['useCDATA'] = 1;
+               }
+               
                $options = $GLOBALS['TYPO3_CONF_VARS']['BE']['niceFlexFormXMLtags'] ? $this->flexArray2Xml_options : array();
                $spaceInd = ($GLOBALS['TYPO3_CONF_VARS']['BE']['compactFlexFormXML'] ? -1 : 4);
                $output = t3lib_div::array2xml($array,'',0,'T3FlexForms', $spaceInd, $options);
@@ -471,4 +474,4 @@ class t3lib_flexformtools {
 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_flexformtools.php'])    {
        include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_flexformtools.php']);
 }
-?>
\ No newline at end of file
+?>
index 3fa2ba6..9df5e70 100644 (file)
@@ -232,6 +232,7 @@ $TYPO3_CONF_VARS = Array(
                'niceFlexFormXMLtags' => TRUE,                  // If set, the flexform XML will be stored with meaningful tags which can be validated with DTD schema. If you rely on custom reading of the XML from pre-4.0 versions you should set this to false if you don't like to change your reader code (internally it is insignificant since t3lib_div::xml2array() doesn't care for the tags if the index-attribute value is set)
                'flexFormXMLincludeDiffBase' => TRUE,   // If set, an additional tag with index "vXX.vDEFbase" is created for translations in flexforms holding the value of the default language when translation was changed. Used to show diff of value. This setting will change whether the system thinks flexform XML looks clean. For example when FALSE XX.vDEFbase fields will be removed in cleaning while accepted if TRUE (of course)
                'compactFlexFormXML' => 0,                              // If set, the flexform XML will not contain indentation spaces making XML more compact
+               'flexformForceCDATA' => 0,                              // Boolean:  If set, will add CDATA to Flexform XML. Some versions of libxml have a bug that causes HTML entities to be stripped from any XML content and this setting will avoid the bug by adding CDATA.
                'explicitConfirmationOfTranslation' => FALSE,   // If set, then the diff-data of localized records is not saved automatically when updated but requires that a translator clicks the special finish_translation/save/close button that becomes available.
                'elementVersioningOnly' => FALSE,               // If true, only element versioning is allowed in the backend. This is recommended for new installations of TYPO3 4.2+ since "page" and "branch" versioning types are known for the drawbacks of loosing ids and "element" type versions supports moving now.
                'AJAX' => array(                                // array of key-value pairs for a unified use of AJAX calls in the TYPO3 backend. Keys are the unique ajaxIDs where the value will be resolved to call a method in an object. See ajax.php and the classes/class.typo3ajax.php for more information.
@@ -544,4 +545,4 @@ $SIM_EXEC_TIME = $EXEC_TIME;                        // $SIM_EXEC_TIME is set to $EXEC_TIME but can be
 $ACCESS_TIME = $EXEC_TIME - ($EXEC_TIME % 60);         // $ACCESS_TIME is a common time in minutes for access control
 $SIM_ACCESS_TIME = $ACCESS_TIME;               // if $SIM_EXEC_TIME is changed this value must be set accordingly
 
-?>
\ No newline at end of file
+?>