Example #1
0
    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;
    }
Example #2
0
 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;
 }
Example #3
0
    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;
    }