private static function calculateId()
 {
     $dc = kDataCenterMgr::getCurrentDc();
     for ($i = 0; $i < 10; ++$i) {
         $id = $dc["id"] . '_' . kString::generateStringId();
         $existing_object = entryPeer::retrieveByPk($id);
         if (!$existing_object) {
             return $id;
         }
     }
     die;
 }
예제 #2
0
파일: entry.php 프로젝트: AdiTal/server
 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;
 }
예제 #3
0
 /**
  * Get the associated entry object
  *
  * @param      PropelPDO Optional Connection object.
  * @return     entry The associated entry object.
  * @throws     PropelException
  */
 public function getentry(PropelPDO $con = null)
 {
     if ($this->aentry === null && ($this->entry_id !== "" && $this->entry_id !== null)) {
         $this->aentry = entryPeer::retrieveByPk($this->entry_id);
         /* The following can be used additionally to
         		   guarantee the related object contains a reference
         		   to this object.  This level of coupling may, however, be
         		   undesirable since it could result in an only partially populated collection
         		   in the referenced object.
         		   $this->aentry->addassets($this);
         		 */
     }
     return $this->aentry;
 }
예제 #4
0
파일: asset.php 프로젝트: dozernz/server
 public function getentry(PropelPDO $con = null)
 {
     return entryPeer::retrieveByPk($this->entry_id);
 }