allow to change content's default folder
This commit is contained in:
@@ -74,6 +74,8 @@ class Content extends BaseAction implements EventSubscriberInterface
|
|||||||
->save()
|
->save()
|
||||||
;
|
;
|
||||||
|
|
||||||
|
$content->updateDefaultFolder($event->getDefaultFolder());
|
||||||
|
|
||||||
$event->setContent($content);
|
$event->setContent($content);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,6 +55,47 @@ class Content extends BaseContent
|
|||||||
return $this;
|
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)
|
public function create($defaultFolderId)
|
||||||
{
|
{
|
||||||
$con = Propel::getWriteConnection(ContentTableMap::DATABASE_NAME);
|
$con = Propel::getWriteConnection(ContentTableMap::DATABASE_NAME);
|
||||||
|
|||||||
@@ -102,7 +102,7 @@
|
|||||||
|
|
||||||
{$myparent=$DEFAULT_FOLDER}
|
{$myparent=$DEFAULT_FOLDER}
|
||||||
{loop name="fold-parent" type="folder-tree" visible="*" folder="0"}
|
{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 }
|
{/loop }
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
Reference in New Issue
Block a user