public static function addNewstoSitemap($params) { $mainArticle = rex_asd_news_config::getConfig('article'); $mainArticle = new rex_article($mainArticle); foreach (rex_asd_news::getByWhere(array('clang' => null)) as $news) { /** @var rex_asd_news $news */ $fragment = array('loc' => $news->getUrl(), 'lastmod' => $news->getPublishDate()->format('c'), 'changefreq' => self::calc_article_changefreq($news->getPublishDate()->getTimestamp()), 'priority' => self::calc_article_priority($mainArticle->getValue('id'), $mainArticle->getValue('clang'), $mainArticle->getValue('path') . '|' . $news->getValue('id'))); $params['subject'][rex_asd_news_config::getName()][] = $fragment; } return $params['subject']; }
static function getListValue($params) { if (intval($params['value']) < 1) { return '-'; } if ($art = new rex_article($params['value'])) { return $art->getValue('name'); } else { return 'article ' . $params['value'] . ' not found'; } }
/** * @param rex_article $art * @param rex_yrewrite_domain $domain * * @return string|false */ public function getCustomUrl(rex_article $art, rex_yrewrite_domain $domain) { if ($domain->getStartId() == $art->getId()) { if ($domain->getStartClang() == $art->getClang()) { return '/'; } return $this->getClang($art->getClang(), $domain) . '/'; } if ($url = $art->getValue('yrewrite_url')) { return $url; } return false; }
/** * 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 */ 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 // --------------------------------------------------- generiere generated/articles/xx.article foreach ($REX['CLANG'] as $clang => $clang_name) { $MSG = ''; $CONT = new rex_article(); $CONT->setCLang($clang); $CONT->getContentAsQuery(); $CONT->setMode("generate"); // keine Ausgabe als eval(CONTENT) sondern nur speichern in datei if (!$CONT->setArticleId($id)) { return false; } // --------------------------------------------------- Artikelparameter speichern $params = array('article_id' => $id, 'last_update_stamp' => time()); $class_vars = OORedaxo::getClassVars(); unset($class_vars[array_search('id', $class_vars)]); $db_fields = $class_vars; foreach ($db_fields as $field) { $params[$field] = $CONT->getValue($field); } $content = '<?php' . "\n"; foreach ($params as $name => $value) { $content .= '$REX[\'ART\'][' . $id . '][\'' . $name . '\'][' . $clang . '] = \'' . rex_addslashes($value, '\\\'') . '\';' . "\n"; } $content .= '?>'; if ($fp = @fopen($REX['INCLUDE_PATH'] . "/generated/articles/{$id}.{$clang}.article", "w")) { fputs($fp, $content); fclose($fp); @chmod($REX['INCLUDE_PATH'] . "/generated/articles/{$id}.{$clang}.article", 0777); } else { $MSG = $I18N->msg('article_could_not_be_generated') . " " . $I18N->msg('check_rights_in_directory') . $REX['INCLUDE_PATH'] . "/generated/articles/"; } // --------------------------------------------------- Artikelcontent speichern if ($refreshall) { if ($fp = @fopen($REX['INCLUDE_PATH'] . "/generated/articles/{$id}.{$clang}.content", "w")) { $article_content = "?>" . $CONT->getArticle(); fputs($fp, $article_content); fclose($fp); @chmod($REX['INCLUDE_PATH'] . "/generated/articles/{$id}.{$clang}.content", 0777); } else { $MSG = $I18N->msg('article_could_not_be_generated') . " " . $I18N->msg('check_rights_in_directory') . $REX['INCLUDE_PATH'] . "/generated/articles/"; } } // ----- 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)); }
/** * 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(); $CONT->setCLang($clang); $CONT->getContentAsQuery(); // Content aus Datenbank holen, no cache $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; }