function getArticle($curctype = -1) { // bc if ($this->viasql) { return parent::getArticle($curctype); } global $REX; $this->ctype = $curctype; if (!$this->getSlice && $this->article_id != 0) { // ----- start: article caching ob_start(); ob_implicit_flush(0); $article_content_file = $REX['INCLUDE_PATH'] . '/generated/articles/' . $this->article_id . '.' . $this->clang . '.content'; if (!file_exists($article_content_file)) { include_once $REX["INCLUDE_PATH"] . "/functions/function_rex_generate.inc.php"; $generated = rex_generateArticleContent($this->article_id, $this->clang); if ($generated !== true) { // fehlermeldung ausgeben echo $generated; } } if (file_exists($article_content_file)) { eval(rex_get_file_contents($article_content_file)); } // ----- end: article caching $CONTENT = ob_get_contents(); ob_end_clean(); } else { // Inhalt ueber sql generierens $CONTENT = parent::getArticle($curctype); } return $CONTENT; }
/** * Generiert den Artikel-Cache des Artikelinhalts. * * @param $article_id Id des zu generierenden Artikels * @param [$clang ClangId des Artikels] * * @return TRUE bei Erfolg, FALSE wenn eine ungütlige article_id übergeben wird, sonst eine Fehlermeldung */ function rex_generateArticleContent($article_id, $clang = null) { global $REX, $I18N; foreach ($REX['CLANG'] as $_clang => $clang_name) { if ($clang !== null && $clang != $_clang) { continue; } $CONT = new rex_article_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['GENERATED_PATH'] . "/articles/{$article_id}.{$_clang}.content"; $article_content = '?>' . $CONT->getArticle(); // ----- EXTENSION POINT $article_content = rex_register_extension_point('GENERATE_FILTER', $article_content, array('id' => $article_id, 'clang' => $_clang, 'article' => $CONT)); if (rex_file::put($article_content_file, $article_content) === false) { return $I18N->msg('article_could_not_be_generated') . ' ' . $I18N->msg('check_rights_in_directory') . $REX['GENERATED_PATH'] . '/articles/'; } } return true; }
function getArticle($curctype = -1) { global $REX; $this->ctype = $curctype; // bc if ($this->viasql) { $CONTENT = parent::getArticle($curctype); } elseif (!$this->getSlice && $this->article_id != 0) { // ----- start: article caching ob_start(); ob_implicit_flush(0); $article_content_file = $REX['GENERATED_PATH'] . '/articles/' . $this->article_id . '.' . $this->clang . '.content'; if (!file_exists($article_content_file)) { include_once $REX['INCLUDE_PATH'] . '/functions/function_rex_generate.inc.php'; $generated = rex_generateArticleContent($this->article_id, $this->clang); if ($generated !== true) { // fehlermeldung ausgeben echo $generated; } } if (file_exists($article_content_file)) { eval(rex_get_file_contents($article_content_file)); } // ----- end: article caching $CONTENT = ob_get_contents(); ob_end_clean(); } else { // Inhalt ueber sql generierens $CONTENT = parent::getArticle($curctype); } $CONTENT = rex_register_extension_point('ART_CONTENT', $CONTENT, array('ctype' => $curctype, 'article' => &$this)); return $CONTENT; }