Operators definition syntax.
Fields:
"type" operator type
* "single" - <tag />
* "double" - <tag> [<option>] </tag>
* in project "multi" - <tag><subtag></subtag></tag>
"tag" tag name
"replace" tag replace. You can use following vars:
* %varname% - subst value of the variable with "varname"
* %number% - subst unnamed var with number "number" (vars count begin from 1)
* %0% - subst varstring "as is", except substitution of the registered vars (see below)
* %?digit% - subst script-allocated var. All vars with the same digit "digit" will have the same names.
* %replace% - if used for "double" tags only. Subst all content stored within matched tags.
"vars" array of the vars handlers. If handler is defined then result of its work would be put to "replace".
Possible fields:
* varname - handler for the "varname" var.
* 0 - handler for full string.
* replace - handler for the %replace%
"register" array of vars to be put in Globals.
"help" short description.
Example:
// type
$op = array ("type" => "single",
// name
"tag" => "datasource",
// replace
"replace" => '<?php $this->_assignData("%name%","%function%",%0%) ?>',
// handlers
"vars" => array (// 0 matches all var1= ... var999= variables
"0" => '$a = "";
foreach ($var as $k=>$v) $a.=preg_match("/var(\d+)$/",$k,$m)?",".$v:"";
return $a;',
"folder" => 'return ($var=="this")?getcwd():strtr($var,"\\\\","/");',
"name" => 'return trim($var,"@");',
),
// vars to be registered
"register" => array ("name"),
// description
"help" => "syntax: <datasource name='varname' function='any_function' var1='value1' var999='value999' />. Evaluates the function with given variables",
); |