123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- <?php
- /**
- * @file page_title.install
- *
- * Handles the install, uninstall and updating of Page Title
- */
- /**
- * Implements 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;
- }
- /**
- * Implements hook_update_n().
- */
- function page_title_update_6200() {
- $ret = array();
- if (db_column_exists('page_title', 'id')) {
- return $ret;
- }
- 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;
- }
- /**
- * Implements hook_update_n().
- * Rename all the Vocabulary settings to reference by the new Machine Name, rather than Vocab ID.
- */
- function page_title_update_7200() {
- $ret = array();
- // If taxonomy not enabled, do no further updates
- if (!module_exists('taxonomy')) {
- return $ret;
- }
- foreach (taxonomy_get_vocabularies() as $vocab) {
- $page_title_vocab_settings = variable_get("page_title_vocab_{$vocab->vid}", FALSE);
- $page_title_vocab_showfield = variable_get("page_title_vocab_{$vocab->vid}_showfield", FALSE);
- if ($page_title_vocab_settings) {
- variable_set("page_title_vocab_{$vocab->machine_name}", $page_title_vocab_settings);
- }
- if ($page_title_vocab_showfield) {
- variable_set("page_title_vocab_{$vocab->machine_name}_showfield", $page_title_vocab_showfield);
- }
- variable_del("page_title_vocab_{$vocab->vid}_showfield");
- variable_del("page_title_vocab_{$vocab->vid}");
- }
- return $ret;
- }
- /**
- * Implements hook_uninstall().
- */
- function page_title_uninstall() {
- // 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_type_get_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_{$vocab->machine_name}");
- variable_del("page_title_vocab_{$vocab->machine_name}_showfield");
- // Legacy delete - just in case the uninstall is happening befoer update 7200
- variable_del("page_title_vocab_{$vid}");
- variable_del("page_title_vocab_{$vid}_showfield");
- }
- }
- }
|