1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?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');
- }
|