page_title.install in Page Title 6.2
Same filename and directory in other branches
The install file for Page Title allows the module to install (and uninstall) itself. This is required as this module uses its own table.
File
page_title.installView source
<?php
/**
* @file
* The install file for Page Title allows the module to install (and uninstall) itself. This is required as this module uses its own table.
*/
/**
* Implementation of hook_install().
*/
function page_title_install() {
drupal_install_schema('page_title');
drupal_set_message(t('Page Title has been installed. Please go to <strong>Admin > Site Configuration > Page title</strong> to configure the settings for your site, or !link', array(
'!link' => l(t('click here'), 'admin/settings/page-title'),
)));
}
/**
* Implementation of hook_schema().
*/
function page_title_schema() {
$schema['page_title'] = array(
'fields' => array(
'type' => array(
'type' => 'varchar',
'length' => 15,
'not null' => TRUE,
'default' => 'node',
),
'id' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'page_title' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
),
),
'primary key' => array(
'type',
'id',
),
);
return $schema;
}
/**
* Implementation of hook_update_n().
*/
function page_title_update_6200() {
$ret = array();
if (db_column_exists('page_title', 'id')) {
return $ret;
}
elseif (db_table_exists('page_title_temp') || db_table_exists('page_title_old')) {
drupal_set_message(t('Page Title cannot be updated until page_title_temp and/or page_title_old have been removed. Please manually remove these tables (if safe to do so), return to <a href="@update-php">update.php</a> and run the remaining updates.', array(
'@update-php' => base_path() . 'update.php?op=selection',
)), 'warning', FALSE);
return array(
'#abort' => array(
'success' => FALSE,
'query' => t('It seems page_title_temp or page_title_old tables are already present in your database, possibly from a previous update. Please remove these tables from your database.'),
),
);
}
db_create_table($ret, 'page_title_temp', array(
'fields' => array(
'type' => array(
'type' => 'varchar',
'length' => 15,
'not null' => TRUE,
'default' => 'node',
),
'id' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'page_title' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
),
),
'primary key' => array(
'type',
'id',
),
));
$ret[] = update_sql('INSERT INTO {page_title_temp} (id, page_title) SELECT nid, page_title FROM {page_title}');
db_rename_table($ret, 'page_title', 'page_title_old');
db_rename_table($ret, 'page_title_temp', 'page_title');
$display_settings = variable_get('page_title_display', array());
foreach ($display_settings as $type) {
if ($type) {
variable_set('page_title_type_' . $type . '_showfield', 1);
}
}
variable_del('page_title_display');
return $ret;
}
/**
* Implementation of hook_uninstall().
*/
function page_title_uninstall() {
drupal_uninstall_schema('page_title');
// Clear variables
variable_del('page_title_default');
variable_del('page_title_individual');
variable_del('page_title_front');
variable_del('page_title_blog');
variable_del('page_title_user');
variable_del('page_title_user_showfield');
variable_del('page_title_pager_pattern');
variable_del('page_title_forum_root_title');
variable_del('page_title_comment_reply');
variable_del('page_title_comment_child_reply');
// Clear the node specific variables
$types = node_get_types('names');
foreach ($types as $type => $name) {
variable_del("page_title_type_{$type}");
variable_del("page_title_type_{$type}_showfield");
}
// Clear the vocab specific variables
if (module_exists('taxonomy')) {
$vocabs = taxonomy_get_vocabularies();
foreach ($vocabs as $vid => $vocab) {
variable_del("page_title_vocab_{$vid}");
variable_del("page_title_vocab_{$vid}_showfield");
}
}
}
Functions
Name | Description |
---|---|
page_title_install | Implementation of hook_install(). |
page_title_schema | Implementation of hook_schema(). |
page_title_uninstall | Implementation of hook_uninstall(). |
page_title_update_6200 | Implementation of hook_update_n(). |