/**
  * Override the doSave function to do some custom tweaks.
  * @param PropelPDO $con
  */
 protected function doSave(PropelPDO $con)
 {
     if (!$this->getSlot()->isEditable() && $this->getPageId() == $this->getSlot()->getPageId()) {
         $slotConfigs = sfPlopSlotConfigPeer::retrieveDescendants($this->getSlotId(), $this->getPageId());
         if ($slotConfigs) {
             foreach ($slotConfigs as $slotConfig) {
                 if ($slotConfig->getId() != $this->getId()) {
                     $slotConfig->delete();
                 }
             }
         }
     }
     $this->getPage()->setUpdatedAt(time());
     $this->getPage()->save();
     return parent::doSave($con);
 }
示例#2
0
 /**
  * Override the doSave function to do some custom tweaks.
  * @param PropelPDO $con
  */
 protected function doSave(PropelPDO $con)
 {
     if (!$this->getPage()->isTemplate() && $this->isEditable() && !$this->getPage()->getTemplate()->hasSlotArea()) {
         $this->setIsEditable(false);
     }
     if (!$this->isNew() && !$this->isEditable()) {
         foreach (sfPlopSlotConfigPeer::retrieveDescendants($this->getId(), $this->getPageId()) as $slotConfig) {
             if ($slotConfig->getSlotId() != $this->getId()) {
                 $slotConfig->delete();
             }
         }
     }
     $this->getPage()->setUpdatedAt(time());
     $this->getPage()->save();
     return parent::doSave($con);
 }