/** * 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'); } }