function eck__entity_type__info in Entity Construction Kit (ECK) 7.2
Same name and namespace in other branches
- 7.3 eck.entity_type.inc \eck__entity_type__info()
- 7 eck.entity_type.inc \eck__entity_type__info()
Generate the entity info for a specific entity.
Parameters
EntityType $entity_type: As returned by eck__entity_type__load().
1 call to eck__entity_type__info()
- eck_entity_info in ./
eck.module - Implements hook_entity_info().
File
- ./
eck.entity_type.inc, line 360 - ENTITY TYPE.
Code
function eck__entity_type__info($entity_type) {
module_load_include('inc', 'eck', 'eck.bundle');
$info = array();
$entity_type_label = $entity_type->label;
$entity_class = "Entity";
$controller_class = "EntityAPIController";
$info[$entity_type->name] = array(
'label' => t("@etl", array(
"@etl" => $entity_type_label,
)),
'base table' => "eck_{$entity_type->name}",
'entity class' => $entity_class,
'controller class' => $controller_class,
'form callback' => 'eck__entity__form',
'access callback' => 'eck__entity_access',
'module' => 'eck',
'fieldable' => TRUE,
'entity keys' => array(
'id' => 'id',
'bundle' => 'type',
),
'label callback' => 'eck__entity__label',
'uri callback' => 'eck__entity__uri',
// Bundles are defined by the entity types below.
'bundles' => array(),
// Bundle keys tell the FieldAPI how to extract information from the
// bundle objects.
'bundle keys' => array(
'bundle' => 'type',
),
// I guess we need at least one view mode for entity_view_modes (the module)
// to work.
'view modes' => array(
'full' => array(
'label' => t('Full'),
'custom settings' => FALSE,
),
'teaser' => array(
'label' => t('Teaser'),
'custom settings' => TRUE,
),
),
// Inline entity form module integration.
'inline entity form' => array(
'controller' => 'EckInlineEntityFormController',
),
'translation' => array(
'entity_translation' => array(
'class' => 'EntityTranslationECKHandler',
// This will be populated based on the bundles.
'path schemes' => array(
'default' => array(
'base path' => "{$entity_type->name}/%",
'path wildcard' => '%',
),
),
),
),
'view callback' => 'eck__entity__view_callback',
);
// Add title replacement support for translations.
if (isset($entity_type->properties['title'])) {
$info[$entity_type->name]['field replacement'] = array(
'title' => array(
'field' => array(
'type' => 'text',
'cardinality' => 1,
'translatable' => TRUE,
),
'instance' => array(
'label' => t('Title'),
'required' => TRUE,
'settings' => array(
'text_processing' => 0,
),
'widget' => array(
'weight' => -5,
),
),
),
);
}
$eck_path = eck__entity_type__path();
foreach (Bundle::loadByEntityType($entity_type) as $bundle) {
$bundle_label = $bundle->label;
$path = "{$eck_path}/{$entity_type->name}/{$bundle->name}";
// Provide a path scheme for the Entity Translation UI.
$info[$entity_type->name]['translation']['entity_translation']['path schemes'][$bundle->name] = array(
'base path' => "{$entity_type->name}/{$bundle->name}/%eckentity",
'translate path' => "{$entity_type->name}/{$bundle->name}/%eckentity/translate",
'path wildcard' => '%eckentity',
);
$info[$entity_type->name]['bundles'][$bundle->name] = array(
'label' => $bundle_label,
'admin' => array(
'path' => $path,
'access callback' => 'eck__multiple_access_check',
'access arguments' => array(
array(
'eck administer bundles',
'eck edit bundles',
"eck administer {$entity_type->name} bundles",
"eck edit {$entity_type->name} bundles",
),
),
),
'crud' => array(
'add' => array(
'path' => $path . "/add",
),
'edit' => array(
'path' => $path . "/%eckentity/edit",
'entity_id' => 5,
),
'delete' => array(
'path' => $path . "/%eckentity/delete",
'entity_id' => 5,
),
'view' => array(
'path' => "{$entity_type->name}/{$bundle->name}/%eckentity",
'entity_id' => 2,
),
),
);
}
return $info;
}