/**
  * CLASS Function:
  * Return an OORedaxo object based on an id
  */
 function getArticleById($article_id, $clang = false, $OOCategory = false)
 {
     global $REX;
     if ($clang === false) {
         $clang = $REX['CUR_CLANG'];
     } elseif (!isset($REX['CLANG'][$clang])) {
         $clang = 0;
     }
     $article_path = $REX['INCLUDE_PATH'] . '/generated/articles/' . $article_id . '.' . $clang . '.article';
     if (!file_exists($article_path)) {
         include_once $REX['INCLUDE_PATH'] . '/functions/function_rex_generate.inc.php';
         $article_id = (int) $article_id;
         rex_generateArticle($article_id, FALSE);
     }
     if (file_exists($article_path)) {
         include $article_path;
     } else {
         return null;
     }
     if ($OOCategory) {
         return new OOCategory(OORedaxo::convertGeneratedArray($REX['ART'][$article_id], $clang));
     } else {
         return new OOArticle(OORedaxo::convertGeneratedArray($REX['ART'][$article_id], $clang));
     }
 }
 function getArticleById($article_id, $clang = FALSE, $OOCategory = FALSE)
 {
     global $REX;
     $article_id = (int) $article_id;
     if (!is_int($article_id)) {
         return NULL;
     }
     if ($clang === FALSE) {
         $clang = $REX['CUR_CLANG'];
     }
     $article_path = $REX['INCLUDE_PATH'] . '/generated/articles/' . $article_id . '.' . $clang . '.article';
     if (!file_exists($article_path)) {
         require_once $REX['INCLUDE_PATH'] . '/functions/function_rex_generate.inc.php';
         rex_generateArticleMeta($article_id, $clang);
     }
     if (file_exists($article_path)) {
         require_once $article_path;
         if ($OOCategory) {
             return new OOCategory(OORedaxo::convertGeneratedArray($REX['ART'][$article_id], $clang));
         } else {
             return new OOArticle(OORedaxo::convertGeneratedArray($REX['ART'][$article_id], $clang));
         }
     }
     return NULL;
 }
 function getArticleById($article_id, $clang = false, $OOCategory = false)
 {
     global $REX;
     if ($clang === false) {
         $clang = $REX[CUR_CLANG];
     }
     $article_path = $REX[HTDOCS_PATH] . "redaxo/include/generated/articles/" . $article_id . "." . $clang . ".article";
     if (file_exists($article_path)) {
         include $article_path;
     } else {
         return null;
     }
     if ($OOCategory) {
         return new OOCategory(OORedaxo::convertGeneratedArray($REX[ART][$article_id], $clang));
     } else {
         return new OOArticle(OORedaxo::convertGeneratedArray($REX[ART][$article_id], $clang));
     }
 }
 /**
  * CLASS Function:
  * Returns an Array containing article field names
  */
 function getClassVars()
 {
     static $vars = array();
     if (empty($vars)) {
         global $REX;
         $vars = array();
         $file = $REX['INCLUDE_PATH'] . '/generated/articles/' . $REX['START_ARTICLE_ID'] . '.0.article';
         if ($REX['GG'] && file_exists($file)) {
             // Im GetGenerated Modus, die Spaltennamen aus den generated Dateien holen
             include_once $file;
             // da getClassVars() eine statische Methode ist, können wir hier nicht mit $this->getId() arbeiten!
             $genVars = OORedaxo::convertGeneratedArray($REX['ART'][$REX['START_ARTICLE_ID']], 0);
             unset($genVars['article_id']);
             unset($genVars['last_update_stamp']);
             foreach ($genVars as $name => $value) {
                 $vars[] = $name;
             }
         } else {
             // Im Backend die Spalten aus der DB auslesen / via EP holen
             $sql = new rex_sql();
             $sql->setQuery('SELECT * FROM ' . $REX['TABLE_PREFIX'] . 'article LIMIT 0');
             foreach ($sql->getFieldnames() as $field) {
                 $vars[] = $field;
             }
         }
     }
     return $vars;
 }