annotate sites/all/modules/pathauto/pathauto.install @ 0:ff03f76ab3fe

initial version
author danieleb <danielebarchiesi@me.com>
date Wed, 21 Aug 2013 18:51:11 +0100
parents
children
rev   line source
danielebarchiesi@0 1 <?php
danielebarchiesi@0 2
danielebarchiesi@0 3 /**
danielebarchiesi@0 4 * @file
danielebarchiesi@0 5 * Install, update, and uninstall functions for Pathauto.
danielebarchiesi@0 6 *
danielebarchiesi@0 7 * @ingroup pathauto
danielebarchiesi@0 8 */
danielebarchiesi@0 9
danielebarchiesi@0 10 /**
danielebarchiesi@0 11 * Implements hook_install().
danielebarchiesi@0 12 */
danielebarchiesi@0 13 function pathauto_install() {
danielebarchiesi@0 14 // Set some default variables necessary for the module to perform.
danielebarchiesi@0 15 variable_set('pathauto_node_pattern', 'content/[node:title]');
danielebarchiesi@0 16 variable_set('pathauto_taxonomy_term_pattern', '[term:vocabulary]/[term:name]');
danielebarchiesi@0 17 variable_set('pathauto_forum_pattern', '[term:vocabulary]/[term:name]');
danielebarchiesi@0 18 variable_set('pathauto_user_pattern', 'users/[user:name]');
danielebarchiesi@0 19 variable_set('pathauto_blog_pattern', 'blogs/[user:name]');
danielebarchiesi@0 20
danielebarchiesi@0 21 // Set the default separator character to replace instead of remove (default).
danielebarchiesi@0 22 variable_set('pathauto_punctuation_hyphen', 1);
danielebarchiesi@0 23
danielebarchiesi@0 24 // Set the weight to 1
danielebarchiesi@0 25 db_update('system')
danielebarchiesi@0 26 ->fields(array('weight' => 1))
danielebarchiesi@0 27 ->condition('type', 'module')
danielebarchiesi@0 28 ->condition('name', 'pathauto')
danielebarchiesi@0 29 ->execute();
danielebarchiesi@0 30 }
danielebarchiesi@0 31
danielebarchiesi@0 32 /**
danielebarchiesi@0 33 * Implements hook_uninstall().
danielebarchiesi@0 34 */
danielebarchiesi@0 35 function pathauto_uninstall() {
danielebarchiesi@0 36 // Delete all the pathauto variables and then clear the variable cache.
danielebarchiesi@0 37 db_query("DELETE FROM {variable} WHERE name LIKE 'pathauto_%'");
danielebarchiesi@0 38 cache_clear_all('variables', 'cache');
danielebarchiesi@0 39 }
danielebarchiesi@0 40
danielebarchiesi@0 41 /**
danielebarchiesi@0 42 * Remove the unsupported user/%/contact and user/%/tracker pattern variables.
danielebarchiesi@0 43 */
danielebarchiesi@0 44 function pathauto_update_6200() {
danielebarchiesi@0 45 variable_del('pathauto_contact_bulkupdate');
danielebarchiesi@0 46 variable_del('pathauto_contact_pattern');
danielebarchiesi@0 47 variable_del('pathauto_contact_supportsfeeds');
danielebarchiesi@0 48 variable_del('pathauto_contact_applytofeeds');
danielebarchiesi@0 49 variable_del('pathauto_tracker_bulkupdate');
danielebarchiesi@0 50 variable_del('pathauto_tracker_pattern');
danielebarchiesi@0 51 variable_del('pathauto_tracker_supportsfeeds');
danielebarchiesi@0 52 variable_del('pathauto_tracker_applytofeeds');
danielebarchiesi@0 53 }
danielebarchiesi@0 54
danielebarchiesi@0 55 /**
danielebarchiesi@0 56 * Empty update since it is handled by pathauto_update_7000().
danielebarchiesi@0 57 */
danielebarchiesi@0 58 function pathauto_update_6201() {
danielebarchiesi@0 59 }
danielebarchiesi@0 60
danielebarchiesi@0 61 /**
danielebarchiesi@0 62 * Empty update since it is handled by pathauto_update_7004().
danielebarchiesi@0 63 */
danielebarchiesi@0 64 function pathauto_update_6202() {
danielebarchiesi@0 65 }
danielebarchiesi@0 66
danielebarchiesi@0 67 /**
danielebarchiesi@0 68 * Remove obsolete variables since batch API is now used.
danielebarchiesi@0 69 */
danielebarchiesi@0 70 function pathauto_update_7000() {
danielebarchiesi@0 71 variable_del('pathauto_max_bulk_update');
danielebarchiesi@0 72 variable_del('pathauto_node_bulkupdate');
danielebarchiesi@0 73 variable_del('pathauto_taxonomy_bulkupdate');
danielebarchiesi@0 74 variable_del('pathauto_forum_bulkupdate');
danielebarchiesi@0 75 variable_del('pathauto_user_bulkupdate');
danielebarchiesi@0 76 variable_del('pathauto_blog_bulkupdate');
danielebarchiesi@0 77 variable_del('pathauto_modulelist');
danielebarchiesi@0 78 variable_del('pathauto_indexaliases');
danielebarchiesi@0 79 variable_del('pathauto_indexaliases_bulkupdate');
danielebarchiesi@0 80 }
danielebarchiesi@0 81
danielebarchiesi@0 82 /**
danielebarchiesi@0 83 * Empty update since feed paths are no longer supported.
danielebarchiesi@0 84 */
danielebarchiesi@0 85 function pathauto_update_7001() {
danielebarchiesi@0 86 }
danielebarchiesi@0 87
danielebarchiesi@0 88 /**
danielebarchiesi@0 89 * Update pathauto_taxonomy_[vid]_pattern variables to pathauto_taxonomy_[machinename]_pattern.
danielebarchiesi@0 90 */
danielebarchiesi@0 91 function pathauto_update_7002() {
danielebarchiesi@0 92 if (module_exists('taxonomy')) {
danielebarchiesi@0 93 $vocabularies = taxonomy_get_vocabularies();
danielebarchiesi@0 94 foreach ($vocabularies as $vid => $vocabulary) {
danielebarchiesi@0 95 if ($vid == variable_get('forum_nav_vocabulary', '')) {
danielebarchiesi@0 96 // Skip the forum vocabulary.
danielebarchiesi@0 97 continue;
danielebarchiesi@0 98 }
danielebarchiesi@0 99 if ($pattern = variable_get('pathauto_taxonomy_' . $vid . '_pattern', '')) {
danielebarchiesi@0 100 variable_set('pathauto_taxonomy_' . $vocabulary->machine_name . '_pattern', $pattern);
danielebarchiesi@0 101 }
danielebarchiesi@0 102 variable_del('pathauto_taxonomy_' . $vid . '_pattern');
danielebarchiesi@0 103 }
danielebarchiesi@0 104 }
danielebarchiesi@0 105 }
danielebarchiesi@0 106
danielebarchiesi@0 107 /**
danielebarchiesi@0 108 * Rename 'taxonomy' variables to use the entity type 'taxonomy_term'.
danielebarchiesi@0 109 */
danielebarchiesi@0 110 function pathauto_update_7003() {
danielebarchiesi@0 111 $variables = db_select('variable', 'v')
danielebarchiesi@0 112 ->fields('v', array('name'))
danielebarchiesi@0 113 ->condition(db_and()
danielebarchiesi@0 114 ->condition('name', db_like("pathauto_taxonomy_") . '%', 'LIKE')
danielebarchiesi@0 115 ->condition('name', db_like("pathauto_taxonomy_term_") . '%', 'NOT LIKE')
danielebarchiesi@0 116 )
danielebarchiesi@0 117 ->execute()
danielebarchiesi@0 118 ->fetchCol();
danielebarchiesi@0 119 foreach ($variables as $variable) {
danielebarchiesi@0 120 $value = variable_get($variable);
danielebarchiesi@0 121 variable_del($variable);
danielebarchiesi@0 122 $variable = strtr($variable, array('pathauto_taxonomy_' => 'pathauto_taxonomy_term_'));
danielebarchiesi@0 123 variable_set($variable, $value);
danielebarchiesi@0 124 }
danielebarchiesi@0 125 }
danielebarchiesi@0 126
danielebarchiesi@0 127 /**
danielebarchiesi@0 128 * Remove obsolete variables for removed feed handling.
danielebarchiesi@0 129 */
danielebarchiesi@0 130 function pathauto_update_7004() {
danielebarchiesi@0 131 variable_del('pathauto_node_supportsfeeds');
danielebarchiesi@0 132 variable_del('pathauto_node_applytofeeds');
danielebarchiesi@0 133 variable_del('pathauto_taxonomy_supportsfeeds');
danielebarchiesi@0 134 variable_del('pathauto_taxonomy_applytofeeds');
danielebarchiesi@0 135 variable_del('pathauto_forum_supportsfeeds');
danielebarchiesi@0 136 variable_del('pathauto_forum_applytofeeds');
danielebarchiesi@0 137 variable_del('pathauto_user_supportsfeeds');
danielebarchiesi@0 138 variable_del('pathauto_user_applytofeeds');
danielebarchiesi@0 139 variable_del('pathauto_blog_supportsfeeds');
danielebarchiesi@0 140 variable_del('pathauto_blog_applytofeeds');
danielebarchiesi@0 141 }
danielebarchiesi@0 142
danielebarchiesi@0 143 /**
danielebarchiesi@0 144 * Fix original incorrect tokens in taxonomy and forum patterns.
danielebarchiesi@0 145 */
danielebarchiesi@0 146 function pathauto_update_7005() {
danielebarchiesi@0 147 $replacements = array(
danielebarchiesi@0 148 '[vocabulary:name]' => '[term:vocabulary]',
danielebarchiesi@0 149 '[vocabulary:' => '[term:vocabulary:',
danielebarchiesi@0 150 '[term:catpath]' => '[term:name]',
danielebarchiesi@0 151 '[term:path]' => '[term:name]',
danielebarchiesi@0 152 );
danielebarchiesi@0 153 $variables = db_select('variable', 'v')
danielebarchiesi@0 154 ->fields('v', array('name'))
danielebarchiesi@0 155 ->condition(db_or()
danielebarchiesi@0 156 ->condition('name', db_like("pathauto_taxonomy_term_") . '%' . db_like('pattern'), 'LIKE')
danielebarchiesi@0 157 ->condition('name', db_like("pathauto_forum_") . '%' . db_like('pattern'), 'LIKE')
danielebarchiesi@0 158 )
danielebarchiesi@0 159 ->execute()
danielebarchiesi@0 160 ->fetchCol();
danielebarchiesi@0 161 foreach ($variables as $variable) {
danielebarchiesi@0 162 if ($pattern = variable_get($variable)) {
danielebarchiesi@0 163 $pattern = strtr($pattern, $replacements);
danielebarchiesi@0 164 variable_set($variable, $pattern);
danielebarchiesi@0 165 }
danielebarchiesi@0 166 }
danielebarchiesi@0 167
danielebarchiesi@0 168 return 'Your Pathauto taxonomy and forum patterns have been corrected. You may wish to regenerate your taxonomy and forum term URL aliases.';
danielebarchiesi@0 169 }
danielebarchiesi@0 170
danielebarchiesi@0 171 /**
danielebarchiesi@0 172 * Build a list of Drupal 6 tokens and their Drupal 7 token names.
danielebarchiesi@0 173 */
danielebarchiesi@0 174 function _pathauto_upgrade_token_list() {
danielebarchiesi@0 175 $tokens = array(
danielebarchiesi@0 176 //'catpath' => 'node:term-lowest:parent:path][node:term-lowest',
danielebarchiesi@0 177 //'catalias' => 'node:term-lowest:path',
danielebarchiesi@0 178 //'termpath' => 'term:parent:path][term:name',
danielebarchiesi@0 179 //'termalias' => 'term:url:alias',
danielebarchiesi@0 180 //'bookpathalias' => 'node:book:parent:path',
danielebarchiesi@0 181 );
danielebarchiesi@0 182 }