123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- <?php
- /**
- * @file
- * Install, update, and uninstall functions for Pathauto.
- *
- * @ingroup pathauto
- */
- /**
- * Implements hook_install().
- */
- function pathauto_install() {
- // Set some default variables necessary for the module to perform.
- variable_set('pathauto_node_pattern', 'content/[node:title]');
- variable_set('pathauto_taxonomy_term_pattern', '[term:vocabulary]/[term:name]');
- variable_set('pathauto_forum_pattern', '[term:vocabulary]/[term:name]');
- variable_set('pathauto_user_pattern', 'users/[user:name]');
- variable_set('pathauto_blog_pattern', 'blogs/[user:name]');
- // Set the default separator character to replace instead of remove (default).
- variable_set('pathauto_punctuation_hyphen', 1);
- // Set the weight to 1
- db_update('system')
- ->fields(array('weight' => 1))
- ->condition('type', 'module')
- ->condition('name', 'pathauto')
- ->execute();
- }
- /**
- * Implements hook_uninstall().
- */
- function pathauto_uninstall() {
- // Delete all the pathauto variables and then clear the variable cache.
- db_query("DELETE FROM {variable} WHERE name LIKE 'pathauto_%'");
- cache_clear_all('variables', 'cache');
- }
- /**
- * Remove the unsupported user/%/contact and user/%/tracker pattern variables.
- */
- function pathauto_update_6200() {
- variable_del('pathauto_contact_bulkupdate');
- variable_del('pathauto_contact_pattern');
- variable_del('pathauto_contact_supportsfeeds');
- variable_del('pathauto_contact_applytofeeds');
- variable_del('pathauto_tracker_bulkupdate');
- variable_del('pathauto_tracker_pattern');
- variable_del('pathauto_tracker_supportsfeeds');
- variable_del('pathauto_tracker_applytofeeds');
- }
- /**
- * Empty update since it is handled by pathauto_update_7000().
- */
- function pathauto_update_6201() {
- }
- /**
- * Empty update since it is handled by pathauto_update_7004().
- */
- function pathauto_update_6202() {
- }
- /**
- * Remove obsolete variables since batch API is now used.
- */
- function pathauto_update_7000() {
- variable_del('pathauto_max_bulk_update');
- variable_del('pathauto_node_bulkupdate');
- variable_del('pathauto_taxonomy_bulkupdate');
- variable_del('pathauto_forum_bulkupdate');
- variable_del('pathauto_user_bulkupdate');
- variable_del('pathauto_blog_bulkupdate');
- variable_del('pathauto_modulelist');
- variable_del('pathauto_indexaliases');
- variable_del('pathauto_indexaliases_bulkupdate');
- }
- /**
- * Empty update since feed paths are no longer supported.
- */
- function pathauto_update_7001() {
- }
- /**
- * Update pathauto_taxonomy_[vid]_pattern variables to pathauto_taxonomy_[machinename]_pattern.
- */
- function pathauto_update_7002() {
- if (module_exists('taxonomy')) {
- $vocabularies = taxonomy_get_vocabularies();
- foreach ($vocabularies as $vid => $vocabulary) {
- if ($vid == variable_get('forum_nav_vocabulary', '')) {
- // Skip the forum vocabulary.
- continue;
- }
- if ($pattern = variable_get('pathauto_taxonomy_' . $vid . '_pattern', '')) {
- variable_set('pathauto_taxonomy_' . $vocabulary->machine_name . '_pattern', $pattern);
- }
- variable_del('pathauto_taxonomy_' . $vid . '_pattern');
- }
- }
- }
- /**
- * Rename 'taxonomy' variables to use the entity type 'taxonomy_term'.
- */
- function pathauto_update_7003() {
- $variables = db_select('variable', 'v')
- ->fields('v', array('name'))
- ->condition(db_and()
- ->condition('name', db_like("pathauto_taxonomy_") . '%', 'LIKE')
- ->condition('name', db_like("pathauto_taxonomy_term_") . '%', 'NOT LIKE')
- )
- ->execute()
- ->fetchCol();
- foreach ($variables as $variable) {
- $value = variable_get($variable);
- variable_del($variable);
- $variable = strtr($variable, array('pathauto_taxonomy_' => 'pathauto_taxonomy_term_'));
- variable_set($variable, $value);
- }
- }
- /**
- * Remove obsolete variables for removed feed handling.
- */
- function pathauto_update_7004() {
- variable_del('pathauto_node_supportsfeeds');
- variable_del('pathauto_node_applytofeeds');
- variable_del('pathauto_taxonomy_supportsfeeds');
- variable_del('pathauto_taxonomy_applytofeeds');
- variable_del('pathauto_forum_supportsfeeds');
- variable_del('pathauto_forum_applytofeeds');
- variable_del('pathauto_user_supportsfeeds');
- variable_del('pathauto_user_applytofeeds');
- variable_del('pathauto_blog_supportsfeeds');
- variable_del('pathauto_blog_applytofeeds');
- }
- /**
- * Fix original incorrect tokens in taxonomy and forum patterns.
- */
- function pathauto_update_7005() {
- $replacements = array(
- '[vocabulary:name]' => '[term:vocabulary]',
- '[vocabulary:' => '[term:vocabulary:',
- '[term:catpath]' => '[term:name]',
- '[term:path]' => '[term:name]',
- );
- $variables = db_select('variable', 'v')
- ->fields('v', array('name'))
- ->condition(db_or()
- ->condition('name', db_like("pathauto_taxonomy_term_") . '%' . db_like('pattern'), 'LIKE')
- ->condition('name', db_like("pathauto_forum_") . '%' . db_like('pattern'), 'LIKE')
- )
- ->execute()
- ->fetchCol();
- foreach ($variables as $variable) {
- if ($pattern = variable_get($variable)) {
- $pattern = strtr($pattern, $replacements);
- variable_set($variable, $pattern);
- }
- }
- return 'Your Pathauto taxonomy and forum patterns have been corrected. You may wish to regenerate your taxonomy and forum term URL aliases.';
- }
- /**
- * Build a list of Drupal 6 tokens and their Drupal 7 token names.
- */
- function _pathauto_upgrade_token_list() {
- $tokens = array(
- //'catpath' => 'node:term-lowest:parent:path][node:term-lowest',
- //'catalias' => 'node:term-lowest:path',
- //'termpath' => 'term:parent:path][term:name',
- //'termalias' => 'term:url:alias',
- //'bookpathalias' => 'node:book:parent:path',
- );
- }
|