public function increaseIndent($args) { $pageId = (int) $args['pageId']; $page = DBUtil::selectObjectByID('content_page', $pageId); // Cannot indent topmost page if ($page['position'] == 0) { return true; } $parentPageId = $page['parentPageId']; $position = $page['position']; $dbtables = DBUtil::getTables(); $pageTable = $dbtables['content_page']; $pageColumn = $dbtables['content_page_column']; $where = "$pageColumn[parentPageId] = $parentPageId AND $pageColumn[position] = $position-1"; $previousPage = DBUtil::selectObject('content_page', $where); $thisPage = DBUtil::selectObjectByID('content_page', $pageId); if (!isset($previousPage['id']) || !isset($thisPage['urlname'])) { return LogUtil::registerError($this->__('Error! The indentation of this page cannot be increased.')); } $ok = $this->isUniqueUrlnameByParentID(array('urlname' => $thisPage['urlname'], 'parentId' => $previousPage['id'])); if (!$ok) { return LogUtil::registerError($this->__('Error! There is already another page registered with the supplied permalink URL.')); } $ok = $this->removePage(array('id' => $pageId)); if ($ok === false) { return false; } DBUtil::flushCache('content_page'); // Find new position (last in existing sub-pages) $sql = " SELECT MAX($pageColumn[position]) FROM $pageTable WHERE $pageColumn[parentPageId] = $previousPage[id]"; $newPosition = DBUtil::selectScalar($sql); if ($newPosition == null) { $newPosition = 0; } $ok = $this->insertPage(array('pageId' => $pageId, 'position' => $newPosition, 'parentPageId' => $previousPage['id'])); if ($ok === false) { return false; } /* $ok = $this->updateNestedSetValues(); if ($ok === false) return false; */ Content_Util::clearCache(); return true; }
protected function contentMoveContentDown($position, $contentAreaIndex, $pageId) { $table = DBUtil::getTables(); $contentTable = $table['content_content']; $contentColumn = $table['content_content_column']; $sql = "\n UPDATE {$contentTable}\n SET {$contentColumn['position']} = {$contentColumn['position']}+1\n WHERE {$contentColumn['pageId']} = {$pageId}\n AND {$contentColumn['areaIndex']} = {$contentAreaIndex}\n AND {$contentColumn['position']} >= {$position}"; DBUtil::executeSQL($sql); Content_Util::clearCache(); return true; }
protected function contentMoveContentDown($position, $contentAreaIndex, $pageId) { $table = DBUtil::getTables(); $contentTable = $table['content_content']; $contentColumn = $table['content_content_column']; $sql = " UPDATE $contentTable SET $contentColumn[position] = $contentColumn[position]+1 WHERE $contentColumn[pageId] = $pageId AND $contentColumn[areaIndex] = $contentAreaIndex AND $contentColumn[position] >= $position"; DBUtil::executeSQL($sql); Content_Util::clearCache(); return true; }