/**
		 * 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");
		}
		
	}
Example #5
0
$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);