class CommerceDiscountControllerExportable in Commerce Discount 7
Controller for discount entities; Overrides CRUD operations.
Hierarchy
- class \DrupalDefaultEntityController implements DrupalEntityControllerInterface
- class \EntityAPIController implements EntityAPIControllerRevisionableInterface
Expanded class hierarchy of CommerceDiscountControllerExportable
1 string reference to 'CommerceDiscountControllerExportable'
- commerce_discount_entity_info in ./
commerce_discount.module - Implements hook_entity_info().
File
- includes/
commerce_discount.controller.inc, line 11 - The controller for the discount entity containing the CRUD operations.
View source
class CommerceDiscountControllerExportable extends EntityAPIControllerExportable {
/**
* {@inheritdoc}
*
* Override export, to allow embedding the commerce discount offer inside the
* export of the commerce discount.
*/
public function export($entity, $prefix = '') {
$vars = get_object_vars($entity);
// Add commerce_discount_offer full entity export.
$wrapper = entity_metadata_wrapper('commerce_discount', $entity);
$discount_offer = $wrapper->commerce_discount_offer
->value();
if (!empty($discount_offer)) {
unset($discount_offer->discount_offer_id);
$vars['commerce_discount_offer'] = get_object_vars($discount_offer);
}
unset($vars[$this->statusKey], $vars[$this->moduleKey], $vars['is_new']);
if ($this->nameKey != $this->idKey) {
unset($vars[$this->idKey]);
}
return entity_var_json_export($vars, $prefix);
}
/**
* Imports an entity from a string.
*
* @param string $export
* An exported entity as serialized string.
*
* @return object
* An entity object not yet saved.
*/
public function import($export) {
$entity = parent::import($export);
$discount_offer = $entity->commerce_discount_offer;
unset($entity->commerce_discount_offer);
$entity->commerce_discount_offer = array(
'commerce_discount_fields' => $discount_offer,
);
return $entity;
}
/**
* Overridden to handle embedded discount_offer update.
*/
public function save($entity, DatabaseTransaction $transaction = NULL) {
// If overwriting an existing discount, delete the referenced
// discount_offer.
$wrapper = entity_metadata_wrapper('commerce_discount', $entity);
if (!empty($entity->commerce_discount_offer['commerce_discount_fields'])) {
$wrapper->commerce_discount_offer
->delete();
$discount_offer = entity_create('commerce_discount_offer', $entity->commerce_discount_offer['commerce_discount_fields']);
$discount_offer
->save();
$wrapper->commerce_discount_offer
->set($discount_offer);
}
return parent::save($entity, $transaction);
}
/**
* Overridden to handle deletion of rules when a discount is deleted.
*/
public function delete($ids, DatabaseTransaction $transaction = NULL) {
parent::delete($ids, $transaction);
// Rebuild rules config.
entity_defaults_rebuild(array(
'rules_config',
));
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
CommerceDiscountControllerExportable:: |
public | function |
Overridden to handle deletion of rules when a discount is deleted. Overrides EntityAPIControllerExportable:: |
|
CommerceDiscountControllerExportable:: |
public | function |
Override export, to allow embedding the commerce discount offer inside the
export of the commerce discount. Overrides EntityAPIControllerExportable:: |
|
CommerceDiscountControllerExportable:: |
public | function |
Imports an entity from a string. Overrides EntityAPIController:: |
|
CommerceDiscountControllerExportable:: |
public | function |
Overridden to handle embedded discount_offer update. Overrides EntityAPIControllerExportable:: |
|
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 | 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:: |
public | function |
Implements EntityAPIControllerInterface. Overrides EntityAPIControllerInterface:: |
|
EntityAPIController:: |
public | function |
Implements EntityAPIControllerRevisionableInterface::deleteRevision(). Overrides EntityAPIControllerRevisionableInterface:: |
|
EntityAPIController:: |
public | function | Builds and executes the query for loading. | |
EntityAPIController:: |
protected | function | Renders a single entity property. | |
EntityAPIController:: |
protected | function | Saves an entity revision. | |
EntityAPIControllerExportable:: |
protected | property | ||
EntityAPIControllerExportable:: |
protected | property | ||
EntityAPIControllerExportable:: |
protected | function | ||
EntityAPIControllerExportable:: |
protected | function |
Overridden. Overrides DrupalDefaultEntityController:: |
|
EntityAPIControllerExportable:: |
protected | function |
Support loading by name key. Overrides EntityAPIController:: |
|
EntityAPIControllerExportable:: |
protected | function |
Overridden. Overrides DrupalDefaultEntityController:: |
|
EntityAPIControllerExportable:: |
protected | function | Like cacheGet() but keyed by name. | |
EntityAPIControllerExportable:: |
protected | function |
Overridden. Overrides DrupalDefaultEntityController:: |
|
EntityAPIControllerExportable:: |
public | function |
Overridden to care about reverted bundle entities and to skip Rules. Overrides EntityAPIController:: |
|
EntityAPIControllerExportable:: |
public | function |
Overridden to support passing numeric ids as well as names as $ids. Overrides EntityAPIController:: |
|
EntityAPIControllerExportable:: |
public | function |
Overrides DrupalDefaultEntityController::resetCache(). Overrides EntityAPIController:: |
|
EntityAPIControllerExportable:: |
public | function |
Implements EntityAPIControllerInterface. Overrides EntityAPIController:: |
|
EntityAPIControllerExportable:: |
public | function |
Overridden. Overrides EntityAPIController:: |