-# Replace top-level values in $main with top-level templates from $tem.
-function merge_templates($main, $tem) {
- $out = array('name' => $main['name'], 'pieces' => array());
+# merge $subs (sub_templates) into variables in $main (template)
+function merge_sub_templates(&$main, &$subs) {
+ foreach($main['pieces'] as &$piece) {
+ if(is_array($piece)) { # not just text
+ if(isset($piece['pieces']) && $piece['pieces']) {
+ # a sub-template in main
+ merge_sub_templates($piece, $subs);
+ } else {
+ # a value-slot in main
+ $sub = isset($subs[$piece['name']]) ? $subs[$piece['name']] : null;
+ $arg0 = isset($sub['args'][0]) ? $sub['args'][0] : null;
+ if($sub && $arg0 != 'hide') {
+ $piece = $subs[$piece['name']];
+ $piece['parent'] =& $main;
+ }
+ }
+ }
+ }
+}