function enterObject()
 {
     $article = new rex_article();
     if ($article->setArticleId($this->getElement(1))) {
         $this->params['form_output'][$this->getId()] = $this->parse('value.article.tpl.php', array('article' => $article));
     }
 }
function rex_newsletter_sendmail($userinfo, $aid, $mail_reply, $mail_subject)
{
    global $REX;
    $tmp_redaxo = $REX['REDAXO'];
    $REX['REDAXO'] = true;
    // ***** HTML VERSION KOMPLETT
    $REX_ARTICLE = new rex_article();
    $REX_ARTICLE->setCLang(0);
    $REX_ARTICLE->setArticleId($aid);
    $REX_ARTICLE->getContentAsQuery(TRUE);
    // $REX_ARTICLE->setTemplateId(xx);
    $REX['ADDON']['NEWSLETTER_TEXT'] = FALSE;
    $html_body = $REX_ARTICLE->getArticleTemplate();
    // ***** TEXT VERSION
    $REX_ARTICLE = new rex_article();
    $REX_ARTICLE->setCLang(0);
    $REX_ARTICLE->setArticleId($aid);
    $REX_ARTICLE->getContentAsQuery(TRUE);
    // $REX_ARTICLE->setTemplateId(xx);
    $REX['ADDON']['NEWSLETTER_TEXT'] = TRUE;
    // FILTERN VERSION KOMPLETT
    $text_body = $REX_ARTICLE->getArticle();
    $text_body = str_replace("<br />", "<br />", $text_body);
    $text_body = str_replace("<p>", "\n\n</p>", $text_body);
    $text_body = str_replace("<ul>", "\n\n</ul>", $text_body);
    $text_body = preg_replace("#(\\<)(.*)(\\>)#imsU", "", $text_body);
    $text_body = html_entity_decode($text_body);
    $REX['REDAXO'] = true;
    // ***** MAIL VERSAND
    // Allgemeine Initialisierung
    // $mail = new PHPMailer();
    $mail = new rex_mailer();
    $mail->AddAddress($userinfo["email"]);
    $mail->From = $mail_reply;
    $mail->FromName = $mail_reply;
    $subject = $mail_subject;
    // Subject
    // Bodies
    // html
    foreach ($userinfo as $k => $v) {
        $subject = str_replace("###" . $k . "###", $v, $subject);
        $html_body = str_replace("###" . $k . "###", $v, $html_body);
        $text_body = str_replace("###" . $k . "###", $v, $text_body);
        $subject = str_replace("###" . strtoupper($k) . "###", $v, $subject);
        $html_body = str_replace("###" . strtoupper($k) . "###", $v, $html_body);
        $text_body = str_replace("###" . strtoupper($k) . "###", $v, $text_body);
    }
    // text
    // echo "<pre>$text_body</pre>";
    $mail->Subject = $subject;
    $mail->AltBody = $text_body;
    $mail->Body = $html_body;
    $mail->Send();
    $REX['REDAXO'] = $tmp_redaxo;
}
     // ------------------------------------------ WARNING
     if ($mode != 'edit' && $message != '') {
         echo rex_warning($message);
     }
     echo '
         <div class="rex-cnt-bdy">
         ';
     if ($mode == 'edit') {
         // ------------------------------------------ START: MODULE EDITIEREN/ADDEN ETC.
         echo '
               <!-- *** OUTPUT OF ARTICLE-CONTENT-EDIT-MODE - START *** -->
               <div class="rex-cnt-editmode">
               ';
         $CONT = new rex_article();
         $CONT->message = $message;
         $CONT->setArticleId($article_id);
         $CONT->setSliceId($slice_id);
         $CONT->setMode($mode);
         $CONT->setCLang($clang);
         $CONT->setEval(TRUE);
         $CONT->setFunction($function);
         eval("?>" . $CONT->getArticle($ctype));
         echo '
               </div>
               <!-- *** OUTPUT OF ARTICLE-CONTENT-EDIT-MODE - END *** -->
               ';
         // ------------------------------------------ END: MODULE EDITIEREN/ADDEN ETC.
     } elseif ($mode == 'meta') {
         // ------------------------------------------ START: META VIEW
         echo '
 	  <div class="rex-cnt-metamode">
 function getSlice()
 {
     // TODO:: ------------------- .' AND revision='.$this->revision
     $art = new rex_article();
     $art->setArticleId($this->getArticleId());
     $art->setClang($this->getClang());
     $art->getSlice = $this->getId();
     $art->setEval(true);
     return @$art->replaceLinks($art->getArticle());
 }
/**
 * 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));
}
 function enterObject(&$email_elements, &$sql_elements, &$warning, &$form_output, $send = 0)
 {
     $artikel = new rex_article();
     $artikel->setArticleId($this->elements[1]);
     $form_output[] = '<div class="article">' . $artikel->getArticle() . '</div>';
 }
Example #7
0
// Kann wichtig für die Darstellung sein
// Sollte immer false bleiben
$REX['REDAXO'] = false;
// 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
$REX_ARTICLE = new rex_article();
$REX_ARTICLE->setCLang($clang);
if ($REX['SETUP']) {
    header('Location: redaxo/index.php');
    exit;
} elseif ($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();
// ----- inhalt ausgeben
rex_send_content($REX_ARTICLE, $CONTENT, 'frontend');
 /**
  * Gibt den Slice formatiert zurück
  */
 function getSlice()
 {
     $art = new rex_article();
     $art->setArticleId($this->getArticleId());
     $art->setClang($this->getClang());
     $art->getSlice = $this->getId();
     return $art->getArticle();
 }
/**
 * 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;
}