152 lines
3.8 KiB
Plaintext

<?php
/**
* @file
* Install and uninstall functions for the tabledrag example module.
*
* This file contains the functions required to perform install and
* uninstall operations.
*/
/**
* Implements hook_schema().
*
* This defines the database table which will hold the example item info.
*
* @ingroup tabledrag_example
*/
function tabledrag_example_schema() {
$schema['tabledrag_example'] = array(
'description' => 'Stores some entries for our tabledrag fun.',
'fields' => array(
'id' => array(
'description' => 'The primary identifier for each item',
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
),
'name' => array(
'description' => 'A name for this item',
'type' => 'varchar',
'length' => 32,
'not null' => TRUE,
'default' => '',
),
'description' => array(
'description' => 'A description for this item',
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
),
'itemgroup' => array(
'description' => 'The group this item belongs to',
'type' => 'varchar',
'length' => 32,
'not null' => TRUE,
'default' => '',
),
'weight' => array(
'description' => 'The sortable weight for this item',
'type' => 'int',
'length' => 11,
'not null' => TRUE,
'default' => 0,
),
'pid' => array(
'description' => 'The primary id of the parent for this item',
'type' => 'int',
'length' => 11,
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'depth' => array(
'description' => 'The depth of this item within the tree',
'type' => 'int',
'size' => 'small',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
),
'primary key' => array('id'),
);
return $schema;
}
/**
* Implements hook_install().
*
* This datafills the example item info which will be used in the example.
*
* @ingroup tabledrag_example
*/
function tabledrag_example_install() {
// Ensure translations don't break at install time.
$t = get_t();
// Insert some values into the database.
$rows = array(
array(
'name' => $t('Item One'),
'description' => $t('The first item'),
'itemgroup' => $t('Group1'),
),
array(
'name' => $t('Item Two'),
'description' => $t('The second item'),
'itemgroup' => $t('Group1'),
),
array(
'name' => $t('Item Three'),
'description' => $t('The third item'),
'itemgroup' => $t('Group1'),
),
array(
'name' => $t('Item Four'),
'description' => $t('The fourth item'),
'itemgroup' => $t('Group2'),
),
array(
'name' => $t('Item Five'),
'description' => $t('The fifth item'),
'itemgroup' => $t('Group2'),
),
array(
'name' => $t('Item Six'),
'description' => $t('The sixth item'),
'itemgroup' => $t('Group2'),
),
array(
'name' => $t('Item Seven'),
'description' => $t('The seventh item'),
'itemgroup' => $t('Group3'),
),
array(
'name' => $t('A Root Node'),
'description' => $t('This item cannot be nested under a parent item'),
'itemgroup' => $t('Group3'),
),
array(
'name' => $t('A Leaf Item'),
'description' => $t('This item cannot have child items'),
'itemgroup' => $t('Group3'),
),
);
if (db_table_exists('tabledrag_example')) {
foreach ($rows as $row) {
db_insert('tabledrag_example')->fields($row)->execute();
}
}
}
/**
* Implements hook_uninstall().
*
* This removes the example data when the module is uninstalled.
*
* @ingroup tabledrag_example
*/
function tabledrag_example_uninstall() {
db_drop_table('tabledrag_example');
}