public function updateDefaultFolder($defaultFolderId) { // Allow uncategorized content (NULL instead of 0, to bypass delete cascade constraint) if ($defaultFolderId <= 0) { $defaultFolderId = NULL; } if ($defaultFolderId == $this->getDefaultFolderId()) { return; } ContentFolderQuery::create()->filterByContentId($this->getId())->update(array('DefaultFolder' => 0)); $contentFolder = ContentFolderQuery::create()->filterByContentId($this->getId())->filterByFolderId($defaultFolderId)->findOne(); if (null === $contentFolder) { $contentFolder = new ContentFolder(); $contentFolder->setContentId($this->getId())->setFolderId($defaultFolderId); } $contentFolder->setDefaultFolder(true)->save(); }
/** * Overload for the position management * @param Base\ContentFolder $contentFolder * @inheritdoc */ protected function doAddContentFolder($contentFolder) { parent::doAddContentFolder($contentFolder); $contentFolderPosition = ContentFolderQuery::create()->filterByFolderId($contentFolder->getFolderId())->orderByPosition(Criteria::DESC)->findOne(); $contentFolder->setPosition($contentFolderPosition !== null ? $contentFolderPosition->getPosition() + 1 : 1); }
/** * @inheritdoc */ protected function addCriteriaToPositionQuery(ContentFolderQuery $query) { $query->filterByFolderId($this->getFolderId()); }