allow to change content's default folder
This commit is contained in:
@@ -74,6 +74,8 @@ class Content extends BaseAction implements EventSubscriberInterface
|
||||
->save()
|
||||
;
|
||||
|
||||
$content->updateDefaultFolder($event->getDefaultFolder());
|
||||
|
||||
$event->setContent($content);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,6 +55,47 @@ class Content extends BaseContent
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
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();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new content.
|
||||
*
|
||||
* Here pre and post insert event are fired
|
||||
*
|
||||
* @param $defaultFolderId
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function create($defaultFolderId)
|
||||
{
|
||||
$con = Propel::getWriteConnection(ContentTableMap::DATABASE_NAME);
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
|
||||
{$myparent=$DEFAULT_FOLDER}
|
||||
{loop name="fold-parent" type="folder-tree" visible="*" folder="0"}
|
||||
<option value="{$ID}" style="padding-left: {3 + $LEVEL * 20}px" {if $myparent == $ID}selected="selected"{/if} {if $folder_id == $ID}disabled="disabled"{/if}>{$TITLE}</option>
|
||||
<option value="{$ID}" style="padding-left: {3 + $LEVEL * 20}px" {if $myparent == $ID}selected="selected"{/if}>{$TITLE}</option>
|
||||
{/loop }
|
||||
|
||||
</select>
|
||||
|
||||
Reference in New Issue
Block a user