/** * Löscht einen Artikel * * @param $id ArtikelId des Artikels, der gelöscht werden soll */ function rex_deleteArticle($id, $ebene = 0) { 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_startarticle"); } $ART = new 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"); if ($ART->getValue("startpage") == 1) { $SART = new sql(); $SART->setQuery("select * from " . $REX['TABLE_PREFIX'] . "article where re_id='{$id}' and clang='0'"); for ($i = 0; $i < $SART->getRows(); $i++) { rex_deleteArticle($id, $ebene + 1); $SART->next(); } } $CL = $REX['CLANG']; reset($CL); for ($i = 0; $i < count($CL); $i++) { $clang = key($CL); @unlink($REX['INCLUDE_PATH'] . "/generated/articles/{$id}.{$clang}.article"); @unlink($REX['INCLUDE_PATH'] . "/generated/articles/{$id}.{$clang}.content"); @unlink($REX['INCLUDE_PATH'] . "/generated/articles/{$id}.{$clang}.alist"); @unlink($REX['INCLUDE_PATH'] . "/generated/articles/{$id}.{$clang}.clist"); $ART->query("delete from " . $REX['TABLE_PREFIX'] . "article where id='{$id}'"); $ART->query("delete from " . $REX['TABLE_PREFIX'] . "article_slice where article_id='{$id}'"); next($CL); } // --------------------------------------------------- Listen generieren rex_generateLists($re_id); return $I18N->msg('category_deleted') . ' ' . $I18N->msg('article_deleted'); } else { return $I18N->msg('category_doesnt_exist'); } }
/** * Löscht einen Artikel * * @param $id ArtikelId des Artikels, der gelöscht werden soll */ function rex_deleteArticle($id, $ebene = 0) { 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 $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"); 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++) { rex_deleteArticle($id, $ebene + 1); $SART->next(); } } 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 $I18N->msg('category_deleted') . ' ' . $I18N->msg('article_deleted'); } else { return $I18N->msg('category_doesnt_exist'); } }
$EA->where("id='{$article_id}' and clang={$clang}"); $EA->setValue("name", $article_name); $EA->setValue("template_id", $template_id); // $EA->setValue("path",$KATPATH); $EA->setValue("updatedate", time()); $EA->setValue("updateuser", $REX_USER->getValue("login")); $EA->setValue("prior", $Position_Article); $EA->update(); // ----- PRIOR rex_newArtPrio($category_id, $clang, $Position_Article, $thisArt->getValue("prior")); rex_generateArticle($article_id); // ----- EXTENSION POINT $message = rex_register_extension_point('ART_UPDATED', $message, array("id" => $article_id, "status" => $thisArt->getValue("status"), "name" => $article_name, "clang" => $clang, "re_id" => $category_id, "prior" => $Position_Article, "path" => $KATPATH, "template_id" => $template_id)); } elseif (isset($function) and $function == "delete_article" && $article_id != "" && $KATPERM && !$REX_USER->isValueOf("rights", "editContentOnly[]")) { // --------------------- ARTIKEL DELETE $message = rex_deleteArticle($article_id); $re_id = $thisArt->getValue("re_id"); // ----- PRIO $CL = $REX['CLANG']; reset($CL); for ($j = 0; $j < count($CL); $j++) { $mlang = key($CL); rex_newArtPrio($thisArt->getValue("re_id"), $mlang, 0, 1); next($CL); } // ----- EXTENSION POINT $message = rex_register_extension_point('ART_DELETED', $message, array("id" => $article_id, "re_id" => $re_id)); } } } // --------------------------------------------- KATEGORIE LISTE
/** * Löscht einen Artikel und reorganisiert die Prioritäten verbleibender Geschwister-Artikel * * @param int $article_id Id des Artikels die gelöscht werden soll * * @return array Ein Array welches den status sowie eine Fehlermeldung beinhaltet */ function rex_deleteArticleReorganized($article_id) { global $REX; $return = array(); $return['state'] = false; $return['message'] = ''; $Art = rex_sql::factory(); $Art->setQuery('select * from ' . $REX['TABLE_PREFIX'] . 'article where id=' . $article_id . ' and startpage=0'); if ($Art->getRows() == count($REX['CLANG'])) { $return = rex_deleteArticle($article_id); $re_id = $Art->getValue('re_id'); foreach ($REX['CLANG'] as $clang => $clang_name) { // ----- PRIOR rex_newArtPrio($Art->getValue('re_id'), $clang, 0, 1); // ----- EXTENSION POINT $return = rex_register_extension_point('ART_DELETED', $return, array('id' => $article_id, 'clang' => $clang, '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'))); $Art->next(); } } return array($return['state'], $return['message']); }