a:1:{s:4:"rows";a:9:{i:0;a:6:{s:8:"property";s:8:"template";s:8:"datatype";s:7:"cObject";s:11:"description";s:84:"&nbsp;This must be loaded with the template-code. If not the object returns nothing.";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:8:"subparts";s:8:"datatype";s:30:"<i>Array... of </i><br>cObject";s:11:"description";s:1253:"This is an array of subpart-markers (case-sensitive).<br>A subpart is defined by two markers in the template. The markers must be wrapped by &quot;###&quot; on both sides. You may insert the subpart-markers inside HTML-comment-tags!! <br>&nbsp;<b><br>Example: </b><br>subparts {<br>&nbsp;&nbsp;&nbsp;HELLO = TEXT<br>&nbsp;&nbsp;&nbsp;HELLO.value = En subpart er blevet erstattet!!<br>}<br>&nbsp;<br>In the templates:<br>&lt;!-- start of subpart: ###HELLO### --&gt;<br>This is the HTML.code, that will be loaded in the register and replaced with the result...<br>&lt;!-- end ###HELLO### --&gt;<br>&nbsp;<b><br>NOTE:</b><br>Before the content-objects of each subpart is generated, all subparts in the array are extracted and loaded into the register so that you can load them from there later on. <br>The register-key for each subparts code is &quot;SUBPART_[theSubpartkey]&quot;.<br>In addition the current-value is loaded with the content of each subpart just before the cObject for the subpart is parsed. That makes it quite easy to load the subpart of the cObject (eg: &quot;.current=1&quot;)<br>Eg. this subpart above has the register-key &quot;SUBPART_HELLO&quot;.<i><br>This is valid ONLY if the property .nonCachedSubst is not set! (see below)</i>";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:13:"relPathPrefix";s:8:"datatype";s:26:"<i>string / properties</i>";s:11:"description";s:757:"Finds all relative references (eg. to images or stylesheets) and prefixes this value.<br>If you specify properties (uppercase) these will match HTML tags and specify alternative paths for them. See example below.<br>If the property is named &quot;style&quot; it will set alternative path for the &quot;url()&quot; wrapper that may be in &lt;style&gt; sections.<br>&nbsp;<b><br>Example:</b><br>page.10 = TEMPLATEpage.10 { template = FILE template.file = fileadmin/template.html relPathPrefix = fileadmin/<br>&nbsp;&nbsp;&nbsp;relPathPrefix.IMG = fileadmin/img/}<br>&nbsp;<br>Inthis example all relative paths found are prefixed &quot;fileadmin/&quot; unless it was the src attribute of an img tag in which case the path prefixed is &quot;fileadmin/img/&quot;";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:5:"marks";s:8:"datatype";s:30:"<i>Array... of </i><br>cObject";s:11:"description";s:451:"This is an array of marks-markers (case-sensitive).<br>A mark is defined by one markers in the template. The marker must be wrapped by &quot;###&quot; on both sides. Opposite to subparts, you may NOT insert the subpart-markers inside HTML-comment-tags! (They will not be removed).<br>Marks are substituted bya str_replace-function. The subparts loaded in the register is available also to the cObjects of markers (only if .nonCachedSubst is not set!).";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:5:"wraps";s:8:"datatype";s:30:"<i>Array... of </i><br>cObject";s:11:"description";s:487:"This is an array of wraps-markers (case-sensitive).<br>This is shown best by an example:<b><br>Example: </b><br>subparts {<br>&nbsp;&nbsp;&nbsp;MYLINK = TEXT<br>&nbsp;&nbsp;&nbsp;MYLINK.value = &lt;A href=&#x201d;#&#x201d;&gt; | &lt;/A&gt;<br>}<br>&nbsp;<br>In the template:<br>This is &lt;!--###MYLINK###--&gt;a link to my&lt;!--###MYLINK###--&gt; page!<br>&nbsp;<br>In this example the MYLINK subpart will be substituted by the wrap which is the content returned by the MYLINK cObject.";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:13:"workOnSubpart";s:8:"datatype";s:6:"string";s:11:"description";s:204:"This is an optional definition of a subpart, that we decide to work on. In other words; if you define this value that subpart is extracted from the template and is the basis for this whole templateobject.";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:10:"markerWrap";s:8:"datatype";s:4:"wrap";s:11:"description";s:235:"This is the wrap the markers is wrapped with. The default value is ### | ### resulting in the markers to be presented as ###[marker_key]###.<br>Any whitespace around the wrap-items is stripped before they are set around the marker_key.";s:7:"default";s:9:"### | ###";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:7;a:6:{s:8:"property";s:20:"substMarksSeparately";s:8:"datatype";s:7:"boolean";s:11:"description";s:431:"If set, then marks are substituted in the content AFTER the substitution of subparts and wraps. <br>Normally marks are not substituted inside of subparts and wraps when you are using the default cached mode of the TEMPLATE cObject. That is a problem if you have marks inside of subparts! But setting this flag will make the marker-substitution a non-cached, subsequent process.<br>Another solution is to turn of caching, see below.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:8;a:6:{s:8:"property";s:14:"nonCachedSubst";s:8:"datatype";s:7:"boolean";s:11:"description";s:711:"If set, then the substitution mode of this cObject is totally different. Normally the raw template is read and divided into the sections denoted by the marks, subparts and wraps keys. The good thing is high speed, because this &#x201c;pre-parsed&#x201d; template is cached. The bad thing is that templates that depends on incremental substition (where the order of substition is important) will not work so well.<br>By setting this flag, markers are first substituted by str_replace in the template - one by one. Then the subparts are substituted one by one. And finally the wraps one by one.<br>Obviously you loose the ability to refer to other parts in the template with the register-keys as described above. ";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}}}