public function execute(AgaviXmlConfigDomDocument $document) { $code = array(); $parser = new CronkGridTemplateXmlParser(); $parser->disableCache(); $templates = $document->getElementsByTagName("template"); foreach ($templates as $extension) { $attrs = $extension->attributes; $pattern = $attrs->getNamedItem('match-pattern'); if (!$pattern) { continue; } // we don't have a dtd, so this can happen $parser->setDom($extension); $parser->parseTemplate(true); $code[] = array("pattern" => $pattern->value, "data" => $parser->getTemplateData(), "fields" => $parser->getFields()); } return $this->generate('return ' . var_export($code, true)); }