getRenderer(); $renderer->registerTagHandler('error', new k4ErrorTag); $renderer->registerTagHandler('input', new k4InputTag); $renderer->registerTagHandler('textarea', new k4TextAreaTag); $renderer->registerTagHandler('cando', new k4CanDoTag); $renderer->registerTextHandler('~(images|css)/([a-z0-9_]+\.[a-z]{3}+)~i', array(&$this, 'doResourceUrl')); $renderer->registerTextHandler('~{@(.*?)}~', array(&$this, 'doLanguageVar')); $renderer->registerTextHandler('~{((?:/\$?[a-z0-9_.]*)+)/?}~i', array(&$this, 'doPathVar')); } function doResourceUrl($match) { $context = &$this->getContext(); return $context->get('k4_root_url') . '/' . $match[0]; } function doLanguageVar($match) { return $match[1]; } function doPathVar($match) { $context = &$this->getContext(); $parts = explode('/', $match[1]); $path = $context->get('k4_base_url'); foreach ($parts as $part) { if ($part) { if ($part{0} == '$') { $part = $context->get(substr_utf($part, 1)); $part = k4_us($part); } $path .= "/$part"; } } $path .= "/"; return $path; } function setError($field) { $this->assign($field . '_error', TRUE); $this->assign($field, ''); } } ?>