nodeapi_example.install in Examples for Developers 7
Same filename and directory in other branches
Install, update and uninstall functions for the nodeapi_example module.
File
nodeapi_example/nodeapi_example.installView source
<?php
/**
* @file
* Install, update and uninstall functions for the nodeapi_example module.
*/
/**
* Implements hook_schema().
*
* @ingroup nodeapi_example
*/
function nodeapi_example_schema() {
$schema['nodeapi_example'] = array(
'description' => 'Stores information of extended content.',
'fields' => array(
'nid' => array(
'description' => 'Node ID that the rating is applied to.',
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'vid' => array(
'description' => 'Revision ID, as we are tracking rating with node revisions',
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'rating' => array(
'description' => 'The rating of the node.',
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
),
'primary key' => array(
'vid',
),
'indexes' => array(
'nid' => array(
'nid',
),
),
);
return $schema;
}
/**
* Implements hook_uninstall().
*
* We need to clean up our variables data when uninstalling our module.
*
* Our implementation of nodeapi_example_form_alter() automatically
* creates a nodeapi_example_node_type_<contentType> variable for each node type
* the user wants to rate.
*
* To delete our variables we call variable_del for our variables'
* namespace, 'nodeapi_example_node_type_'. Note that an average module would
* have known variables that it had created, and it could just delete those
* explicitly. For example, see render_example_uninstall(). It's important
* not to delete variables that might be owned by other modules, so normally
* we would just explicitly delete a set of known variables.
*
* hook_uninstall() will only be called when uninstalling a module, not when
* disabling a module. This allows our data to stay in the database if the user
* only disables our module without uninstalling it.
*
* @ingroup nodeapi_example
*/
function nodeapi_example_uninstall() {
// Simple DB query to get the names of our variables.
$results = db_select('variable', 'v')
->fields('v', array(
'name',
))
->condition('name', 'nodeapi_example_node_type_%', 'LIKE')
->execute();
// Loop through and delete each of our variables.
foreach ($results as $result) {
variable_del($result->name);
}
}
Functions
Name | Description |
---|---|
nodeapi_example_schema | Implements hook_schema(). |
nodeapi_example_uninstall | Implements hook_uninstall(). |