function setArticleId($article_id)
 {
     // bc
     if ($this->viasql) {
         return parent::setArticleId($article_id);
     }
     global $REX;
     $article_id = (int) $article_id;
     $this->article_id = $article_id;
     $OOArticle = OOArticle::getArticleById($article_id, $this->clang);
     if (OOArticle::isValid($OOArticle)) {
         $this->category_id = $OOArticle->getCategoryId();
         $this->template_id = $OOArticle->getTemplateId();
         return TRUE;
     }
     $this->article_id = 0;
     $this->template_id = 0;
     $this->category_id = 0;
     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
 *
 * @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;
}