name) { if (module_exist('xtracker')) { $src = 'user/'.$user->uid; $query = 'SELECT dst FROM {url_alias} '. 'WHERE src = \'%d\''; $result = db_query($query, $src); $field = db_fetch_object($result); if(!$field->dst){ $placeholders = array(); $placeholders[t('[user]')] = pathauto_cleanstring($user->name); $placeholders[t('[uid]')] = $user->uid; $alias = pathauto_create_alias('user', $op, $placeholders, $src); } else { $alias = $field->dst; } path_set_alias($src.'/xtrack', $alias . '/' . pathauto_cleanstring(t('track'))); } } break; case 'delete': /* ** If the user is deleted, remove the path aliases ** */ if (module_exist('xtracker')) { path_set_alias('user/'.$user->uid.'/xtrack'); } break; default: break; } } function xtracker_pathauto($op) { switch ($op) { case 'settings': $settings = array(); $settings['module'] = 'xtracker'; $settings['groupheader'] = t('Xtracker path settings'); $settings['patterndescr'] = t('Pattern for Xtracker page paths'); $settings['patterndefault'] = t('xtracker/[typename]'); $settings['placeholders'] = array( t('[type]') => t('The node type.'), t('[typename]') => t('The name of the node type.'), ); $settings['bulkname'] = t('Bulk update xtracker paths'); $settings['bulkdescr'] = t('Generate aliases for all xtracker tabs which do not already have aliases. For the "my posts" tab, both placeholders use the username.'); return (object) $settings; default: break; } } // Generate aliases for all users without aliases function xtracker_pathauto_bulkupdate() { $count = 0; foreach (node_get_types() as $type => $name) { $placeholders = array(); $placeholders[t('[typename]')] = pathauto_cleanstring($name); $placeholders[t('[type]')] = $type; $src = 'xtracker/type/'.$type; path_set_alias($src); if ($alias = pathauto_create_alias('xtracker', 'bulkupdate', $placeholders, $src)) { $count++; } } // upadating 'my posts' $query = 'SELECT uid,name,src,dst FROM {users} '. "LEFT JOIN {url_alias} ON CONCAT('user/', uid) = src ". 'WHERE uid > 0'; $result = db_query($query); $user = db_fetch_object($result); while ($user) { $placeholders = array(); $placeholders[t('[typename]')] = pathauto_cleanstring($user->name); $placeholders[t('[type]')] = pathauto_cleanstring($user->name); $src = 'xtracker/uid/'.$user->uid; if ($alias = pathauto_create_alias('xtracker', 'bulkupdate', $placeholders, $src)) { $count++; } if(!$user->src){ $placeholders = array(); $placeholders[t('[user]')] = pathauto_cleanstring($user->name); $placeholders[t('[uid]')] = $user->uid; if ($alias = pathauto_create_alias('user', 'bulkupdate', $placeholders, $user->src)) { $count++; } } else { path_set_alias($user->src.'/xtrack', $user->dst.'/'.pathauto_cleanstring(t('track'))); $count++; } $user = db_fetch_object($result); } drupal_set_message(format_plural($count, "Bulk update of tracker pages completed, one alias generated.", "Bulk update of tracker pages completed, %count aliases generated.")); }