public function rewriteGadgetView(Gadget $gadget, ViewSpec $gadgetView) { // Dont rewrite content if the spec is unavailable $requires = $gadget->getRequires(); if (isset($requires[ContentRewriteFeature::$REWRITE_TAG])) { // Store the feature in the spec so we dont keep parsing it $rewriteFeature = new ContentRewriteFeature(); $rewriteFeature->createRewriteFeature($gadget); } else { return false; } if (!$rewriteFeature->isRewriteEnabled()) { return false; } if (ContentRewriteFeature::$PROXY_URL != null) { $defaultTags = ContentRewriteFeature::defaultHTMLTags(); $htmlTags = null; if (count($rewriteFeature->getTagsParam()) > 0) { foreach ($rewriteFeature->getTagsParam() as $tag) { if (isset($defaultTags[$tag])) { $htmlTags[$tag] = $defaultTags[$tag]; } } } else { $htmlTags = $defaultTags; } } $gadgetView->setRewrittenContent($this->rewrite($gadgetView->getContent(), $htmlTags, $rewriteFeature->getExcludeParam(), $rewriteFeature->getIncludeParam(), Config::get('web_prefix') . ContentRewriteFeature::$PROXY_URL, $gadget->getId()->getURI(), $rewriteFeature->getTagsParam())); return true; }
private function processContent(&$gadget, $content) { $attributes = $content->attributes(); if (empty($attributes['type'])) { throw new SpecParserException("No content type specified!"); } $view = isset($attributes['view']) ? trim($attributes['view']) : ''; $views = explode(',', $view); $html = (string) $content; // no trim here since empty lines can have structural meaning, so typecast to string instead foreach ($views as $view) { if (empty($view)) { $view = DEFAULT_VIEW; } $viewSpec = new ViewSpec($view, $content); if (!isset($gadget->views[$view])) { $viewSpec->content = $html; $gadget->views[$view] = $viewSpec; } else { if ($gadget->views[$view]->getName() == $viewSpec->getName() && $viewSpec->getType() != $gadget->views[$view]->getType()) { throw new SpecParserException("You may not mix content " . " types in the same view."); } $gadget->views[$view]->addContent($html); } } }
private function processContent(&$gadget, $content, $views) { $html = (string) $content; // no trim here since empty lines can have structural meaning, so typecast to string instead foreach ($views as $view) { $viewSpec = new ViewSpec($view, $content); if (!isset($gadget->views[$view])) { $viewSpec->content = $html; $gadget->views[$view] = $viewSpec; } else { if ($gadget->views[$view]->getName() == $viewSpec->getName() && $viewSpec->getType() != $gadget->views[$view]->getType()) { throw new SpecParserException("You may not mix content " . " types in the same view."); } $gadget->views[$view]->addContent($html); } } }