class EntityBundlePluginEntityControllerExportable in Entity bundle plugin 7
Hierarchy
- class \DrupalDefaultEntityController implements DrupalEntityControllerInterface
- class \EntityAPIController implements EntityAPIControllerRevisionableInterface
Expanded class hierarchy of EntityBundlePluginEntityControllerExportable
File
- ./
entity_bundle_plugin.controller.inc, line 55 - Entity base controller for EntityBundlePlugin.
View source
class EntityBundlePluginEntityControllerExportable extends EntityAPIControllerExportable {
/**
* Overrides EntityAPIControllerExportable::query().
*/
public function query($ids, $conditions, $revision_id = FALSE) {
$query = $this
->buildQuery($ids, $conditions, $revision_id);
$result = $query
->execute();
$result
->setFetchMode(PDO::FETCH_ASSOC);
// Build the resulting objects ourselves, since the standard PDO ways of
// doing that are completely useless.
$objects = array();
foreach ($result as $row) {
$row['is_new'] = FALSE;
$objects[] = $this
->create($row);
}
return $objects;
}
/**
* Overrides EntityAPIControllerExportable::create().
*/
public function create(array $values = array()) {
if (!isset($values[$this->entityInfo['entity keys']['bundle']])) {
throw new Exception(t('No bundle provided to EntityBundlePluginEntityControllerExportable::create().'));
}
// Add is_new property if it is not set.
$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);
}
}