/**
 * Löscht einen Artikel
 *
 * @param $id ArtikelId des Artikels, der gelöscht werden soll
 *
 * @return TRUE wenn der Artikel gelöscht wurde, sonst eine Fehlermeldung
 */
function _rex_deleteArticle($id)
{
    global $REX, $I18N;
    // artikel loeschen
    //
    // kontrolle ob erlaubnis nicht hier.. muss vorher geschehen
    //
    // -> startpage = 0
    // --> artikelfiles löschen
    // ---> article
    // ---> content
    // ---> clist
    // ---> alist
    // -> startpage = 1
    // --> rekursiv aufrufen
    $return = array();
    $return['state'] = false;
    if ($id == $REX['START_ARTICLE_ID']) {
        $return['message'] = $I18N->msg('cant_delete_sitestartarticle');
        return $return;
    }
    if ($id == $REX['NOTFOUND_ARTICLE_ID']) {
        $return['message'] = $I18N->msg('cant_delete_notfoundarticle');
        return $return;
    }
    $ART = rex_sql::factory();
    $ART->setQuery('select * from ' . $REX['TABLE_PREFIX'] . 'article where id=' . $id . ' and clang=0');
    if ($ART->getRows() > 0) {
        $re_id = $ART->getValue('re_id');
        $return['state'] = true;
        $return = rex_register_extension_point('ART_PRE_DELETED', $return, array('id' => $id, 're_id' => $re_id, 'name' => $ART->getValue('name'), 'status' => $ART->getValue('status'), 'prior' => $ART->getValue('prior'), 'path' => $ART->getValue('path'), 'template_id' => $ART->getValue('template_id')));
        if (!$return['state']) {
            return $return;
        }
        if ($ART->getValue('startpage') == 1) {
            $return['message'] = $I18N->msg('category_deleted');
            $SART = rex_sql::factory();
            $SART->setQuery('select * from ' . $REX['TABLE_PREFIX'] . 'article where re_id=' . $id . ' and clang=0');
            for ($i = 0; $i < $SART->getRows(); $i++) {
                $return['state'] = _rex_deleteArticle($id);
                $SART->next();
            }
        } else {
            $return['message'] = $I18N->msg('article_deleted');
        }
        // Rekursion über alle Kindkategorien ergab keine Fehler
        // => löschen erlaubt
        if ($return['state'] === true) {
            rex_deleteCacheArticle($id);
            $ART->setQuery('delete from ' . $REX['TABLE_PREFIX'] . 'article where id=' . $id);
            $ART->setQuery('delete from ' . $REX['TABLE_PREFIX'] . 'article_slice where article_id=' . $id);
            // --------------------------------------------------- Listen generieren
            rex_generateLists($re_id);
        }
        return $return;
    } else {
        $return['message'] = $I18N->msg('category_doesnt_exist');
        return $return;
    }
}
function _rex_deleteArticle($id, $ebene)
{
    global $REX, $I18N;
    // artikel loeschen
    //
    // kontrolle ob erlaubnis nicht hier.. muss vorher geschehen
    //
    // -> startpage = 0
    // --> artikelfiles löschen
    // ---> article
    // ---> content
    // ---> clist
    // ---> alist
    // -> startpage = 1
    // --> rekursiv aufrufen
    if ($id == $REX['START_ARTICLE_ID']) {
        return $I18N->msg('cant_delete_sitestartarticle');
    }
    if ($id == $REX['ARTICLE_NOT_FOUND']) {
        return $I18N->msg('cant_delete_notfoundarticle');
    }
    $ART = new rex_sql();
    $ART->setQuery("select * from " . $REX['TABLE_PREFIX'] . "article where id='{$id}' and clang='0'");
    if ($ART->getRows() > 0) {
        $re_id = $ART->getValue('re_id');
        $allowDelete = true;
        if ($ART->getValue('startpage') == 1) {
            $SART = new rex_sql();
            $SART->setQuery("select * from " . $REX['TABLE_PREFIX'] . "article where re_id='{$id}' and clang='0'");
            for ($i = 0; $i < $SART->getRows(); $i++) {
                $allowDelete = _rex_deleteArticle($id, $ebene + 1);
                $SART->next();
            }
        }
        // Rekursion über alle Kindkategorien ergab keine Fehler
        // => löschen erlaubt
        if ($allowDelete === true) {
            rex_deleteCacheArticle($id);
            $ART->setQuery("delete from " . $REX['TABLE_PREFIX'] . "article where id='{$id}'");
            $ART->setQuery("delete from " . $REX['TABLE_PREFIX'] . "article_slice where article_id='{$id}'");
            // --------------------------------------------------- Listen generieren
            rex_generateLists($re_id);
        }
        return $allowDelete;
    } else {
        return $I18N->msg('category_doesnt_exist');
    }
}