function rex_generateArticle($id, $refresh = 0) { global $PHP_SELF, $module_id, $FORM, $REX_USER, $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 // --> cache loeschen // --------------------------------------------------- generiere generated/articles/xx.article $CL = $REX[CLANG]; reset($CL); for ($i = 0; $i < count($CL); $i++) { $clang = key($CL); $REX[RC] = true; // keine Ausgabe als eval(CONTENT) sondern nur speichern in datei $CONT = new article(); $CONT->setCLang($clang); $CONT->setArticleId($id); $article_content = "?>" . $CONT->getArticle(); // --------------------------------------------------- Artikelparameter speichern $article = "<?\n" . "\n\$REX[ART][{$id}][article_id][{$clang}] = \"{$id}\";" . "\n\$REX[ART][{$id}][re_id][{$clang}] = \"" . rex_addslashes($CONT->getValue("re_id")) . "\";" . "\n\$REX[ART][{$id}][name][{$clang}] = \"" . rex_addslashes($CONT->getValue("name")) . "\";" . "\n\$REX[ART][{$id}][catname][{$clang}] = \"" . rex_addslashes($CONT->getValue("catname")) . "\";" . "\n\$REX[ART][{$id}][cattype][{$clang}] = \"" . rex_addslashes($CONT->getValue("name")) . "\";" . "\n\$REX[ART][{$id}][alias][{$clang}] = \"" . rex_addslashes($CONT->getValue("name")) . "\";" . "\n\$REX[ART][{$id}][description][{$clang}] = \"" . rex_addslashes($CONT->getValue("description")) . "\";" . "\n\$REX[ART][{$id}][attribute][{$clang}] = \"" . rex_addslashes($CONT->getValue("attribute")) . "\";" . "\n\$REX[ART][{$id}][file][{$clang}] = \"" . rex_addslashes($CONT->getValue("file")) . "\";" . "\n\$REX[ART][{$id}][type_id][{$clang}] = \"" . rex_addslashes($CONT->getValue("type_id")) . "\";" . "\n\$REX[ART][{$id}][teaser][{$clang}] = \"" . rex_addslashes($CONT->getValue("teaser")) . "\";" . "\n\$REX[ART][{$id}][startpage][{$clang}] = \"" . rex_addslashes($CONT->getValue("startpage")) . "\";" . "\n\$REX[ART][{$id}][prior][{$clang}] = \"" . rex_addslashes($CONT->getValue("prior")) . "\";" . "\n\$REX[ART][{$id}][path][{$clang}] = \"" . rex_addslashes($CONT->getValue("path")) . "\";" . "\n\$REX[ART][{$id}][status][{$clang}] = \"" . rex_addslashes($CONT->getValue("status")) . "\";" . "\n\$REX[ART][{$id}][online_from][{$clang}] = \"" . rex_addslashes($CONT->getValue("online_from")) . "\";" . "\n\$REX[ART][{$id}][online_to][{$clang}] = \"" . rex_addslashes($CONT->getValue("online_to")) . "\";" . "\n\$REX[ART][{$id}][createdate][{$clang}] = \"" . rex_addslashes($CONT->getValue("createdate")) . "\";" . "\n\$REX[ART][{$id}][updatedate][{$clang}] = \"" . rex_addslashes($CONT->getValue("updatedate")) . "\";" . "\n\$REX[ART][{$id}][keywords][{$clang}] = \"" . rex_addslashes($CONT->getValue("keywords")) . "\";" . "\n\$REX[ART][{$id}][template_id][{$clang}] = \"" . rex_addslashes($CONT->getValue("template_id")) . "\";" . "\n\$REX[ART][{$id}][createuser][{$clang}] = \"" . rex_addslashes($CONT->getValue("createuser")) . "\";" . "\n\$REX[ART][{$id}][updateuser][{$clang}] = \"" . rex_addslashes($CONT->getValue("updateuser")) . "\";" . "\n\$REX[ART][{$id}][last_update_stamp][{$clang}] = \"" . time() . "\";" . "\n?>"; if ($fp = @fopen($REX[INCLUDE_PATH] . "/generated/articles/{$id}.{$clang}.article", "w")) { fputs($fp, $article); 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 ($fp = @fopen($REX[INCLUDE_PATH] . "/generated/articles/{$id}.{$clang}.content", "w")) { 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/"; } if ($MSG != "") { echo "<table border=0 cellpadding=5 cellspacing=1 width=770><tr><td class=warning>{$MSG}</td></tr></table>"; } $REX[RC] = false; // --------------------------------------------------- Listen generieren if ($CONT->getValue("startpage") == 1) { rex_generateLists($id); rex_generateLists($CONT->getValue("re_id")); } else { rex_generateLists($CONT->getValue("re_id")); } next($CL); } // --------------------------------------------------- recache all $Cache = new Cache(); $Cache->removeAllCacheFiles(); }
/** * 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 $PHP_SELF, $module_id, $FORM, $REX_USER, $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 $CL = $REX['CLANG']; reset($CL); for ($i = 0; $i < count($CL); $i++) { $clang = key($CL); $REX['RC'] = true; // keine Ausgabe als eval(CONTENT) sondern nur speichern in datei $CONT = new article(); $CONT->setCLang($clang); $CONT->setArticleId($id); // --------------------------------------------------- Artikelparameter speichern $article = "<?php\n" . "\n\$REX['ART']['{$id}']['article_id']['{$clang}'] = \"{$id}\";" . "\n\$REX['ART']['{$id}']['re_id']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("re_id")) . "\";" . "\n\$REX['ART']['{$id}']['name']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("name")) . "\";" . "\n\$REX['ART']['{$id}']['catname']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("catname")) . "\";" . "\n\$REX['ART']['{$id}']['cattype']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("name")) . "\";" . "\n\$REX['ART']['{$id}']['alias']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("name")) . "\";" . "\n\$REX['ART']['{$id}']['description']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("description")) . "\";" . "\n\$REX['ART']['{$id}']['attribute']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("attribute")) . "\";" . "\n\$REX['ART']['{$id}']['file']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("file")) . "\";" . "\n\$REX['ART']['{$id}']['type_id']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("type_id")) . "\";" . "\n\$REX['ART']['{$id}']['teaser']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("teaser")) . "\";" . "\n\$REX['ART']['{$id}']['startpage']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("startpage")) . "\";" . "\n\$REX['ART']['{$id}']['prior']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("prior")) . "\";" . "\n\$REX['ART']['{$id}']['path']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("path")) . "\";" . "\n\$REX['ART']['{$id}']['status']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("status")) . "\";" . "\n\$REX['ART']['{$id}']['online_from']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("online_from")) . "\";" . "\n\$REX['ART']['{$id}']['online_to']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("online_to")) . "\";" . "\n\$REX['ART']['{$id}']['createdate']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("createdate")) . "\";" . "\n\$REX['ART']['{$id}']['updatedate']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("updatedate")) . "\";" . "\n\$REX['ART']['{$id}']['keywords']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("keywords")) . "\";" . "\n\$REX['ART']['{$id}']['template_id']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("template_id")) . "\";" . "\n\$REX['ART']['{$id}']['createuser']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("createuser")) . "\";" . "\n\$REX['ART']['{$id}']['updateuser']['{$clang}'] = \"" . rex_addslashes($CONT->getValue("updateuser")) . "\";" . "\n\$REX['ART']['{$id}']['last_update_stamp']['{$clang}'] = \"" . time() . "\";" . "\n?>"; if ($fp = @fopen($REX['INCLUDE_PATH'] . "/generated/articles/{$id}.{$clang}.article", "w")) { fputs($fp, $article); 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/"; } } if (isset($MSG) and $MSG != "") { echo "<table border=0 cellpadding=5 cellspacing=1 width=770><tr><td class=warning>{$MSG}</td></tr></table>"; } $REX['RC'] = false; // --------------------------------------------------- Listen generieren if ($CONT->getValue("startpage") == 1) { rex_generateLists($id); rex_generateLists($CONT->getValue("re_id")); } else { rex_generateLists($CONT->getValue("re_id")); } next($CL); } }
print "<br>CachedVersion<br>"; } if ($REX[CACHING_DEBUG]) { print "Script time: " . showScripttime(); } $SHOWARTICLE = false; } else { // start caching $Cache->startCacheFile(); } } } if ($SHOWARTICLE) { $REX_ARTICLE = new article(); $REX_ARTICLE->setCLang($clang); if ($REX_ARTICLE->setArticleId($article_id)) { $REX_ARTICLE->getArticleTemplate(); } elseif ($REX_ARTICLE->setArticleId($REX[STARTARTIKEL_ID])) { $REX_ARTICLE->getArticleTemplate(); } else { echo "Kein Startartikel selektiert / No starting Article selected. Please click here to enter <a href=redaxo/index.php>redaxo</a>"; $REX[STATS] = 0; } ////////////////////////////////////////////// // advanced caching ////////////////////////////////////////////// if ($Cache->makeCacheFile) { $Cache->writeCacheFile(); if ($REX[CACHING_DEBUG]) { print "<br>MadeCache<br>"; }
// Wenn $REX[GG] = true; dann wird der // Content aus den redaxo/include/generated/ // genommen $REX['GG'] = true; // setzte pfad und includiere klassen und funktionen $REX['HTDOCS_PATH'] = "./"; include "./redaxo/include/master.inc.php"; // Starte einen neuen Artikel und setzte die aktuelle // artikel id. wenn nicht vorhanden, nimm einen // speziellen artikel. z.b. fehler seite oder home seite if (!isset($article_id) or $article_id == '') { $article_id = $REX['START_ARTICLE_ID']; } $REX_ARTICLE = new article(); $REX_ARTICLE->setCLang($clang); if ($REX_ARTICLE->setArticleId($article_id)) { echo $REX_ARTICLE->getArticleTemplate(); } elseif ($REX_ARTICLE->setArticleId($REX['NOTFOUND_ARTICLE_ID'])) { echo $REX_ARTICLE->getArticleTemplate(); } else { echo 'Kein Startartikel selektiert / No starting Article selected. Please click here to enter <a href="redaxo/index.php">redaxo</a>'; $REX['STATS'] = 0; } // ----- caching end für output filter $CONTENT = ob_get_contents(); ob_end_clean(); // ----- EXTENSION POINT $CONTENT = rex_register_extension_point('OUTPUT_FILTER', $CONTENT); // ----- EXTENSION POINT - keine Manipulation der Ausgaben ab hier (read only) rex_register_extension_point('OUTPUT_FILTER_CACHE', $CONTENT, '', true); // ----- inhalt endgueltig ausgeben
echo "<tr><td align=center class=warning><img src=pics/warning.gif width=16 height=16 vspace=4></td><td class=warning> {$message}</td><td class=lgrey> </td></tr>"; } if (isset($_REQUEST["msg"]) and $_REQUEST["msg"] != "") { echo "<tr><td align=center class=warning><img src=pics/warning.gif width=16 height=16 vspace=4></td><td class=warning> " . $_REQUEST["msg"] . "</td><td class=lgrey> </td></tr>"; } echo " <tr>\n <td class=lgrey> </td>\n <td valign=top class=lblue>"; if ($mode == "edit") { if (!isset($slice_id)) { $slice_id = ''; } if (!isset($function)) { $function = ''; } // ------------------------------------------ START: MODULE EDITIEREN/ADDEN ETC. $CONT = new article(); $CONT->setArticleId($article_id); $CONT->setSliceId($slice_id); $CONT->setMode($mode); $CONT->setCLang($clang); $CONT->setCType($ctype); $CONT->setEval(TRUE); $CONT->setFunction($function); eval("?>" . $CONT->getArticle()); // ------------------------------------------ END: MODULE EDITIEREN/ADDEN ETC. } elseif ($mode == "meta") { // ------------------------------------------ START: META VIEW $extens = ""; if (isset($save) and $save == "1") { $meta_sql = new sql(); $meta_sql->setTable($REX['TABLE_PREFIX'] . "article"); // $meta_sql->debugsql = 1;
function generateArticle($id) { global $PHP_SELF, $module_id, $FORM, $REX_USER, $REX, $I18N; // --------------------------------------------------- generiere generated/articles/xx.article $REX[RC] = true; // Generiere Content $CONT = new article(); $CONT->setArticleId($id); $REX[TEMP] = $REX[BF]; $REX[BF] = false; $article_content = "?>" . $CONT->getArticle(); $REX[BF] = true; $article_bcontent = "?>" . $CONT->getArticle(); $REX[BF] = $REX[TEMP]; $article = "<?\r\n\r\n\$REX[ART][{$id}][name] = \"" . addslashes($CONT->getValue("name")) . "\";\r\n\$REX[ART][{$id}][beschreibung] = \"" . addslashes($CONT->getValue("beschreibung")) . "\";\r\n\$REX[ART][{$id}][suchbegriffe] = \"" . addslashes($CONT->getValue("suchbegriffe")) . "\";\r\n\$REX[ART][{$id}][category_id] = \"" . addslashes($CONT->getValue("category_id")) . "\";\r\n\$REX[ART][{$id}][article_id] = \"{$id}\";\r\n\$REX[ART][{$id}][type_id] = \"" . addslashes($CONT->getValue("type_id")) . "\";\r\n\$REX[ART][{$id}][file] = \"" . addslashes($CONT->getValue("file")) . "\";\r\n\$REX[ART][{$id}][startpage] = \"" . addslashes($CONT->getValue("startpage")) . "\";\r\n\$REX[ART][{$id}][prio] = \"" . addslashes($CONT->getValue("prio")) . "\";\r\n\$REX[ART][{$id}][path] = \"" . addslashes($CONT->getValue("path")) . "\";\r\n\$REX[ART][{$id}][online_von] = \"" . addslashes($CONT->getValue("online_von")) . "\";\r\n\$REX[ART][{$id}][online_bis] = \"" . addslashes($CONT->getValue("online_bis")) . "\";\r\n\$REX[ART][{$id}][erstelldatum] = \"" . addslashes($CONT->getValue("erstelldatum")) . "\";\r\n\$REX[ART][{$id}][template_id] = \"" . addslashes($CONT->getValue("template_id")) . "\";\r\n\$REX[ART][{$id}][status] = \"" . addslashes($CONT->getValue("status")) . "\";\r\n\r\n?>"; // Artikelparameter speichern if ($fp = @fopen($REX[INCLUDE_PATH] . "/generated/articles/" . $id . ".article", "w")) { fputs($fp, $article); fclose($fp); } else { $MSG = $I18N->msg('article_could_not_be_generated') . " " . $I18N->msg('check_rights_in_directory') . $REX[INCLUDE_PATH] . "/generated/articles/"; } // Artikelcontent speichern if ($fp = @fopen($REX[INCLUDE_PATH] . "/generated/articles/" . $id . ".content", "w")) { fputs($fp, $article_content); fclose($fp); } else { $MSG = $I18N->msg('article_could_not_be_generated') . " " . $I18N->msg('check_rights_in_directory') . $REX[INCLUDE_PATH] . "/generated/articles/"; } // Artikel B content speichern [BARRIEREFREI] if ($fp = @fopen($REX[INCLUDE_PATH] . "/generated/articles/" . $id . ".bcontent", "w")) { fputs($fp, $article_bcontent); fclose($fp); } else { $MSG = $I18N->msg('article_could_not_be_generated') . " " . $I18N->msg('check_rights_in_directory') . $REX[INCLUDE_PATH] . "generated/articles/"; } if ($MSG != "") { echo "\t<table border=0 cellpadding=5 cellspacing=1 width=770>\r\n\t\t\t<tr><td class=warning>{$MSG}</td></tr>\r\n\t\t\t</table>"; } $REX[RC] = false; }
// $mail_reply // $mail_subject // $mail_aid // $test_email // $test_name // $test_firstname // $content $to_email = $test_email; $to_name = $test_name; $to_firstname = $test_firstname; // Testmail verschicken.. $REX['GG'] = true; $REX['REDAXO'] = true; $REX_ARTICLE = new article(); $REX_ARTICLE->setCLang(0); $REX_ARTICLE->setArticleId($mail_aid); // $REX_ARTICLE->setTemplateId(xx); $content = $REX_ARTICLE->getArticleTemplate(); $REX['GG'] = false; $REX['REDAXO'] = true; // Allgemeine Initialisierung $mail = new MyMailer(); $mail->AddAddress($to_email); $mail->From = $mail_reply; $mail->FromName = $mail_reply; // Subject $subject = $mail_subject; $subject = str_replace("###EMAIL###", "{$to_email}", $subject); $subject = str_replace("###NAME###", "{$to_name}", $subject); $subject = str_replace("###FIRSTNAME###", "{$to_firstname}", $subject); // Bodies