/** * Implementation of hook_pathauto() for user-contact aliases */ function contact_pathauto($op) { switch ($op) { case 'settings': $settings = array(); $settings['module'] = 'contact'; $settings['groupheader'] = t('User-contact path settings'); $settings['patterndesc'] = t('Pattern for user-contact form paths'); $settings['patterndefault'] = t('user/[user]/contact'); $settings['placeholders'] = array( t('[user]') => t('The name of the user.'), t('[uid]') => t('The id number of the user.') ); $settings['bulkname'] = t('Bulk update user-contact form paths'); $settings['bulkdescr'] = t('Generate aliases for all existing user-contact forms which do not already have aliases.'); return (object) $settings; default: break; } } /** * Bulk generate aliases for user contacts without aliases */ function contact_pathauto_bulkupdate() { $query = "SELECT uid, name, src, dst FROM {users} LEFT JOIN {url_alias} ON CONCAT('user/', uid,'/contact') = src WHERE uid > 0 AND src IS NULL"; $result = db_query_range($query, 0, variable_get('pathauto_max_bulk_update', 50)); $count = 0; $placeholders = array(); while ($user = db_fetch_object($result)) { $placeholders = pathauto_get_placeholders('user', $user); $src = 'user/'.$user->uid.'/contact'; if ($alias = pathauto_create_alias('contact', 'bulkupdate', $placeholders, $src)) { $count++; } } drupal_set_message(format_plural($count, "Bulk update of user-contact forms completed, one alias generated.", "Bulk update of user-contact forms completed, @count aliases generated.")); }