? 361018-domain-token.patch
Index: domain.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/domain/domain.module,v
retrieving revision 1.94
diff -u -p -r1.94 domain.module
--- domain.module	21 Feb 2009 23:11:12 -0000	1.94
+++ domain.module	5 Mar 2009 19:37:39 -0000
@@ -1632,6 +1632,70 @@ function domain_content_extra_fields($ty
 }
 
 /**
+ * Implementation of hook_token_values().
+ */
+function domain_token_values($type, $object = NULL, $options = array()) {
+  global $_domain;
+  $default_domain = domain_default(FALSE);
+
+  // Current domain tokens.
+  if ($type == 'global') {
+  $tokens['domain-id'] = $_domain['domain_id'];
+  $tokens['domain-name'] = domain_url_encode($_domain['sitename']);
+  $tokens['domain-name-raw'] = check_plain($_domain['sitename']);
+  $tokens['domain-url'] = domain_url_encode($_domain['subdomain']);
+  $tokens['domain-url-raw'] = check_plain($_domain['subdomain']);
+  // Default domain
+  $tokens['domain-default-id'] = $default_domain['domain_id'];
+  $tokens['domain-default-name'] = domain_url_encode($default_domain['sitename']);
+  $tokens['domain-default-name-raw'] = check_plain($default_domain['sitename']);
+  $tokens['domain-default-url'] = domain_url_encode($default_domain['subdomain']);
+  $tokens['domain-default-url-raw'] = check_plain($default_domain['subdomain']);
+
+    return $tokens;
+  }
+}
+
+/**
+ * Implementation of hook_token_list().
+ */
+function domain_token_list($type = 'all') {
+  // Current domain tokens.
+  $tokens['domain']['domain-id'] = t('The current domain ID.');
+  $tokens['domain']['domain-name'] = t('The current domain name.');
+  $tokens['domain']['domain-name-raw'] = t('The current domain name. WARNING - raw user input. NOT path safe.');
+  $tokens['domain']['domain-url'] = t('The current domain\'s URL.');
+  $tokens['domain']['domain-url-raw'] = t('The current domain\'s URL. WARNING - raw user input. NOT path safe.');
+  // Default domain tokens.
+  $tokens['domain']['domain-default-id'] = t('The default domain ID.');
+  $tokens['domain']['domain-default-name'] = t('The default domain name.');
+  $tokens['domain']['domain-default-name-raw'] = t('The default domain name. WARNING - raw user input. NOT path safe.');
+  $tokens['domain']['domain-default-url'] = t('The default domain\'s URL.');
+  $tokens['domain']['domain-default-url-raw'] = t('The default domain\'s URL. WARNING - raw user input. NOT path safe.');
+
+  return $tokens;
+}
+
+/**
+ * Simple function to clean strings for use in for example paths.
+ */
+function domain_url_encode($string) {
+  $string = drupal_strtolower($string);
+
+  // Remove slashes.
+  $string = str_replace('/', '', $string);
+
+  // Reduce to the subset of ASCII96 letters and numbers - from Pathauto
+  $pattern = '/[^a-zA-Z0-9\/]+/ ';
+  $string = preg_replace($pattern, '', $string);
+
+  // Remove white space - from Pathauto
+  $string = preg_replace('/\s+/', '', $string);
+
+  return $string;
+}
+
+/**
  * Implements hook_simpletest()
  */
 function domain_simpletest() {
