You are here

pathauto_user.inc in Pathauto 6

Same filename and directory in other branches
  1. 5.2 pathauto_user.inc
  2. 5 pathauto_user.inc

Hook implementations for user module integration.

File

pathauto_user.inc
View source
<?php

/**
 * @file
 * Hook implementations for user module integration.
 *
 * @ingroup pathauto
 */

/**
 * Implements hook_pathauto().
 */
function user_pathauto($op) {
  switch ($op) {
    case 'settings':
      $settings = array();
      $settings['module'] = 'user';
      $settings['token_type'] = 'user';
      $settings['groupheader'] = t('User paths');
      $settings['patterndescr'] = t('Pattern for user account page paths');
      $settings['patterndefault'] = 'users/[user-raw]';
      $patterns = token_get_list('user');
      foreach ($patterns as $type => $pattern_set) {
        if ($type != 'global') {
          foreach ($pattern_set as $pattern => $description) {
            $settings['placeholders']['[' . $pattern . ']'] = $description;
          }
        }
      }
      $settings['bulkname'] = t('Bulk generate aliases for users that are not aliased');
      $settings['bulkdescr'] = t('Generate aliases for all existing user account pages which do not already have aliases.');
      return (object) $settings;
    default:
      break;
  }
}

/**
 * Implements hook_pathauto().
 */
function blog_pathauto($op) {
  switch ($op) {
    case 'settings':
      $settings = array();
      $settings['module'] = 'blog';
      $settings['token_type'] = 'user';
      $settings['groupheader'] = t('Blog paths');
      $settings['patterndescr'] = t('Pattern for blog page paths');
      $settings['patterndefault'] = 'blogs/[user-raw]';
      $patterns = token_get_list('user');
      foreach ($patterns['user'] as $pattern => $description) {
        $settings['placeholders']['[' . $pattern . ']'] = $description;
      }
      $settings['supportsfeeds'] = 'feed';
      $settings['bulkname'] = t('Bulk generate aliases for blogs that are not aliased');
      $settings['bulkdescr'] = t('Generate aliases for all existing blog pages which do not already have aliases.');
      return (object) $settings;
    default:
      break;
  }
}

/**
 * Implementation of hook_pathauto() for user-tracker aliases.
 */
function tracker_pathauto($op) {
  switch ($op) {
    case 'settings':
      $settings = array();
      $settings['module'] = 'tracker';
      $settings['token_type'] = 'user';
      $settings['groupheader'] = t('User tracker paths');
      $settings['patterndescr'] = t('Pattern for user-tracker page paths');
      $settings['patterndefault'] = 'users/[user-raw]/track';
      $patterns = token_get_list('user');
      foreach ($patterns['user'] as $pattern => $description) {
        $settings['placeholders']['[' . $pattern . ']'] = $description;
      }
      $settings['supportsfeeds'] = 'feed';
      $settings['bulkname'] = t('Bulk generate aliases for user-tracker paths that are not aliased');
      $settings['bulkdescr'] = t('Generate aliases for all existing user-tracker pages which do not already have aliases.');
      return (object) $settings;
    default:
      break;
  }
}

/**
 * Implements hook_pathauto().
 */
function contact_pathauto($op) {
  switch ($op) {
    case 'settings':
      $settings = array();
      $settings['module'] = 'contact';
      $settings['token_type'] = 'user';
      $settings['groupheader'] = t('User contact forms paths');
      $settings['patterndescr'] = t('Pattern for the user contact form paths');
      $settings['patterndefault'] = 'users/[user-raw]/contact';
      $patterns = token_get_list('user');
      foreach ($patterns['user'] as $pattern => $description) {
        $settings['placeholders']['[' . $pattern . ']'] = $description;
      }
      $settings['bulkname'] = t('Bulk generate aliases for user contact form paths that are not aliased');
      $settings['bulkdescr'] = t('Generate aliases for all existing user contact form pages which do not already have aliases.');
      return (object) $settings;
    default:
      break;
  }
}

/**
 * Bulk generate aliases for all users without aliases.
 */
function user_pathauto_bulkupdate() {
  $concat = _pathauto_sql_concat("'user/'", 'u.uid');
  $sql = "SELECT u.uid FROM {users} u LEFT JOIN {url_alias} ua ON {$concat} = ua.src WHERE u.uid > 0 AND ua.src IS NULL";
  $query = db_query_range($sql, 0, variable_get('pathauto_max_bulk_update', 50));
  $count = 0;
  $placeholders = array();
  while ($uid = db_result($query)) {
    $account = user_load($uid);
    $placeholders = pathauto_get_placeholders('user', $account);
    $source = 'user/' . $account->uid;
    if (pathauto_create_alias('user', 'bulkupdate', $placeholders, $source, $account->uid)) {
      $count++;
    }
  }
  drupal_set_message(format_plural($count, 'Bulk generation of users completed, one alias generated.', 'Bulk generation of users completed, @count aliases generated.'));
}

/**
 * Bulk generate aliases for all blogs without aliases.
 */
function blog_pathauto_bulkupdate() {
  $concat = _pathauto_sql_concat("'blog/'", 'u.uid');
  $sql = "SELECT u.uid FROM {users} u LEFT JOIN {url_alias} ua ON {$concat} = ua.src WHERE u.uid > 0 AND ua.src IS NULL";
  $query = db_query_range($sql, 0, variable_get('pathauto_max_bulk_update', 50));
  $count = 0;
  $placeholders = array();
  while ($uid = db_result($query)) {
    $account = user_load($uid);
    $placeholders = pathauto_get_placeholders('user', $account);
    $source = 'blog/' . $account->uid;
    if (pathauto_create_alias('blog', 'bulkupdate', $placeholders, $source, $account->uid)) {
      $count++;
    }
  }
  drupal_set_message(format_plural($count, 'Bulk generation of user blogs completed, one alias generated.', 'Bulk generation of user blogs completed, @count aliases generated.'));
}

/**
 * Bulk generate aliases for user trackers without aliases.
 */
function tracker_pathauto_bulkupdate() {
  $concat = _pathauto_sql_concat("'user/'", 'u.uid', "'/track'");
  $sql = "SELECT u.uid FROM {users} u LEFT JOIN {url_alias} ua ON {$concat} = ua.src WHERE u.uid > 0 AND ua.src IS NULL";
  $query = db_query_range($sql, 0, variable_get('pathauto_max_bulk_update', 50));
  $count = 0;
  $placeholders = array();
  while ($uid = db_result($query)) {
    $account = user_load($uid);
    $placeholders = pathauto_get_placeholders('user', $account);
    $src = 'user/' . $account->uid . '/track';
    if (pathauto_create_alias('tracker', 'bulkupdate', $placeholders, $src, $account->uid)) {
      $count++;
    }
  }
  drupal_set_message(format_plural($count, 'Bulk generation of user tracker pages completed, one alias generated.', 'Bulk generation of user tracker pages completed, @count aliases generated.'));
}

/**
 * Bulk generate aliases for all users without aliases
 */
function contact_pathauto_bulkupdate() {
  $sql = "SELECT u.uid FROM {users} u LEFT JOIN {url_alias} ua ON CONCAT(CONCAT('user/', CAST(u.uid AS CHAR)), '/contact') = ua.src WHERE u.uid > 0 AND ua.src IS NULL";
  $query = db_query_range($sql, 0, variable_get('pathauto_max_bulk_update', 50));
  $count = 0;
  $placeholders = array();
  while ($uid = db_result($query)) {
    $account = user_load($uid);
    $placeholders = pathauto_get_placeholders('user', $account);
    $source = 'user/' . $account->uid . '/contact';
    if (pathauto_create_alias('contact', 'bulkupdate', $placeholders, $source, $account->uid)) {
      $count++;
    }
  }
  drupal_set_message(format_plural($count, 'Bulk generation of contact pages completed, one alias generated.', 'Bulk generation of contact pages completed, @count aliases generated.'));
}

Related topics

Functions

Namesort descending Description
blog_pathauto Implements hook_pathauto().
blog_pathauto_bulkupdate Bulk generate aliases for all blogs without aliases.
contact_pathauto Implements hook_pathauto().
contact_pathauto_bulkupdate Bulk generate aliases for all users without aliases
tracker_pathauto Implementation of hook_pathauto() for user-tracker aliases.
tracker_pathauto_bulkupdate Bulk generate aliases for user trackers without aliases.
user_pathauto Implements hook_pathauto().
user_pathauto_bulkupdate Bulk generate aliases for all users without aliases.