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 alle *.article u. *.content Dateien eines Artikels/einer Kategorie * * @param $id ArtikelId des Artikels, der generiert werden soll * @param $refreshall Boolean Bei True wird der Inhalte auch komplett neu generiert, bei False nur die Metainfos * * @return TRUE bei Erfolg, FALSE wenn eine ungütlige article_id übergeben wird */ function rex_generateArticle($id, $refreshall = true) { global $REX, $I18N; // artikel generieren // vorraussetzung: articel steht schon in der datenbank // // -> infos schreiben -> abhaengig von clang // --> artikel infos / einzelartikel metadaten // --> artikel content / einzelartikel content // --> listen generieren // wenn startpage = 1 // ---> artikel liste // ---> category liste foreach ($REX['CLANG'] as $clang => $clang_name) { $CONT = new rex_article_base(); $CONT->setCLang($clang); $CONT->setEval(false); // Content nicht ausführen, damit in Cachedatei gespeichert werden kann if (!$CONT->setArticleId($id)) { return false; } // ----------------------- generiere generated/articles/xx.article $MSG = rex_generateArticleMeta($id, $clang); if ($MSG === false) { return false; } if ($refreshall) { // ----------------------- generiere generated/articles/xx.content $MSG = rex_generateArticleContent($id, $clang); if ($MSG === false) { return false; } } // ----- EXTENSION POINT $MSG = rex_register_extension_point('CLANG_ARTICLE_GENERATED', '', array('id' => $id, 'clang' => $clang, 'article' => $CONT)); if ($MSG != '') { echo rex_warning($MSG); } // --------------------------------------------------- Listen generieren if ($CONT->getValue('startpage') == 1) { rex_generateLists($id); rex_generateLists($CONT->getValue('re_id')); } else { rex_generateLists($CONT->getValue('re_id')); } } // ----- EXTENSION POINT $MSG = rex_register_extension_point('ARTICLE_GENERATED', '', array('id' => $id)); 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; }