X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=template.php;h=697761e2962233e0f080332ceab7366744d3ee6d;hb=bc74a59133a373649ab410c4cdd35a2661f1ee4b;hp=56435021891b9c745375c4183fbe6141ac6bd2bc;hpb=5d04ed2e47615f332c32d11659400b12c59acf21;p=wfpl.git diff --git a/template.php b/template.php index 5643502..697761e 100644 --- a/template.php +++ b/template.php @@ -300,46 +300,52 @@ function merge_templates(&$main, &$tem) { function tem_auto_sep(&$value, $key, $context) { $rows =& $context['parent']['parent']; if($rows['cur'] != count($rows['rows'])-1) # last row? - return $value = true; # show once + return true; # show once } # auto-show once, only when this is the first row of the parent function tem_auto_last(&$value, $key, $context) { $rows =& $context['parent']['parent']; if($rows['cur'] == count($rows['rows'])-1) # last row? - return $value = true; # show once + return true; # show once } # auto-show once, only when this is the last row of the parent function tem_auto_first(&$value, $key, $context) { $rows =& $context['parent']['parent']; if($rows['cur'] == 0) # first row? - return $value = true; # show once + return true; # show once } # 'show' sections will be shown unless the corresponding data # value === false function tem_auto_show(&$value) { - if($value === null) $value = array(array()); + if($value === null) return true; return $value; } +# 'empty' sections will be shown only if the corresponding data value is the +# empty string +function tem_auto_empty(&$value) { + if($value === '') return true; + return null; +} + # 'nonempty' sections will not be shown if the corresponding data # value is the empty string function tem_auto_nonempty(&$value) { - if($value === '') $value = null; + if($value === '') return null; return $value; } -# 'not' sections will not be shown if the corresponding data +# 'unset' sections will not be shown if the corresponding data # value is not set (opposite of default) function tem_auto_unset(&$value) { if($value === null) { - $value = ''; + return ''; } else { - $value = null; + return null; } - return $value; } # 'evenodd' sections are given an 'evenodd' attribute whose value @@ -353,6 +359,27 @@ function tem_auto_evenodd(&$values) { return $values; } +# 'once' sections are shown exactly once if the value is set (and not at all +# otherwise.) This is useful when an array value would otherwise cause the +# section to be displayed multiple times. +function tem_auto_once(&$value) { + if($value === null) return null; + return true; +} + +function tem_auto_once_if(&$value) { + if($value) return true; + return null; +} + +# 'once' sections are shown exactly once if php evaluates the value to false +# (and not at all otherwise.) This is useful when an array value would +# otherwise cause the section to be displayed multiple times. +function tem_auto_once_else(&$value) { + if($value) return null; + return true;; +} +