protected function internalFulfilled(kScope $scope) { if (!$scope instanceof kEventScope) { return false; } $event = $scope->getEvent(); if (!$event instanceof kObjectChangedEvent) { return false; } $trigerColumns = explode(',', $this->modifiedColumns); $modifiedColumns = $event->getModifiedColumns(); $object = $event->getObject(); if (method_exists($object, 'getCustomDataOldValues')) { $customDataOldValues = $object->getCustomDataOldValues(); foreach ($customDataOldValues as $customDataField => $customDataValue) { if ($customDataField) { $modifiedColumns[] = $customDataField; } } if (isset($customDataOldValues[''])) { foreach ($customDataOldValues[''] as $customDataField => $customDataValue) { $modifiedColumns[] = $customDataField; } } } $foundColumns = array_intersect($modifiedColumns, $trigerColumns); KalturaLog::debug("Triger columns [" . print_r($trigerColumns, true) . "]"); KalturaLog::debug("Found columns [" . print_r($foundColumns, true) . "]"); return count($foundColumns) > 0; }
public function getFieldValue(kScope $scope) { $profileId = $this->profileId; if (!$profileId) { if (!$this->profileSystemName) { KalturaLog::err("No metadata profile id and system-name supplied"); return null; } $profile = MetadataProfilePeer::retrieveBySystemName($this->profileSystemName, kCurrentContext::getCurrentPartnerId()); if (!$profile) { KalturaLog::notice("Metadata profile with system-name [{$this->profileSystemName}] not found"); return null; } $profileId = $profile->getId(); } $metadata = null; if ($scope instanceof accessControlScope || $scope instanceof kStorageProfileScope) { $metadata = MetadataPeer::retrieveByObject($profileId, MetadataObjectType::ENTRY, $scope->getEntryId()); } elseif ($scope instanceof kEventScope) { $object = $scope->getEvent()->getObject(); if (kMetadataManager::isMetadataObject($object)) { $objectType = kMetadataManager::getTypeNameFromObject($object); $metadata = MetadataPeer::retrieveByObject($profileId, $objectType, $object->getId()); } else { if ($object instanceof Metadata) { $metadata = $object; } elseif ($scope->getEvent()->getObject() instanceof categoryEntry) { $profileObject = kMetadataManager::getObjectTypeName($profile->getObjectType()); $getter = "get{$profileObject}Id"; KalturaLog::info("Using {$getter} in order to retrieve the metadata object ID"); $categoryEntry = $scope->getEvent()->getObject(); $objectId = $categoryEntry->{$getter}(); $metadata = MetadataPeer::retrieveByObject($profileId, $profile->getObjectType(), $objectId); } elseif ($object instanceof asset) { $metadata = MetadataPeer::retrieveByObject($profileId, MetadataObjectType::ENTRY, $object->getEntryId()); } } } if ($metadata) { return kMetadataManager::parseMetadataValues($metadata, $this->xPath); } KalturaLog::notice("Metadata object not found for scope [" . get_class($scope) . "]"); return null; }
protected function internalFulfilled(kScope $scope) { $profileId = $this->profileId; if (!$profileId) { if (!$this->profileSystemName) { return null; } $profile = MetadataProfilePeer::retrieveBySystemName($this->profileSystemName, kCurrentContext::getCurrentPartnerId()); if (!$profile) { return null; } $profileId = $profile->getId(); } $metadata = null; if ($scope instanceof accessControlScope) { $metadata = MetadataPeer::retrieveByObject($profileId, MetadataObjectType::ENTRY, $scope->getEntryId()); } elseif ($scope instanceof kEventScope && $scope->getEvent() instanceof kApplicativeEvent) { $object = $scope->getEvent()->getObject(); if ($object instanceof Metadata) { $metadata = $object; } elseif (kMetadataManager::isMetadataObject($object)) { $objectType = kMetadataManager::getTypeNameFromObject($object); $metadata = MetadataPeer::retrieveByObject($profileId, $objectType, $object->getId()); } } if (!$metadata) { return false; } if ($this->versionA) { $valuesA = kMetadataManager::parseMetadataValues($metadata, $this->xPath, $this->versionA); } $valuesB = kMetadataManager::parseMetadataValues($metadata, $this->xPath, $this->versionB); if (!$valuesA || !count($valuesA)) { //previous MD version does not exist $changedValues = $valuesB; } else { $changedValues = array_diff($valuesA, $valuesB); } return count($changedValues) > 0; }
public function getFieldValue(kScope $scope) { $profileId = $this->profileId; if (!$profileId) { if (!$this->profileSystemName) { return null; } $profile = MetadataProfilePeer::retrieveBySystemName($this->profileSystemName, kCurrentContext::getCurrentPartnerId()); if (!$profile) { return null; } $profileId = $profile->getId(); } $metadata = null; if ($scope instanceof accessControlScope || $scope instanceof kStorageProfileScope) { $metadata = MetadataPeer::retrieveByObject($profileId, MetadataObjectType::ENTRY, $scope->getEntryId()); } elseif ($scope instanceof kEventScope && $scope->getEvent() instanceof kApplicativeEvent) { $object = $scope->getEvent()->getObject(); if (kMetadataManager::isMetadataObject($object)) { $objectType = kMetadataManager::getTypeNameFromObject($object); $metadata = MetadataPeer::retrieveByObject($profileId, $objectType, $object->getId()); } else { if ($object instanceof Metadata) { $metadata = $object; } } } if (!$metadata) { return null; } $values = kMetadataManager::parseMetadataValues($metadata, $this->xPath); if (is_null($values)) { return null; } return array_map('intval', $values); }
protected function dispatchJob(kScope $scope, kEventNotificationDispatchJobData $jobData, $eventNotificationType = null) { $entryId = null; $parentJob = null; if ($scope instanceof kEventScope) { $event = $scope->getEvent(); if ($event instanceof kApplicativeEvent) { $parentJob = $event->getRaisedJob(); } $object = $scope->getObject(); if ($object instanceof entry) { $entryId = $object->getId(); } elseif (method_exists($object, 'getEntryId')) { $entryId = $object->getEntryId(); } } if (!$eventNotificationType) { $eventNotificationType = $this->getType(); } $job = $this->addEventNotificationDispatchJob($eventNotificationType, $jobData, $scope->getPartnerId(), $entryId, $parentJob); return $job->getId(); }