diff --git a/modules/hosting/alias/hosting_alias.drush.inc b/modules/hosting/alias/hosting_alias.drush.inc index 693d299..009d660 100644 --- a/modules/hosting/alias/hosting_alias.drush.inc +++ b/modules/hosting/alias/hosting_alias.drush.inc @@ -11,8 +11,9 @@ function drush_hosting_alias_pre_hosting_task() { $aliases = implode(',', hosting_alias_get_aliases($task->ref)); $task->context_options['aliases'] = ($aliases) ? $aliases : 'null'; - $redirection = db_result(db_query("SELECT redirection FROM {hosting_site_alias} WHERE vid=%d", $task->ref->vid)); - $task->context_options['redirection'] = ($redirection) ? $redirection : 'null'; + $result = db_fetch_object(db_query("SELECT redirection, main_url FROM {hosting_site_alias} WHERE vid=%d", $task->ref->vid)); + $task->context_options['redirection'] = ($result->redirection) ? $result->redirection : 'null'; + $task->context_options['main_url'] = ($result->main_url) ? $result->main_url : $task->ref->title; } } } @@ -26,5 +27,6 @@ function hosting_alias_drush_context_import($context, &$node) { if ($context->type == 'site') { $node->aliases = $context->aliases; $node->redirection = $context->redirection; + $node->main_url = $context->main_url; } } diff --git a/modules/hosting/alias/hosting_alias.install b/modules/hosting/alias/hosting_alias.install index 8e92515..0d5e10a 100644 --- a/modules/hosting/alias/hosting_alias.install +++ b/modules/hosting/alias/hosting_alias.install @@ -37,6 +37,11 @@ function hosting_alias_schema() { 'not null' => TRUE, 'default' => 0, ), + 'main_url' => array( + 'type' => 'varchar', + 'length' => 256, + 'not null' => TRUE, + ), ), 'indexes' => array( 'vid' => array('vid'), @@ -81,3 +86,11 @@ function hosting_alias_update_2() { return $ret; } +/** + * Add the redirection field. + */ +function hosting_alias_update_3() { + $ret = array(); + db_add_field($ret, 'hosting_site_alias', 'main_url', array( 'type' => 'varchar', 'length' => 256, 'not null' => TRUE)); + return $ret; +} \ No newline at end of file diff --git a/modules/hosting/alias/hosting_alias.module b/modules/hosting/alias/hosting_alias.module index f67c740..f980b0d 100644 --- a/modules/hosting/alias/hosting_alias.module +++ b/modules/hosting/alias/hosting_alias.module @@ -80,20 +80,33 @@ function hosting_alias_form_data(&$form) { '#weight' => 10, ); } - - $form['aliases'] = array( + $form['site_aliases'] = array( + '#type' => 'fieldset', + '#title' => t('Site Aliases'), + '#collapsible' => FALSE, + '#weight' => 10, + ); + $form['site_aliases']['aliases'] = array( '#type' => 'textarea', '#title' => t('Domain aliases'), '#description' => t('The site can also be accessed through these domain names, one per line.'), '#default_value' => implode("\n", (array) $form['#node']->aliases), '#weight' => 10, ); - $form['redirection'] = array( + $form['site_aliases']['redirection'] = array( '#type' => 'checkbox', - '#title' => t('Redirect domain aliases to main domain'), + '#title' => t('Redirect domain aliases to main URL'), '#default_value' => isset($form['#node']->redirection) ? $form['#node']->redirection : variable_get('hosting_alias_redirection', FALSE), '#weight' => 11, ); + $form['site_aliases']['main_url'] = array( + '#type' => 'textfield', + '#title' => t('Main URL'), + '#description' => t('The domain name to redirect domain aliases to.'), + '#default_value' => !empty($form['#node']->main_url) ? $form['#node']->main_url : $form['#node']->title, + '#size' => 40, + '#maxlength' => 255, + ); return $form; } } @@ -147,14 +160,14 @@ function hosting_alias_insert($node) { if (is_array($aliases)) { foreach ($aliases as $alias) { if (($alias = trim($alias)) && !in_array($alias, $automatic)) { - db_query("INSERT INTO {hosting_site_alias} (vid, nid, alias, automatic, redirection) VALUES (%d, %d, '%s', %d, %d)", $node->vid, $node->nid, $alias, HOSTING_ALIAS_CUSTOM, $node->redirection); + db_query("INSERT INTO {hosting_site_alias} (vid, nid, alias, automatic, redirection, main_url) VALUES (%d, %d, '%s', %d, %d, '%s')", $node->vid, $node->nid, $alias, HOSTING_ALIAS_CUSTOM, $node->redirection, $node->main_url); } } } if (sizeof($automatic)) { foreach ($automatic as $alias) { if (($alias = trim($alias)) && _hosting_valid_fqdn($alias)) { - db_query("INSERT INTO {hosting_site_alias} (vid, nid, alias, automatic, redirection) VALUES (%d, %d, '%s', %d, %d)", $node->vid, $node->nid, $alias, HOSTING_ALIAS_AUTOMATIC, $node->redirection); + db_query("INSERT INTO {hosting_site_alias} (vid, nid, alias, automatic, redirection, main_url) VALUES (%d, %d, '%s', %d, %d, '%s')", $node->vid, $node->nid, $alias, HOSTING_ALIAS_AUTOMATIC, $node->redirection, $node->main_url); } } } @@ -235,7 +248,9 @@ function hosting_alias_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) { // works since they are all set to the same in hook_insert(), // but we should return an associative alias => redirection // array instead - $additions['redirection'] = db_result(db_query("SELECT redirection FROM {hosting_site_alias} WHERE vid=%d", $node->vid)); + $result = db_fetch_object(db_query("SELECT redirection, main_url FROM {hosting_site_alias} WHERE vid=%d", $node->vid)); + $additions['redirection'] = $result->redirection; + $additions['main_url'] = $result->main_url; // Only retrieves custom aliases, as they are all that can be modified. $additions['aliases'] = hosting_alias_get_aliases($node, HOSTING_ALIAS_CUSTOM); return $additions; @@ -253,13 +268,20 @@ function hosting_alias_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) { '#value' => implode(', ', $links), '#weight' => 10, ); - $redirection = db_result(db_query("SELECT redirection FROM {hosting_site_alias} WHERE vid=%d", $node->vid)); + $result = db_fetch_object(db_query("SELECT redirection, main_url FROM {hosting_site_alias} WHERE vid=%d", $node->vid)); + $redirection = $result->redirection; $node->content['info']['redirection'] = array( '#type' => 'item', '#title' => t('Redirection'), '#value' => $redirection['redirection'] ? t('Yes') : t('No'), '#weight' => 10, ); + $node->content['info']['main_url'] = array( + '#type' => 'item', + '#title' => t('Main URL'), + '#value' => $result->main_url, + '#weight' => 11, + ); } break; }