return $ret; } ${'@at'}->fn('on', fn('_on', array(FALSE, fn::ph(), fn::ph()))); ${'@at'}->fn('on!', fn('_on', array(TRUE, fn::ph(), fn::ph()))); function _on($not, $cond, $block) { if ($not === empty($GLOBALS['@' . trim($cond)])) { return $GLOBALS['@at']->run($block); } } // filters ${'@filter:texy'} = fn(array(new Texy(), 'process'), array(fn::ph())); ${'@filter:escape'} = fn('htmlspecialchars', array(fn::ph(), ENT_QUOTES)); ${'@filter:date'} = fn('date', array('j. n. Y, H:i:s', fn::ph())); ${'@filter:mailize'} = fn('_mailize', array(fn::ph(), FALSE)); ${'@filter:mailto'} = fn('_mailize', array(fn::ph(), TRUE)); function _mailize($email, $mailto = FALSE) { $ret = ''; if ($mailto) { $email = 'mailto:' . $email; } for ($i = 0, $len = strlen($email); $i < $len; ++$i) { $ord = ord($email[$i]); if ($ord <= 0x7f && $ord !== 64 && $ord !== 46 && $i % 15 !== 0) { $ret .= chr($ord); continue; } if (!$mailto && $i & 1) { $ret .= '<!---->'; }