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; }
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>'; }