class BrightcoveVideoEntityController in Brightcove Video Connect 7.6
Same name and namespace in other branches
- 7.7 brightcove.video.inc \BrightcoveVideoEntityController
Entity controller class for Brightcove video.
brightcove_video entities and videos in the Britghtcove cloud can (and will) get out of sync in the sense that there can be entities that are not in the Brightcove cloud and there can be videos in the cloud we don't have an entity for.
Hierarchy
- class \DrupalDefaultEntityController implements DrupalEntityControllerInterface
- class \EntityAPIController implements EntityAPIControllerRevisionableInterface
Expanded class hierarchy of BrightcoveVideoEntityController
1 string reference to 'BrightcoveVideoEntityController'
- brightcove_entity_info in ./
brightcove.module - Implements hook_entity_info().
File
- ./
brightcove.video.inc, line 15 - Brightcove video related functions.
View source
class BrightcoveVideoEntityController extends EntityAPIController {
/**
* {@inheritdoc}
*/
public function create(array $values = []) {
brightcove_load_lib();
// Add is_new property if it is not set.
$values += [
'is_new' => TRUE,
];
if (empty($values['client']) || !$values['client'] instanceof Entity) {
throw new Exception(t('Cannot create a brightcove_video entity without a client.'));
}
if (empty($values['video_id'])) {
$values['video'] = new \Brightcove\Object\Video\Video();
$values['video_id'] = NULL;
}
elseif ($video = brightcove_load_video($values['video_id'], $values['client'])) {
$values['video'] = $video;
$values['account_id'] = $values['client']->account_id;
$values['label'] = $video
->getName();
}
else {
throw new Exception(t('Failure to load the video @video with client @client', [
'@video' => $values['video_id'],
'@client' => $values['client']->bcid,
]));
}
// Add a Video object to the entity object.
brightcove_load_lib();
$video_entity = new Entity($values, $this->entityType);
return $video_entity;
}
/**
* {@inheritdoc}
*/
public function load($ids = [], $conditions = []) {
$entities = parent::load($ids, $conditions);
// Add the Video object to each entity object.
foreach ($entities as $key => $entity) {
if (empty($entity->video) || !$entity->video instanceof \Brightcove\Object\Video\Video) {
if (empty($entity->client) || !$entity->client instanceof Entity) {
$clients = brightcove_get_clients_by_account_id($entity->account_id);
$found_client = FALSE;
foreach ($clients as $client) {
if ($video = brightcove_load_video($entity->video_id, $client)) {
$entity->video = $video;
$entity->client = $client;
$found_client = TRUE;
break;
}
}
if (!$found_client) {
$video_id = $entity->video_id;
unset($entities[$key]);
watchdog('brightcove', 'Could not load the video @video_id.', [
'@video_id' => $video_id,
], WATCHDOG_WARNING);
}
}
else {
$entity->video = brightcove_load_video($entity->video_id, $entity->client);
}
}
$entity->label = $entity->video
->getName();
}
return $entities;
}
/**
* {@inheritdoc}
*/
public function save($entity, DatabaseTransaction $transaction = NULL) {
if (empty($entity->videoSaved)) {
$entity->video = brightcove_save_video($entity->video, $entity->client);
}
$entity->account_id = $entity->client->account_id;
if (empty($entity->video_id)) {
$entity->video_id = $entity->video
->getId();
}
return parent::save($entity, $transaction);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
BrightcoveVideoEntityController:: |
public | function |
Implements EntityAPIControllerInterface. Overrides EntityAPIController:: |
|
BrightcoveVideoEntityController:: |
public | function |
Overridden. Overrides EntityAPIController:: |
|
BrightcoveVideoEntityController:: |
public | function |
Implements EntityAPIControllerInterface. Overrides EntityAPIController:: |
|
DrupalDefaultEntityController:: |
protected | property | Whether this entity type should use the static cache. | |
DrupalDefaultEntityController:: |
protected | property | Static cache of entities, keyed by entity ID. | |
DrupalDefaultEntityController:: |
protected | property | Array of information about the entity. | |
DrupalDefaultEntityController:: |
protected | property | Entity type for this controller instance. | |
DrupalDefaultEntityController:: |
protected | property | Additional arguments to pass to hook_TYPE_load(). | |
DrupalDefaultEntityController:: |
protected | property | Name of the entity's ID field in the entity database table. | |
DrupalDefaultEntityController:: |
protected | property | Name of entity's revision database table field, if it supports revisions. | |
DrupalDefaultEntityController:: |
protected | property | The table that stores revisions, if the entity supports revisions. | |
DrupalDefaultEntityController:: |
protected | function | Attaches data to entities upon loading. | 4 |
DrupalDefaultEntityController:: |
protected | function | Gets entities from the static cache. | 1 |
DrupalDefaultEntityController:: |
protected | function | Stores entities in the static entity cache. | |
DrupalDefaultEntityController:: |
protected | function | Ensures integer entity IDs are valid. | |
DrupalDefaultEntityController:: |
protected | function | Callback for array_filter that removes non-integer IDs. | |
EntityAPIController:: |
protected | property | ||
EntityAPIController:: |
protected | property | ||
EntityAPIController:: |
protected | property | ||
EntityAPIController:: |
public | function |
Implements EntityAPIControllerInterface. Overrides EntityAPIControllerInterface:: |
|
EntityAPIController:: |
protected | function |
Overrides DrupalDefaultEntityController::buildQuery(). Overrides DrupalDefaultEntityController:: |
1 |
EntityAPIController:: |
public | function |
Implements EntityAPIControllerInterface. Overrides EntityAPIControllerInterface:: |
1 |
EntityAPIController:: |
public | function |
Implements EntityAPIControllerRevisionableInterface::deleteRevision(). Overrides EntityAPIControllerRevisionableInterface:: |
|
EntityAPIController:: |
public | function |
Implements EntityAPIControllerInterface. Overrides EntityAPIControllerInterface:: |
1 |
EntityAPIController:: |
public | function |
Implements EntityAPIControllerInterface. Overrides EntityAPIControllerInterface:: |
|
EntityAPIController:: |
public | function |
Implements EntityAPIControllerInterface. Overrides EntityAPIControllerInterface:: |
1 |
EntityAPIController:: |
public | function | Builds and executes the query for loading. | |
EntityAPIController:: |
protected | function | Renders a single entity property. | |
EntityAPIController:: |
public | function |
Overrides DrupalDefaultEntityController::resetCache(). Overrides DrupalDefaultEntityController:: |
1 |
EntityAPIController:: |
protected | function | Saves an entity revision. | |
EntityAPIController:: |
public | function |
Implements EntityAPIControllerInterface. Overrides EntityAPIControllerInterface:: |
1 |
EntityAPIController:: |
public | function |
Overridden. Overrides DrupalDefaultEntityController:: |
1 |