Main Page | Directories | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages | Examples

class.t3lib_tsparser.php File Reference

Go to the source code of this file.

Namespaces

namespace  TYPO3

Classes

class  t3lib_TSparser

Functions

 nextDivider ()
 Will search for the next condition.
 parseSub (&$setup)
 Parsing the $this->raw TypoScript lines from pointer, $this->rawP.
 rollParseSub ($string, &$setup)
 Parsing of TypoScript keys inside a curly brace where the key is composite of at least two keys, thus having to recursively call itself to get the value.
 getVal ($string, $setup)
 Get a value/property pair for an object path in TypoScript, eg.
 setVal ($string, &$setup, $value, $wipeOut=0)
 Setting a value/property of an object string in the setup array.
 error ($err, $num=2)
 Stacks errors/messages from the TypoScript parser into an internal array, $this->error If "TT" is a global object (as it is in the frontend when backend users are logged in) the message will be registered here as well.
 checkIncludeLines ($string)
 Checks the input string (un-parsed TypoScript) for include-commands ("<INCLUDE_TYPOSCRIPT: ....") Use: t3lib_TSparser::checkIncludeLines().
 checkIncludeLines_array ($array)
 Parses the string in each value of the input array for include-commands.
 doSyntaxHighlight ($string, $lineNum='', $highlightBlockMode=0)
 Syntax highlight a TypoScript text Will parse the content.
 regHighLight ($code, $pointer, $strlen=-1)
 Registers a part of a TypoScript line for syntax highlighting.
 syntaxHighlight_print ($lineNumDat, $highlightBlockMode)
 Formatting the TypoScript code in $this->raw based on the data collected by $this->regHighLight in $this->highLightData.

Variables

$this lineNumberOffset = count($this->raw)+1


Function Documentation

checkIncludeLines string  ) 
 

Checks the input string (un-parsed TypoScript) for include-commands ("<INCLUDE_TYPOSCRIPT: ....") Use: t3lib_TSparser::checkIncludeLines().

Parameters:
string Unparsed TypoScript
Returns:
string Complete TypoScript with includes added.

Definition at line 445 of file class.t3lib_tsparser.php.

Referenced by checkIncludeLines_array().

00445                                        {
00446       $splitStr='<INCLUDE_TYPOSCRIPT:';
00447       if (strstr($string,$splitStr))   {
00448          $newString='';
00449          $allParts = explode($splitStr,chr(10).$string.chr(10));  // adds line break char before/after
00450          reset($allParts);
00451          while(list($c,$v)=each($allParts))  {
00452             if (!$c) {   // first goes through
00453                $newString.=$v;
00454             } elseif (ereg("\r?\n[ ]*$",$allParts[$c-1]))   {  // There must be a line-break char before.
00455                $subparts=explode('>',$v,2);
00456                if (ereg("^[ ]*\r?\n",$subparts[1]))   {  // There must be a line-break char after
00457                      // SO, the include was positively recognized:
00458                   $newString.='### '.$splitStr.$subparts[0].'> BEGIN:'.chr(10);
00459                   $params = t3lib_div::get_tag_attributes($subparts[0]);
00460                   if ($params['source'])  {
00461                      $sourceParts = explode(':',$params['source'],2);
00462                      switch(strtolower(trim($sourceParts[0]))) {
00463                         case 'file':
00464                            $filename = t3lib_div::getFileAbsFileName(trim($sourceParts[1]));
00465                            if (strcmp($filename,''))  {  // Must exist and must not contain '..' and must be relative
00466                               if (@is_file($filename) && filesize($filename)<100000)   {  // Max. 100 KB include files!
00467                                  $newString.=t3lib_div::getUrl($filename).chr(10);
00468                               }
00469                            }
00470                         break;
00471                      }
00472                   }
00473                   $newString.='### '.$splitStr.$subparts[0].'> END:'.chr(10);
00474                   $newString.=$subparts[1];
00475                } else $newString.=$splitStr.$v;
00476             } else $newString.=$splitStr.$v;
00477          }
00478          $string=substr($newString,1,-1); // not the first/last linebreak char.
00479       }
00480       return $string;
00481    }

checkIncludeLines_array array  ) 
 

Parses the string in each value of the input array for include-commands.

Parameters:
array Array with TypoScript in each value
Returns:
array Same array but where the values has been parsed for include-commands

Definition at line 489 of file class.t3lib_tsparser.php.

References checkIncludeLines().

Referenced by t3lib_userAuthGroup::fetchGroupData(), t3lib_BEfunc::getPagesTSconfig(), and tslib_feUserAuth::getUserTSconf().

00489                                              {
00490       reset($array);
00491       while(list($k)=each($array))  {
00492          $array[$k]=t3lib_TSparser::checkIncludeLines($array[$k]);
00493       }
00494       return $array;
00495    }

doSyntaxHighlight string,
lineNum = '',
highlightBlockMode = 0
 

Syntax highlight a TypoScript text Will parse the content.

Remember, the internal setup array may contain INvalid parsed content since conditions are ignored!

Parameters:
string The TypoScript text
mixed If blank, linenumbers are NOT printed. If array then the first key is the linenumber offset to add to the internal counter.
boolean If set, then the highlighted output will be formatted in blocks based on the brace levels. prespace will be ignored and empty lines represented with a single no-break-space.
Returns:
string HTML code for the syntax highlighted string

Definition at line 532 of file class.t3lib_tsparser.php.

References error(), and syntaxHighlight_print().

00532                                                                            {
00533       $this->syntaxHighLight=1;
00534       $this->highLightData=array();
00535       $this->error=array();
00536       $string = str_replace(chr(13),'',$string);      // This is done in order to prevent empty <span>..</span> sections around chr(13) content. Should not do anything but help lessen the amount of HTML code.
00537 
00538       $this->parse($string);
00539 
00540       return $this->syntaxHighlight_print($lineNum,$highlightBlockMode);
00541    }

error err,
num = 2
 

Stacks errors/messages from the TypoScript parser into an internal array, $this->error If "TT" is a global object (as it is in the frontend when backend users are logged in) the message will be registered here as well.

Parameters:
string The error message string
integer The error severity (in the scale of $GLOBALS['TT']->setTSlogMessage: Approx: 2=warning, 1=info, 0=nothing, 3=fatal.)
Returns:
void

Definition at line 433 of file class.t3lib_tsparser.php.

Referenced by t3lib_beUserAuth::backendCheckLogin(), t3lib_extMgm::cannotCacheFilesWritable(), tx_install::checkImageMagick(), tslib_fe::checkJumpUrl(), checkLogFailures(), SC_index::checkRedirect(), tslib_cObj::CONTENT(), t3lib_DB::debug(), doSyntaxHighlight(), SC_mod_tools_em_index::extensionListRow(), SC_mod_tools_em_index::extInformationArray(), SC_mod_tools_em_index::getClassIndexLocallangFiles(), t3lib_svbase::getErrorMsgArray(), t3lib_TCEmain::log(), numRows(), t3lib_TSparser::parse(), t3lib_TCEmain::printLogErrorMessages(), t3lib_extFileFunctions::printLogErrorMessages(), t3lib_fullsearch::queryMaker(), t3lib_svbase::resetErrors(), setVal(), SC_mod_tools_em_index::showExtDetails(), syntaxHighlight_print(), t3lib_admin::testFileRefs(), tx_install::tx_install(), tx_sv_authbase::writelog(), writelog(), and t3lib_extFileFunctions::writeLog().

00433                                  {
00434       if (is_object($GLOBALS['TT']))   $GLOBALS['TT']->setTSlogMessage($err,$num);
00435       $this->errors[]=array($err,$num,$this->rawP-1,$this->lineNumberOffset);
00436    }

getVal string,
setup
 

Get a value/property pair for an object path in TypoScript, eg.

"myobject.myvalue.mysubproperty". Here: Used by the "copy" operator, <

Parameters:
string Object path for which to get the value
array Global setup code if $string points to a global object path. But if string is prefixed with "." then its the local setup array.
Returns:
array An array with keys 0/1 being value/property respectively

Definition at line 361 of file class.t3lib_tsparser.php.

References $key.

00361                                     {
00362       if ((string)$string!='')   {
00363          $keyLen = strcspn($string,'.');
00364          if ($keyLen==strlen($string)) {
00365             $retArr=array();  // Added 6/6/03. Shouldn't hurt
00366             if (isset($setup[$string]))   {$retArr[0]=$setup[$string];  }
00367             if (isset($setup[$string.'.']))  {$retArr[1]=$setup[$string.'.']; }
00368             return $retArr;
00369          } else {
00370             $key = substr($string,0,$keyLen).'.';
00371             if ($setup[$key]) {
00372                return $this->getVal(substr($string,$keyLen+1),$setup[$key]);
00373             }
00374          }
00375       }
00376    }

nextDivider  ) 
 

Will search for the next condition.

When found it will return the line content (the condition value) and have advanced the internal $this->rawP pointer to point to the next line after the condition.

Returns:
string The condition value
See also:
parse()

Definition at line 169 of file class.t3lib_tsparser.php.

00169                            {
00170       while (isset($this->raw[$this->rawP])) {
00171          $line = ltrim($this->raw[$this->rawP]);
00172          $this->rawP++;
00173          if ($line && substr($line,0,1)=='[')   {
00174             return $line;
00175          }
00176       }
00177    }

parseSub &$  setup  ) 
 

Parsing the $this->raw TypoScript lines from pointer, $this->rawP.

Parameters:
array Reference to the setup array in which to accumulate the values.
Returns:
string Returns the string of the condition found, the exit signal or possible nothing (if it completed parsing with no interruptions)

Definition at line 185 of file class.t3lib_tsparser.php.

References lineNumberOffset, and regHighLight().

Referenced by rollParseSub().

00185                               {
00186       while (isset($this->raw[$this->rawP])) {
00187          $line = ltrim($this->raw[$this->rawP]);
00188          $lineP = $this->rawP;
00189          $this->rawP++;
00190          if ($this->syntaxHighLight)   $this->regHighLight("prespace",$lineP,strlen($line));
00191 
00192             // Breakpoint?
00193          if ($this->breakPointLN && ($this->lineNumberOffset+$this->rawP-1)==($this->breakPointLN+1)) {  // by adding 1 we get that line processed
00194             return '[_BREAK]';
00195          }
00196 
00197             // Set comment flag?
00198          if (!$this->multiLineEnabled && substr($line,0,2)=='/*') {
00199             $this->commentSet=1;
00200          }
00201 
00202          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.
00203             if ($this->multiLineEnabled) {   // If multiline is enabled. Escape by ')'
00204                if (substr($line,0,1)==')')   {  // Multiline ends...
00205                   if ($this->syntaxHighLight)   $this->regHighLight("operator",$lineP,strlen($line)-1);
00206                   $this->multiLineEnabled=0; // Disable multiline
00207                   $theValue = implode($this->multiLineValue,chr(10));
00208                   if (strstr($this->multiLineObject,'.'))   {
00209                      $this->setVal($this->multiLineObject,$setup,array($theValue)); // Set the value deeper.
00210                   } else {
00211                      $setup[$this->multiLineObject] = $theValue;  // Set value regularly
00212                      if ($this->lastComment && $this->regComments)   {
00213                         $setup[$this->multiLineObject.'..'].=$this->lastComment;
00214                      }
00215                      if ($this->regLinenumbers) {
00216                         $setup[$this->multiLineObject.'.ln..'][]=($this->lineNumberOffset+$this->rawP-1);
00217                      }
00218                   }
00219                } else{
00220                   if ($this->syntaxHighLight)   $this->regHighLight("value",$lineP);
00221                   $this->multiLineValue[]=$this->raw[($this->rawP-1)];
00222                }
00223             } elseif ($this->inBrace==0 && substr($line,0,1)=='[')   {  // Beginning of condition (only on level zero compared to brace-levels
00224                if ($this->syntaxHighLight)   $this->regHighLight("condition",$lineP);
00225                return $line;
00226             } else {
00227                if (substr($line,0,1)=='[' && strtoupper(trim($line))=='[GLOBAL]')   {     // Return if GLOBAL condition is set - no matter what.
00228                   if ($this->syntaxHighLight)   $this->regHighLight("condition",$lineP);
00229                   $this->error('Line '.($this->lineNumberOffset+$this->rawP-1).': On return to [GLOBAL] scope, the script was short of '.$this->inBrace.' end brace(s)',1);
00230                   $this->inBrace=0;
00231                   return $line;
00232                } elseif (strcspn($line,'}#/')!=0)  {  // If not brace-end or comment
00233                   $varL = strcspn($line,' {=<>(');    // Find object name string until we meet an operator  VER2: Added '>'!!
00234                   $objStrName=trim(substr($line,0,$varL));
00235                   if ($this->syntaxHighLight)   $this->regHighLight("objstr",$lineP,strlen(substr($line,$varL)));
00236                   if ($objStrName)  {
00237                      if ($this->strict && eregi('[^[:alnum:]_\.-]',$objStrName,$r)) {
00238                         $this->error('Line '.($this->lineNumberOffset+$this->rawP-1).': Object Name String, "'.htmlspecialchars($objStrName).'" contains invalid character "'.$r[0].'". Must be alphanumeric or one of: "_-."');
00239                      } else {
00240                         $line = ltrim(substr($line,$varL));
00241                         if ($this->syntaxHighLight)   {
00242                            $this->regHighLight("objstr_postspace", $lineP, strlen($line));
00243                            if (strlen($line)>0) {
00244                               $this->regHighLight("operator", $lineP, strlen($line)-1);
00245                               $this->regHighLight("operator_postspace", $lineP, strlen(ltrim(substr($line,1))));
00246                            }
00247                         }
00248                         switch(substr($line,0,1))  {
00249                            case '=':
00250                               if ($this->syntaxHighLight)   $this->regHighLight("value", $lineP, strlen(ltrim(substr($line,1)))-strlen(trim(substr($line,1))));
00251                               if (strstr($objStrName,'.'))  {
00252                                  $value = Array();
00253                                  $value[0] = trim(substr($line,1));
00254                                  $this->setVal($objStrName,$setup,$value);
00255                               } else {
00256                                  $setup[$objStrName] = trim(substr($line,1));
00257                                  if ($this->lastComment && $this->regComments)   {  // Setting comment..
00258                                     $setup[$objStrName.'..'].=$this->lastComment;
00259                                  }
00260                                  if ($this->regLinenumbers) {
00261                                     $setup[$objStrName.'.ln..'][]=($this->lineNumberOffset+$this->rawP-1);
00262                                  }
00263                               }
00264                            break;
00265                            case '{':
00266                               $this->inBrace++;
00267                               if (strstr($objStrName,'.'))  {
00268                                  $exitSig=$this->rollParseSub($objStrName,$setup);
00269                                  if ($exitSig)  return $exitSig;
00270                               } else {
00271                                  if (!isset($setup[$objStrName.'.'])) {$setup[$objStrName.'.'] = Array();}
00272                                  $exitSig=$this->parseSub($setup[$objStrName.'.']);
00273                                  if ($exitSig)  return $exitSig;
00274                               }
00275                            break;
00276                            case '(':
00277                               $this->multiLineObject = $objStrName;
00278                               $this->multiLineEnabled=1;
00279                               $this->multiLineValue=array();
00280                            break;
00281                            case '<':
00282                               if ($this->syntaxHighLight)   $this->regHighLight("value_copy", $lineP, strlen(ltrim(substr($line,1)))-strlen(trim(substr($line,1))));
00283                               $theVal = trim(substr($line,1));
00284                               if (substr($theVal,0,1)=='.') {
00285                                  $res = $this->getVal(substr($theVal,1),$setup);
00286                               } else {
00287                                  $res = $this->getVal($theVal,$this->setup);
00288                               }
00289                               $this->setVal($objStrName,$setup,unserialize(serialize($res)),1);
00290                            break;
00291                            case '>':
00292                               if ($this->syntaxHighLight)   $this->regHighLight("value_unset", $lineP, strlen(ltrim(substr($line,1)))-strlen(trim(substr($line,1))));
00293                               $this->setVal($objStrName,$setup,'UNSET');
00294                            break;
00295                            default:
00296                               $this->error('Line '.($this->lineNumberOffset+$this->rawP-1).': Object Name String, "'.htmlspecialchars($objStrName).'" was not preceeded by any operator, =<>({');
00297                            break;
00298                         }
00299                      }
00300                      $this->lastComment='';
00301                   }
00302                } elseif (substr($line,0,1)=='}')   {
00303                   $this->inBrace--;
00304                   $this->lastComment='';
00305                   if ($this->syntaxHighLight)   $this->regHighLight("operator", $lineP, strlen($line)-1);
00306                   if ($this->inBrace<0)   {
00307                      $this->error('Line '.($this->lineNumberOffset+$this->rawP-1).': An end brace is in excess.',1);
00308                      $this->inBrace=0;
00309                   } else {
00310                      break;
00311                   }
00312                } else {
00313                   if ($this->syntaxHighLight)   $this->regHighLight("comment",   $lineP);
00314 
00315                      // Comment. The comments are concatenated in this temporary string:
00316                   if ($this->regComments) $this->lastComment.= trim($line).chr(10);
00317                }
00318             }
00319          }
00320 
00321             // Unset comment
00322          if ($this->commentSet)  {
00323             if ($this->syntaxHighLight)   $this->regHighLight("comment",   $lineP);
00324             if (substr($line,0,2)=='*/')  $this->commentSet=0;
00325          }
00326       }

regHighLight code,
pointer,
strlen = -1
 

Registers a part of a TypoScript line for syntax highlighting.

Parameters:
string Key from the internal array $this->highLightStyles
integer Pointer to the line in $this->raw which this is about
integer The number of chars LEFT on this line before the end is reached.
Returns:
void private
See also:
parse()

Definition at line 553 of file class.t3lib_tsparser.php.

Referenced by parseSub().

00553                                                       {
00554       if ($strlen==-1)  {
00555          $this->highLightData[$pointer] = array(array($code,0));
00556       } else {
00557          $this->highLightData[$pointer][] = array($code,$strlen);
00558       }
00559       $this->highLightData_bracelevel[$pointer] = $this->inBrace;
00560    }

rollParseSub string,
&$  setup
 

Parsing of TypoScript keys inside a curly brace where the key is composite of at least two keys, thus having to recursively call itself to get the value.

Parameters:
string The object sub-path, eg "thisprop.another_prot"
array The local setup array from the function calling this function
Returns:
string Returns the exitSignal
See also:
parseSub()

Definition at line 337 of file class.t3lib_tsparser.php.

References $key, and parseSub().

00337                                           {
00338       if ((string)$string!='')   {
00339          $keyLen = strcspn($string,'.');
00340          if ($keyLen==strlen($string)) {
00341             $key = $string.'.';
00342             if (!isset($setup[$key])){$setup[$key]=Array();}
00343             $exitSig=$this->parseSub($setup[$key]);
00344             if ($exitSig)  return $exitSig;
00345          } else {
00346             $key = substr($string,0,$keyLen).'.';
00347             if (!isset($setup[$key])){$setup[$key]=Array();}
00348             $exitSig=$this->rollParseSub(substr($string,$keyLen+1),$setup[$key]);
00349             if ($exitSig)  return $exitSig;
00350          }
00351       }
00352    }

setVal string,
&$  setup,
value,
wipeOut = 0
 

Setting a value/property of an object string in the setup array.

Parameters:
string The object sub-path, eg "thisprop.another_prot"
array The local setup array from the function calling this function.
array The value/property pair array to set. If only one of them is set, then the other is not touched (unless $wipeOut is set, which it is when copies are made which must include both value and property)
boolean If set, then both value and property is wiped out when a copy is made of another value.
Returns:
void

Definition at line 387 of file class.t3lib_tsparser.php.

References $key, error(), and lineNumberOffset.

00387                                                       {
00388       if ((string)$string!='')   {
00389          $keyLen = strcspn($string,'.');
00390          if ($keyLen==strlen($string)) {
00391             if ($value=='UNSET') {
00392                unset($setup[$string]);
00393                unset($setup[$string.'.']);
00394                if ($this->regLinenumbers) {
00395                   $setup[$string.'.ln..'][]=($this->lineNumberOffset+$this->rawP-1).'>';
00396                }
00397             } else {
00398                $lnRegisDone=0;
00399                if ($wipeOut && $this->strict)   {
00400                   if ((isset($setup[$string]) && !isset($value[0])) || (isset($setup[$string.'.']) && !isset($value[1]))) {$this->error('Line '.($this->lineNumberOffset+$this->rawP-1).': Object copied in this line "'.trim($this->raw[($this->rawP-1)]).'" would leave either the value or properties untouched in TypoScript Version 1. Please check that this is not a problem for you.',1);}
00401                   unset($setup[$string]);
00402                   unset($setup[$string.'.']);
00403                   if ($this->regLinenumbers) {
00404                      $setup[$string.'.ln..'][]=($this->lineNumberOffset+$this->rawP-1).'<';
00405                      $lnRegisDone=1;
00406                   }
00407                }
00408                if (isset($value[0])) {$setup[$string] = $value[0];}
00409                if (isset($value[1])) {$setup[$string.'.'] = $value[1];}
00410                if ($this->lastComment && $this->regComments)   {
00411                   $setup[$string.'..'].=$this->lastComment;
00412                }
00413                if ($this->regLinenumbers && !$lnRegisDone)  {
00414                   $setup[$string.'.ln..'][]=($this->lineNumberOffset+$this->rawP-1);
00415                }
00416             }
00417          } else {
00418             $key = substr($string,0,$keyLen).'.';
00419             if (!isset($setup[$key])){$setup[$key]=Array();}
00420             $this->setVal(substr($string,$keyLen+1),$setup[$key],$value);
00421          }
00422       }
00423    }

syntaxHighlight_print lineNumDat,
highlightBlockMode
 

Formatting the TypoScript code in $this->raw based on the data collected by $this->regHighLight in $this->highLightData.

Parameters:
mixed If blank, linenumbers are NOT printed. If array then the first key is the linenumber offset to add to the internal counter.
boolean If set, then the highlighted output will be formatted in blocks based on the brace levels. prespace will be ignored and empty lines represented with a single no-break-space.
Returns:
string HTML content private
See also:
doSyntaxHighlight()

Definition at line 571 of file class.t3lib_tsparser.php.

References debug(), and error().

Referenced by doSyntaxHighlight().

00571                                                                      {
00572          // Registers all error messages in relation to their linenumber
00573       $errA=array();
00574       foreach($this->errors as $err)   {
00575          $errA[$err[2]][]=$err[0];
00576       }
00577          // Generates the syntax highlighted output:
00578       $lines=array();
00579       foreach($this->raw as $rawP => $value) {
00580          $start=0;
00581          $strlen=strlen($value);
00582          $lineC='';
00583 
00584          if (is_array($this->highLightData[$rawP]))   {
00585             foreach($this->highLightData[$rawP] as $set) {
00586                $len = $strlen-$start-$set[1];
00587                if ($len > 0)  {
00588                   $part = substr($value,$start,$len);
00589                   $start+=$len;
00590                   $st = $this->highLightStyles[(isset($this->highLightStyles[$set[0]])?$set[0]:'default')];
00591                   if (!$highlightBlockMode || $set[0]!='prespace')         $lineC.=$st[0].htmlspecialchars($part).$st[1];
00592                }elseif ($len < 0) debug(array($len,$value,$rawP));
00593             }
00594          } else debug(array($value));
00595 
00596          if (strlen(substr($value,$start)))  $lineC.=$this->highLightStyles['ignored'][0].htmlspecialchars(substr($value,$start)).$this->highLightStyles['ignored'][1];
00597 
00598          if ($errA[$rawP]) {
00599             $lineC.=$this->highLightStyles['error'][0].'<strong> - ERROR:</strong> '.htmlspecialchars(implode(';',$errA[$rawP])).$this->highLightStyles['error'][1];
00600          }
00601 
00602          if ($highlightBlockMode && $this->highLightData_bracelevel[$rawP])   {
00603             $lineC = str_pad('',$this->highLightData_bracelevel[$rawP]*2,' ',STR_PAD_LEFT).'<span style="'.$this->highLightBlockStyles.($this->highLightBlockStyles_basecolor?'background-color: '.t3lib_div::modifyHTMLColorAll($this->highLightBlockStyles_basecolor,-$this->highLightData_bracelevel[$rawP]*16):'').'">'.(strcmp($lineC,'')?$lineC:'&nbsp;').'</span>';
00604          }
00605 
00606          if (is_array($lineNumDat)) {
00607             $lineNum = $rawP+$lineNumDat[0];
00608             $lineC = $this->highLightStyles['linenum'][0].str_pad($lineNum,4,' ',STR_PAD_LEFT).':'.$this->highLightStyles['linenum'][1].' '.$lineC;
00609          }
00610 
00611 
00612          $lines[] = $lineC;
00613       }
00614 
00615       return '<pre class="ts-hl">'.implode(chr(10),$lines).'</pre>';
00616    }


Variable Documentation

$this lineNumberOffset = count($this->raw)+1
 

Definition at line 160 of file class.t3lib_tsparser.php.

Referenced by parseSub(), and setVal().


Generated on Sun Oct 3 01:06:10 2004 for TYPO3core 3.7.0 dev by  doxygen 1.3.8-20040913