Exemple #1
0
 public function save(PropelPDO $con = null)
 {
     $is_new = false;
     if ($this->isNew()) {
         $this->setId(self::calculateId());
         // start by setting the modified_at to the current time
         $this->setModifiedAt(time());
         $this->setModerationCount(0);
         if (is_null($this->getAccessControlId())) {
             $partner = $this->getPartner();
             if ($partner) {
                 $this->setAccessControlId($partner->getDefaultAccessControlId());
             }
         }
         // only media clips should increments - not roughcuts or backgrounds
         if ($this->type == entryType::MEDIA_CLIP) {
             myStatisticsMgr::addEntry($this);
         }
         $is_new = true;
     }
     if ($this->type == entryType::MIX) {
         // some of the properties should be copied to the kshow
         $kshow = $this->getkshow();
         if ($kshow) {
             $modified = false;
             if ($kshow->getRank() != $this->getRank()) {
                 $kshow->setRank($this->getRank());
                 $modified = true;
             }
             if ($kshow->getLengthInMsecs() != $this->getLengthInMsecs()) {
                 $kshow->setLengthInMsecs($this->getLengthInMsecs());
                 $modified = true;
             }
             if ($modified) {
                 $kshow->save();
             }
         } else {
             $this->log("entry [" . $this->getId() . "] does not have a real kshow with id [" . $this->getKshowId() . "]", Propel::LOG_WARNING);
         }
     }
     myPartnerUtils::setPartnerIdForObj($this);
     if ($this->getDisplayInSearch() != mySearchUtils::DISPLAY_IN_SEARCH_SYSTEM) {
         mySearchUtils::setDisplayInSearch($this);
     }
     ktagword::updateAdminTags($this);
     // same for puserId ...
     $this->getPuserId();
     // make sure this entry is saved before calling updateAllMetadataVersionsRelevantForEntry, since fixMetadata retrieves the entry from the DB
     // and checks its data path which was modified above.
     $res = parent::save($con);
     if ($is_new) {
         // when retrieving the entry - ignore thr filter - when in partner has moderate_content =1 - the entry will have status=3 and will fail the retrieveByPk
         entryPeer::setUseCriteriaFilter(false);
         $obj = entryPeer::retrieveByPk($this->getId());
         $this->setIntId($obj->getIntId());
         entryPeer::setUseCriteriaFilter(true);
     }
     if ($this->should_call_set_data_content) {
         // calling the funciton with null will cause it to use the $this->data_content
         $this->setDataContent(null);
         $res = parent::save($con);
     }
     // the fix should be done whether the status is READY or ERROR_CONVERTING
     if ($this->getStatus() == entryStatus::READY || $this->getStatus() == entryStatus::ERROR_CONVERTING) {
         // fire some stuff due to the new status
         $version_to_update = $this->getUpdateWhenReady();
         if ($version_to_update) {
             try {
                 myMetadataUtils::updateAllMetadataVersionsRelevantForEntry($this);
                 $this->resetUpdateWhenReady();
                 $res = parent::save($con);
             } catch (Exception $e) {
                 KalturaLog::err($e->getMessage());
             }
         }
     }
     $this->syncCategories();
     return $res;
 }