a:1:{s:4:"rows";a:13:{i:0;a:6:{s:8:"property";s:15:"externalBlocks ";s:8:"datatype";s:28:"list of tagnames/+properties";s:11:"description";s:3527:"This allows you to pre-split the content passed to parseFunc so that only content outside the blocks with the given tags is parsed.<b><br>Extra properties:</b><br>&nbsp;<b>.[tagname]</b> {<br>&nbsp;&nbsp;&nbsp;<b>callRecursive</b> = [boolean]; If set, the content of the block is directed into parseFunc again. Otherwise the content is just passed through with no other processing than stdWrap (see below)<br>&nbsp;&nbsp;&nbsp;<b>callRecursive.dontWrapSelf </b>= [boolean]; If set, the tags of the block is <i>not</i> wrapped around the content returned from parseFunc.<br>&nbsp;&nbsp;&nbsp;<b>callRecursive.alternativeWrap</b> = Alternative wrapping instead of the original tags.<br>&nbsp;&nbsp;&nbsp;<b>callRecursive.tagStdWrap</b> = -&gt;stdWrap processing of the block-tags.<br>&nbsp;&nbsp;&nbsp;<b>stdWrap </b>= -&gt;stdWrap processing of the whole block (regardless of whether callRecursive was set.)<br>&nbsp;&nbsp;&nbsp;<b>stripNLprev </b>= [boolean]; Strips off last linebreak of the previous outside block<br>&nbsp;&nbsp;&nbsp;<b>stripNLnext </b>= [boolean]; Strips off first linebreak of the next outside block<br>&nbsp;&nbsp;&nbsp;<b>stripNL </b>= [boolean]: Does both of the above.<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;= [boolean]; If set, then the content is expected to be a table and every table-cell is traversed.<br>&nbsp;&nbsp;&nbsp;&nbsp;# Below, default is all cells and 1,2,3... overrides for specific cols.<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>callRecursive </b>= [boolean]; The content is parsed through current parseFunc<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>stdWrap </b>= -&gt;stdWrap processing of the content in the cell<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>tagStdWrap</b> = -&gt; The &lt;TD&gt; tag is processed by -&gt;stdWrap<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;<b>HTMLtableCells.addChr10BetweenParagraphs </b>= [boolean]; If set, then all &lt;/P&gt;&lt;P&gt; appearances will have a chr(10) inserted between them<br>}<br>&nbsp;<b><br>Example:</b><br>This example is used to split regular bodytext content so that tables and blockquotes in the bodytext are processed correctly. The blockquotes are passed into parseFunc again (recursively) and further their top/bottom margins are set to 0 (so no apparent linebreaks are seen)<br>The tables are also displayed with a number of properties of the cells overridden.<br>tt_content.text.20.parseFunc.externalBlocks {<br>&nbsp;&nbsp;&nbsp;blockquote.callRecursive=1<br>&nbsp;&nbsp;&nbsp;blockquote.callRecursive.tagStdWrap.HTMLparser = 1<br>&nbsp;&nbsp;&nbsp;blockquote.callRecursive.tagStdWrap.HTMLparser {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tags.blockquote.fixAttrib.style.list = margin-bottom:0;margin-top:0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tags.blockquote.fixAttrib.style.always=1<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;blockquote.stripNLprev=1<br>&nbsp;&nbsp;&nbsp;blockquote.stripNLnext=1<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;table.stripNL=1<br>&nbsp;&nbsp;&nbsp;table.stdWrap.HTMLparser = 1<br>&nbsp;&nbsp;&nbsp;table.stdWrap.HTMLparser {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tags.table.overrideAttribs = border=0 cellpadding=2 cellspacing=1 style=&quot;margin-top:10px; margin-bottom:10px;&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tags.tr.allowedAttribs=0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tags.td.overrideAttribs = valign=top bgcolor=&quot;#eeeeee&quot; style=&quot;font-family : Verdana, Geneva, Arial, Helvetica, sans-serif;font-size : 10px;&quot;<br>&nbsp;&nbsp;&nbsp;}<br>}";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:1;a:6:{s:8:"property";s:9:"constants";s:8:"datatype";s:7:"boolean";s:11:"description";s:346:"The toplevel-defined constants will be substituted in the text. The constant-name is wrapped in &quot;###&quot;.<br>&nbsp;<b><br>Example:</b><br>constants.EMAIL = <i>email@email.com</i><br>(NOTE: This is toplevel TypoScript!)<br>All cases of the string ###EMAIL### will be substituted in the text. The constants are defined as a toplevel object. ";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:2;a:6:{s:8:"property";s:5:"short";s:8:"datatype";s:23:"<i>array of strings</i>";s:11:"description";s:346:"Like constants above, but local.<br>&nbsp;<b><br>Example:</b><br>This substitutes all occurencies of &#x201c;T3&#x201d; with &#x201c;TYPO3 CMS&#x201d; and &#x201c;T3web&#x201d; with a link to typo3.com.<br>short {<br>&nbsp;&nbsp;&nbsp;T3 = TYPO3 CMS<br>&nbsp;&nbsp;&nbsp;T3web = &lt;a href=&#x201d;http://typo3.com&#x201d;&gt;typo3&lt;/a&gt;<br>}";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:3;a:6:{s:8:"property";s:16:"plainTextStdWrap";s:8:"datatype";s:12:"-&gt;stdWrap";s:11:"description";s:52:"This is stdWrap properties for all non-tag content. ";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:4;a:6:{s:8:"property";s:8:"userFunc";s:8:"datatype";s:13:"function name";s:11:"description";s:185:"This passes the non-tag content to a function of your own choice. Similar to eg. .postUserFunc in stdWrap.<br>Remember the function name must possibly be prepended &#x201c;user_&#x201d;";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:5;a:6:{s:8:"property";s:17:"nonTypoTagStdWrap";s:8:"datatype";s:12:"-&gt;stdWrap";s:11:"description";s:250:"Like .plainTextStdWrap. Difference: <br>.plainTextStdWrap works an ALL non-tag pieces in the text. .nonTypoTagStdWrap is post processing of all text (including tags) between special TypoTags (unless .breakoutTypoTagContent is not set for the TypoTag)";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:6;a:6:{s:8:"property";s:18:"nonTypoTagUserFunc";s:8:"datatype";s:13:"function name";s:11:"description";s:276:"Like .userFunc. Differences is (like nonTypoTagStdWrap) that this is post processing of all content pieces around TypoTags while .userFunc processes all non-tag content. (Notice: .breakoutTypoTagContent must be set for the TypoTag if it&#039;s excluded from nonTypoTagContent)";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:7;a:6:{s:8:"property";s:5:"sword";s:8:"datatype";s:4:"wrap";s:11:"description";s:203:"Marks up any words from the GET-method send array sword_list[] in the text. The word MUST be at least two characters long!<br>&nbsp;<b>NOTE:</b> works only with $GLOBALS[&quot;TSFE&quot;]-&gt;no_cache==1";s:7:"default";s:48:"&lt;font color=&quot;red&quot;&gt;|&lt;/font&gt;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:8;a:6:{s:8:"property";s:9:"makelinks";s:8:"datatype";s:24:"boolean / -&gt;makelinks";s:11:"description";s:115:"Convert webadresses prefixed with &quot;http://&quot; and mail-adresses prefixed with &quot;mailto:&quot; to links.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:9;a:6:{s:8:"property";s:4:"tags";s:8:"datatype";s:16:"<i>-&gt;tags</i>";s:11:"description";s:80:"Here you can define <b>custom tags</b> that will parse the content to something.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:10;a:6:{s:8:"property";s:9:"allowTags";s:8:"datatype";s:15:"list of strings";s:11:"description";s:125:"List of tags, which are allowed to exist in code! <br>Highest priority: If a tag is found in allowTags, denyTags is ignored!!";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:11;a:6:{s:8:"property";s:8:"denyTags";s:8:"datatype";s:15:"list of strings";s:11:"description";s:388:"List of tags, which may NOT exist in code! (use &quot;*&quot; for all.)<br>Lowest priority: If a tag is NOT found in allowTags, denyTags is checked. If denyTags is not &quot;*&quot; and the tag is not found in the list, the tag may exist!<br>&nbsp;<b><br>Example:</b><br>This allows &lt;B&gt;, &lt;I&gt;, &lt;A&gt; and &lt;IMG&gt; -tags to exist<br>.allowTags = b,i,a,img<br>.denyTags = *";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:12;a:6:{s:8:"property";s:2:"if";s:8:"datatype";s:7:"-&gt;if";s:11:"description";s:85:"if &quot;if&quot; returns false the input value is not parsed, but returned directly.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}}}