entity_bundle_plugin.controller.inc in Entity bundle plugin 7
Entity base controller for EntityBundlePlugin.
File
entity_bundle_plugin.controller.inc
View source
<?php
class EntityBundlePluginEntityController extends EntityAPIController {
public function query($ids, $conditions, $revision_id = FALSE) {
$query = $this
->buildQuery($ids, $conditions, $revision_id);
$result = $query
->execute();
$result
->setFetchMode(PDO::FETCH_ASSOC);
$objects = array();
foreach ($result as $row) {
$row['is_new'] = FALSE;
$objects[] = $this
->create($row);
}
return $objects;
}
public function create(array $values = array()) {
if (!isset($values[$this->entityInfo['entity keys']['bundle']])) {
throw new Exception(t('No bundle provided to EntityBundlePluginEntityController::create().'));
}
$values += array(
'is_new' => TRUE,
);
ctools_include('plugins');
$class = ctools_plugin_load_class($this->entityInfo['module'], $this->entityInfo['bundle plugin']['plugin type'], $values[$this->entityInfo['entity keys']['bundle']], 'class');
if (!class_exists($class)) {
if (!empty($this->entityInfo['bundle plugin']['broken class'])) {
$class = $this->entityInfo['bundle plugin']['broken class'];
}
else {
throw new Exception(t('Trying to load an object with a broken plugin type @type', array(
'@type' => $values[$this->entityInfo['entity keys']['bundle']],
)));
}
}
return new $class($values, $this->entityType);
}
}
class EntityBundlePluginEntityControllerExportable extends EntityAPIControllerExportable {
public function query($ids, $conditions, $revision_id = FALSE) {
$query = $this
->buildQuery($ids, $conditions, $revision_id);
$result = $query
->execute();
$result
->setFetchMode(PDO::FETCH_ASSOC);
$objects = array();
foreach ($result as $row) {
$row['is_new'] = FALSE;
$objects[] = $this
->create($row);
}
return $objects;
}
public function create(array $values = array()) {
if (!isset($values[$this->entityInfo['entity keys']['bundle']])) {
throw new Exception(t('No bundle provided to EntityBundlePluginEntityControllerExportable::create().'));
}
$values += array(
'is_new' => TRUE,
);
ctools_include('plugins');
$class = ctools_plugin_load_class($this->entityInfo['module'], $this->entityInfo['bundle plugin']['plugin type'], $values[$this->entityInfo['entity keys']['bundle']], 'class');
if (!class_exists($class)) {
if (!empty($this->entityInfo['bundle plugin']['broken class'])) {
$class = $this->entityInfo['bundle plugin']['broken class'];
}
else {
throw new Exception(t('Trying to load an object with a broken plugin type @type', array(
'@type' => $values[$this->entityInfo['entity keys']['bundle']],
)));
}
}
return new $class($values, $this->entityType);
}
}
interface EntityBundlePluginValidableInterface {
public static function isValid();
}
interface EntityBundlePluginProvideFieldsInterface {
static function fields();
}