--- class.t3lib_tsparser.php Thu Aug 16 12:21:20 2007 UTC +++ class.t3lib_tsparser.php Thu Aug 16 12:21:59 2007 UTC @@ -89,6 +89,7 @@ var $multiLineEnabled=0; // Internally set, when multiline value is accumulated var $multiLineObject=''; // Internally set, when multiline value is accumulated var $multiLineValue=array(); // Internally set, when multiline value is accumulated + var $multiLineHeredoc=FALSE; // Internally set, when multiline value is accumulated var $inBrace = 0; // Internally set, when in brace. Counter. var $lastConditionTrue = 1; // For each condition this flag is set, if the condition is true, else it's cleared. Then it's used by the [ELSE] condition to determine if the next part should be parsed. var $sections=array(); // Tracking all conditions found @@ -203,9 +204,10 @@ if (!$this->commentSet && ($line || $this->multiLineEnabled)) { // If $this->multiLineEnabled we will go and get the line values here because we know, the first if() will be true. if ($this->multiLineEnabled) { // If multiline is enabled. Escape by ')' - if (substr($line,0,1)==')') { // Multiline ends... + if (($this->multiLineHeredoc === FALSE && substr($line,0,1)==')') || ($this->multiLineHeredoc !== FALSE && substr($line,0,strlen($this->multiLineHeredoc . ";")) === ($this->multiLineHeredoc . ";"))) { // Multiline ends... if ($this->syntaxHighLight) $this->regHighLight("operator",$lineP,strlen($line)-1); $this->multiLineEnabled=0; // Disable multiline + $this->multiLineHeredoc = FALSE; $theValue = implode($this->multiLineValue,chr(10)); if (strstr($this->multiLineObject,'.')) { $this->setVal($this->multiLineObject,$setup,array($theValue)); // Set the value deeper. @@ -331,6 +333,12 @@ $this->multiLineValue=array(); break; case '<': + if(substr($line, 0, 3) === "<<<") { + $this->multiLineObject = $objStrName; + $this->multiLineEnabled=1; + $this->multiLineValue=array(); + $this->multiLineHeredoc = trim(substr($line, 3)); + } else { if ($this->syntaxHighLight) $this->regHighLight("value_copy", $lineP, strlen(ltrim(substr($line,1)))-strlen(trim(substr($line,1)))); $theVal = trim(substr($line,1)); if (substr($theVal,0,1)=='.') { @@ -339,6 +347,7 @@ $res = $this->getVal($theVal,$this->setup); } $this->setVal($objStrName,$setup,unserialize(serialize($res)),1); // unserialize(serialize(...)) may look stupid but is needed because of some reference issues. See Kaspers reply to "[TYPO3-core] good question" from December 15 2005. + } break; case '>': if ($this->syntaxHighLight) $this->regHighLight("value_unset", $lineP, strlen(ltrim(substr($line,1)))-strlen(trim(substr($line,1))));