public static function getTemplateStream($id, rex_article_content_base $article = null) { ob_start(); $tmpl = new rex_template($id); $tmpl = $tmpl->getTemplate(); if ($article) { $tmpl = $article->replaceCommonVars($tmpl, $id); } return rex_stream::factory('template/' . $id, $tmpl); }
/** * Generiert den Artikel-Cache des Artikelinhalts. * * @param int $article_id Id des zu generierenden Artikels * @param int $clang ClangId des Artikels * * @return bool TRUE bei Erfolg, FALSE wenn eine ungütlige article_id übergeben wird, sonst eine Fehlermeldung */ public static function generateArticleContent($article_id, $clang = null) { foreach (rex_clang::getAllIds() as $_clang) { if ($clang !== null && $clang != $_clang) { continue; } $CONT = new rex_article_content_base(); $CONT->setCLang($_clang); $CONT->setEval(false); // Content nicht ausführen, damit in Cachedatei gespeichert werden kann if (!$CONT->setArticleId($article_id)) { return false; } // --------------------------------------------------- Artikelcontent speichern $article_content_file = rex_path::addonCache('structure', "{$article_id}.{$_clang}.content"); $article_content = $CONT->getArticle(); // ----- EXTENSION POINT $article_content = rex_extension::registerPoint(new rex_extension_point('GENERATE_FILTER', $article_content, ['id' => $article_id, 'clang' => $_clang, 'article' => $CONT])); if (rex_file::put($article_content_file, $article_content) === false) { return rex_i18n::msg('article_could_not_be_generated') . ' ' . rex_i18n::msg('check_rights_in_directory') . rex_path::addonCache('structure'); } } return true; }
public function getArticle($curctype = -1) { // bc if ($this->viasql) { return parent::getArticle($curctype); } $this->ctype = $curctype; if (!$this->getSlice && $this->article_id != 0) { // ----- start: article caching ob_start(); ob_implicit_flush(0); $article_content_file = rex_path::addonCache('structure', $this->article_id . '.' . $this->clang . '.content'); if (!file_exists($article_content_file)) { $generated = rex_content_service::generateArticleContent($this->article_id, $this->clang); if ($generated !== true) { // fehlermeldung ausgeben echo $generated; } } if (file_exists($article_content_file)) { require $article_content_file; } // ----- end: article caching $CONTENT = ob_get_contents(); ob_end_clean(); } else { // Inhalt ueber sql generierens $CONTENT = parent::getArticle($curctype); } $CONTENT = rex_extension::registerPoint(new rex_extension_point('ART_CONTENT', $CONTENT, ['ctype' => $curctype, 'article' => $this])); return $CONTENT; }