Beispiel #1
0
     * @return string
     */
    public function parse($html, $blockName = 'document', $blockParams = null)
    {
        $blockParams = (array) $blockParams;
        $blockParams += array('inc' => null, 'parse' => true, 'max' => false);
        $value = $this->_getVar(trim(parent::parse($html)));
        if (is_numeric($blockParams['inc'])) {
            $value += $blockParams['inc'];
            return $value;
        }
        if ($blockParams['max'] && mb_strlen($value) > $blockParams['max']) {
            $value = mb_substr($value, 0, $blockParams['max']) . '...';
        }
        return $blockParams['parse'] ? parent::parse($value, '_var') : $value;
    }
}
/**
 * Black hole
 */
class PhemeNullParser
{
    /**
     * Does nothing
     */
    public function parse()
    {
    }
}
PhemeParser::$coreBlocks = array("group" => new PhemeParser(), "foreach" => new PhemeForeachParser(), "if" => new PhemeConditionalParser(), "c" => new PhemeNullParser(), "e" => new PhemeHtmlEntitiesParser(), 'skin' => new PhemeSkinParser(), 'var' => new PhemeVarParser());
Beispiel #2
0
 public static function parseTranslate($skin, $vars = array())
 {
     $blocks = PhemeParser::$coreBlocks;
     PhemeParser::$coreBlocks = array_intersect_key($blocks, array('t' => true, 'h' => true, 'e' => true, 'url' => true, 'webroot' => true));
     $result = self::parse('SimpleParser', compact('skin', 'vars'));
     PhemeParser::$coreBlocks = $blocks;
     return $result;
 }