public function getRenderer(SDObject $object, $context = SD_CONTEXT_DEFAULT)
 {
     foreach ($object->getRendererNames() as $rendererName) {
         if (isset($this->config['renderers'][$rendererName])) {
             $templateName = $this->config['renderers'][$rendererName];
             $templatePath = $this->config['renderersPath'] . $templateName . '.php';
             if (file_exists($templatePath)) {
                 $view = F::app()->getView('StructuredData', $templateName, array('object' => $object, 'context' => $context, 'rendererName' => $rendererName));
                 $view->setTemplatePath($templatePath);
                 return $view;
             } else {
                 throw new WikiaException('SDElementRenderer not found for type: ' . $rendererName);
             }
         }
     }
     return null;
 }
示例#2
0
 public function render($context = SD_CONTEXT_DEFAULT)
 {
     // @todo render link in a proper way here, or move to renderers factory
     $result = parent::render($context);
     return $result !== false ? $result : '<a href="/wiki/Special:StructuredData?method=showObject&id=' . $this->getId() . '">' . htmlspecialchars($this->getName()) . '</a>';
 }