72 lines
2.1 KiB
Plaintext
72 lines
2.1 KiB
Plaintext
<?php
|
|
/**
|
|
* @file
|
|
* Install for a basic entity - need to create the base table for our entity.
|
|
* This table can have as many columns as you need to keep track of
|
|
* entity-specific data that will not be added via attached fields.
|
|
* The minimum information for the entity to work is an id and an entity name.
|
|
*/
|
|
|
|
/**
|
|
* Implements hook_schema().
|
|
*
|
|
* @ingroup entity_example
|
|
*/
|
|
function entity_example_schema() {
|
|
$schema = array();
|
|
|
|
// The name of the table can be any name we choose. However, namespacing the
|
|
// table with the module name is best practice.
|
|
$schema['entity_example_basic'] = array(
|
|
'description' => 'The base table for our basic entity.',
|
|
'fields' => array(
|
|
'basic_id' => array(
|
|
'description' => 'Primary key of the basic entity.',
|
|
'type' => 'serial',
|
|
'unsigned' => TRUE,
|
|
'not null' => TRUE,
|
|
),
|
|
// If we allow multiple bundles, then the schema must handle that;
|
|
// We'll put it in the 'bundle_type' field to avoid confusion with the
|
|
// entity type.
|
|
'bundle_type' => array(
|
|
'description' => 'The bundle type',
|
|
'type' => 'text',
|
|
'size' => 'medium',
|
|
'not null' => TRUE,
|
|
),
|
|
// Additional properties are just things that are common to all
|
|
// entities and don't require field storage.
|
|
'item_description' => array(
|
|
'description' => 'A description of the item',
|
|
'type' => 'varchar',
|
|
'length' => 255,
|
|
'not null' => TRUE,
|
|
'default' => '',
|
|
),
|
|
'created' => array(
|
|
'description' => 'The Unix timestamp of the entity creation time.',
|
|
'type' => 'int',
|
|
'not null' => TRUE,
|
|
'default' => 0,
|
|
),
|
|
),
|
|
'primary key' => array('basic_id'),
|
|
);
|
|
|
|
return $schema;
|
|
}
|
|
|
|
|
|
/**
|
|
* Implements hook_uninstall().
|
|
*
|
|
* At uninstall time we'll notify field.module that the entity was deleted
|
|
* so that attached fields can be cleaned up.
|
|
*
|
|
* @ingroup entity_example
|
|
*/
|
|
function entity_example_uninstall() {
|
|
field_attach_delete_bundle('entity_example_basic', 'first_example_bundle');
|
|
}
|