/** * Delete one item out of the list */ function deleteItem() { global $db; $deleted = false; for ($i = 0; $i < count($this->members); $i++) { if ($this->eid == $this->members[$i][1]) { $sql = "DELETE FROM cluster_content WHERE CLCID = $this->eid"; $query = new query($db, $sql); $query->free(); if ($this->membersCount > 1) sortTableRows("cluster_content", "CLCID", "POSITION", "CLTI_ID = $this->clti AND CLID = $this->cl"); $deleted = true; $this->deleteReferencedItem($this->eid); } } if ($deleted) { syncCluster ($this->cl); $this->members = $this->getItemData(); } }
/** * Moves the row selected one position down. (Pos = Pos + 1); * * @param string $table Name of the table to move down from * @param string $indexColumn Name of the Primary Key of the table * @param integer $indexValue Value of the PK of the row to sort. * @param string $sortColumn Name of the Column where order is stored * @param string $cond Where-Clause, to select only some rows. */ function moveRowDown($table, $indexColumn, $indexValue, $sortColumn, $cond = "1") { global $db; $curPos = getDBCell($table, $sortColumn, $cond . " AND $indexColumn = $indexValue"); $maxPos = getMax($table, $sortColumn, $cond); if ($curPos < $maxPos) { $chKey = getDBCell($table, $indexColumn, $cond . " AND $sortColumn =" . ($curPos + 1)); $sql = "UPDATE $table SET $sortColumn=" . ($curPos) . " WHERE $cond AND $indexColumn = $chKey"; $query = new query($db, $sql); $query->free(); $sql = "UPDATE $table SET $sortColumn=" . ($curPos + 1) . " WHERE $cond AND $indexColumn = $indexValue"; $query = new query($db, $sql); $query->free(); sortTableRows($table, $indexColumn, $sortColumn, $cond); } }
/** * Function for changing the position of a multipage * @param integer ID of the Multipage-Folder+ * @param integer ID of the Multiapage * @param integer New Position */ function reorderSitepage($menu, $spid, $position) { global $db; if ($position < 1) $position = 1; $oldposition = getDBCell("sitepage", "POSITION", "SPID = $spid"); if ($oldposition != $positon) { // get number of positions... $sql = "SELECT COUNT(SPID) AS ANZ FROM sitepage WHERE DELETED=0 AND MENU_ID = $menu"; $query = new query($db, $sql); $query->getrow(); $maxpos = $query->field("ANZ"); // correct positioning if ($position > $maxpos) $position = $maxpos; // is new position smaller then actual one? if ($position < $oldposition) { $sql = "UPDATE sitepage SET POSITION = (POSITION+1) WHERE POSITION >= $position AND POSITION < $oldposition AND MENU_ID=$menu"; $query = new query($db, $sql); $sql = "UPDATE sitepage SET POSITION = $position WHERE SPID = $spid"; $query = new query($db, $sql); $query->free(); } else { $sql = "UPDATE sitepage SET POSITION = (POSITION-1) WHERE POSITION > $oldposition AND POSITION <= $position AND MENU_ID = $menu"; $query = new query($db, $sql); $sql = "UPDATE sitepage SET POSITION = ($position) WHERE SPID = $spid"; $query = new query($db, $sql); $query->free(); } } sortTableRows("sitepage", "SPID", "POSITION", "MENU_ID = $menu AND DELETED=0"); }
function destroyTree() { global $destroyexecuted, $form, $db; $variations = createDBCArray("variations", "VARIATION_ID", "1"); if (!$destroyexecuted) { $destroyexecuted = true; $delstart = value("del", "NUMERIC"); $parentId = getDBCell("sitemap", "PARENT_ID", "MENU_ID = $delstart"); $destroyArray = getPageTree($delstart); if (value("destroypages") == "0") { // geht nicht $meldung = "Please select also the check Destroy Tree. Only then the system will delete the tree."; $form->addToTopText($meldung); } else { if (value("destroycluster") == "0") { // nur pages löschen for ($i = 0; $i < count($destroyArray); $i++) { for ($j = 0; $j < count($variations); $j++) { expireSitepage($destroyArray[$i], 10, $variations[$j]); } $sql1 = "DELETE FROM sitepage WHERE SPID = $destroyArray[$i]"; $menuid = getDBCell("sitepage", "MENU_ID", "SPID = " . $destroyArray[$i]); $deletequery = new query($db, $sql1); if ($menuid != "0" and $menuid != 0 and $menuid != "") { $sql2 = "DELETE FROM sitemap WHERE MENU_ID = $menuid"; $sql3 = "DELETE FROM sitepage_names WHERE SPID = " . $destroyArray[$i]; $sql4 = "DELETE FROM sitepage_owner WHERE SPID = " . $destroyArray[$i]; $deletequery = new query($db, $sql3); $deletequery = new query($db, $sql4); $deletequery = new query($db, $sql2); } $deletequery->free(); } } else { // pages und cluster for ($i = 0; $i < count($destroyArray); $i++) { for ($j = 0; $j < count($variations); $j++) { expireSitepage($destroyArray[$i], 10, $variations[$j]); } $clnid = getDBCell("sitepage", "CLNID", "SPID = $destroyArray[$i]"); // only delete cluster if it is not used as channel article. if (!getDBCell("channel_articles", "CHID", "ARTICLE_ID = ".$clnid)) { $usage = 0; $usage += countRows("sitepage", "CLNID", "CLNID = $clnid AND DELETED=0"); $usage += countRows("cluster_content", "FKID", "FKID = $clnid"); $usage += countRows("cluster_template_items", "FDIK", "FKID = $clnid"); if ($usage < 2) { $sql = "UPDATE cluster_node SET DELETED = 1 WHERE CLNID = $clnid"; $query = new query($db, $sql); } } $sql1 = "DELETE FROM sitepage WHERE SPID = $destroyArray[$i]"; $menuid = getDBCell("sitepage", "MENU_ID", "SPID = " . $destroyArray[$i]); $deletequery = new query($db, $sql1); if ($menuid != "0" and $menuid != 0 and $menuid != "") { $sql2 = "DELETE FROM sitemap WHERE MENU_ID = $menuid"; $sql3 = "DELETE FROM sitepage_names WHERE SPID = " . $destroyArray[$i]; $sql4 = "DELETE FROM sitepage_owner WHERE SPID = " . $destroyArray[$i]; $deletequery = new query($db, $sql3); $deletequery = new query($db, $sql4); $deletequery = new query($db, $sql2); } $deletequery->free(); } } } sortTableRows("sitemap", "MENU_ID", "POSITION", "PARENT_ID = $parentId"); } }
$selch->tipp = $lang->get("help_articles", "The form displays articles.<br><br>The color codes are:<li>red: article not published<li>grey: article not translated<li>green: article published"); $rowOrderFilter = "VERSION=0 AND CHID=" . $selch->selected; if (value("action") == "up") { $article = value("article", "NUMERIC"); moveRowUp("channel_articles", "ARTICLE_ID", $article, "POSITION", $rowOrderFilter); } else { if (value("action") == "down") { $article = value("article", "NUMERIC"); moveRowDown("channel_articles", "ARTICLE_ID", $article, "POSITION", $rowOrderFilter); } } $filtermenu = new StdMenu(""); require_once $c["path"] . "modules/channels/menu.inc.php"; $oid = value("oid", "NUMERIC"); if ($selch->selected != "0" && $selch->selected != "-1" && $selch->selected != 0) { sortTableRows("channel_articles", "ARTICLE_ID", "POSITION", $rowOrderFilter); $form = new ArticleSelectForm($selch->selected); $form->newAction = "modules/channels/edit.php?sid={$sid}&action=createarticle"; $form->buttonbar->setVariationSelector(getChannelVariations($selch->selected), variation()); $form->editAction = $c["docroot"] . "modules/channels/edit.php"; $form->addFilterRule($lang->get("name"), "ca.TITLE"); $form->addFilterRule($lang->get("category"), "cc.NAME", "LEFT JOIN channel_categories cc ON cc.CH_CAT_ID = ca.CH_CAT_ID"); $form->addFilterRule($lang->get("Author"), "cv.LAST_USER"); // preparation for adding a "grab from Multipage"-Button $grabAction = "modules/channels/wz_import.php?sid={$sid}"; $form->buttonbar->add("new", $lang->get("channel_importarticles", "Import articles"), "button", "document.location.href='" . $c["docroot"] . $grabAction . "';", "navelement"); $page->add($form); } // SELECT `channel_articles`.* FROM channel_categories, channel_articles WHERE ((`channel_categories`.`NAME` = 'Erfolge') AND (`channel_articles`.`CH_CAT_ID` = channel_categories.CH_CAT_ID)) $page->addMenu($selch); $page->addMenu($filtermenu);