public function delete()
{
\Pimcore::getEventManager()->trigger("object.preDelete", $this);
// delete childs
if ($this->hasChilds([self::OBJECT_TYPE_OBJECT, self::OBJECT_TYPE_FOLDER, self::OBJECT_TYPE_VARIANT])) {
// delete also unpublished children
$unpublishedStatus = self::doHideUnpublished();
self::setHideUnpublished(false);
foreach ($this->getChilds([self::OBJECT_TYPE_OBJECT, self::OBJECT_TYPE_FOLDER, self::OBJECT_TYPE_VARIANT], true) as $value) {
$value->delete();
}
self::setHideUnpublished($unpublishedStatus);
}
// remove dependencies
$d = $this->getDependencies();
$d->cleanAllForElement($this);
// remove all properties
$this->getDao()->deleteAllProperties();
// remove all permissions
$this->getDao()->deleteAllPermissions();
$this->getDao()->delete();
// empty object cache
$this->clearDependentCache();
//set object to registry
\Zend_Registry::set("object_" . $this->getId(), null);
\Pimcore::getEventManager()->trigger("object.postDelete", $this);
}