Skip to content
Snippets Groups Projects
Commit a011c4f7 authored by Tim Steiner's avatar Tim Steiner
Browse files

[gh-112] Merging from testing into staging

git-svn-id: file:///tmp/wdn_thm_drupal/branches/drupal-7.x/staging@594 20a16fea-79d4-4915-8869-1ea9d5ebf173
parent 33f915a1
No related branches found
No related tags found
No related merge requests found
...@@ -14,8 +14,10 @@ drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); ...@@ -14,8 +14,10 @@ drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
unl_remove_aliases(); unl_remove_aliases();
unl_remove_sites(); unl_remove_sites();
unl_remove_page_aliases();
unl_add_sites(); unl_add_sites();
unl_add_aliases(); unl_add_aliases();
unl_add_page_aliases();
function unl_add_sites() { function unl_add_sites() {
$query = db_query('SELECT * FROM {unl_sites} WHERE installed=0'); $query = db_query('SELECT * FROM {unl_sites} WHERE installed=0');
...@@ -114,6 +116,57 @@ function unl_remove_aliases() { ...@@ -114,6 +116,57 @@ function unl_remove_aliases() {
} }
} }
function unl_add_page_aliases() {
$query = db_select('unl_page_aliases', 'a');
$query->fields('a', array('page_alias_id', 'from_uri', 'to_uri'));
$query->condition('a.installed', 0);
$results = $query->execute()->fetchAll();
foreach ($results as $row) {
db_update('unl_page_aliases')
->fields(array('installed' => 1))
->condition('page_alias_id', $row->page_alias_id)
->execute();
if (unl_add_page_alias($row->from_uri, $row->to_uri, $row->page_alias_id)) {
db_update('unl_page_aliases')
->fields(array('installed' => 2))
->condition('page_alias_id', $row->page_alias_id)
->execute();
}
else {
db_update('unl_sites_aliases')
->fields(array('installed' => 5))
->condition('site_alias_id', $row->page_alias_id)
->execute();
}
}
}
function unl_remove_page_aliases() {
$query = db_select('unl_page_aliases', 'a');
$query->fields('a', array('page_alias_id'));
$query->condition('a.installed', 3);
$results = $query->execute()->fetchAll();
foreach ($results as $row) {
db_update('unl_page_aliases')
->fields(array('installed' => 4))
->condition('page_alias_id', $row->page_alias_id)
->execute();
if (unl_remove_page_alias($row->page_alias_id)) {
db_delete('unl_page_aliases')
->condition('page_alias_id', $row->page_alias_id)
->execute();
}
else {
db_update('unl_page_aliases')
->fields(array('installed' => 5))
->condition('page_alias_id', $row->page_alias_id)
->execute();
}
}
}
function _unl_get_sites_subdir($uri, $trim_subdomain = TRUE) { function _unl_get_sites_subdir($uri, $trim_subdomain = TRUE) {
$path_parts = parse_url($uri); $path_parts = parse_url($uri);
...@@ -251,6 +304,21 @@ function unl_remove_alias($base_uri, $path, $alias_id) { ...@@ -251,6 +304,21 @@ function unl_remove_alias($base_uri, $path, $alias_id) {
return TRUE; return TRUE;
} }
function unl_add_page_alias($from_uri, $to_uri, $alias_id) {
$host = parse_url($from_uri, PHP_URL_HOST);
$path = parse_url($from_uri, PHP_URL_PATH);
unl_add_page_alias_to_htaccess($alias_id, $host, $path, $to_uri);
return TRUE;
}
function unl_remove_page_alias($alias_id) {
unl_remove_page_alias_from_htaccess($alias_id);
return TRUE;
}
function unl_add_site_to_htaccess($site_id, $site_path, $is_alias) { function unl_add_site_to_htaccess($site_id, $site_path, $is_alias) {
if ($is_alias) { if ($is_alias) {
$site_or_alias = 'ALIAS'; $site_or_alias = 'ALIAS';
...@@ -301,6 +369,42 @@ function unl_remove_site_from_htaccess($site_id, $is_alias) { ...@@ -301,6 +369,42 @@ function unl_remove_site_from_htaccess($site_id, $is_alias) {
file_put_contents(DRUPAL_ROOT . '/.htaccess', $new_htaccess); file_put_contents(DRUPAL_ROOT . '/.htaccess', $new_htaccess);
} }
function unl_add_page_alias_to_htaccess($site_id, $host, $path, $to_uri) {
$stub_token = ' # %UNL_CREATION_TOOL_STUB%';
$htaccess = file_get_contents(DRUPAL_ROOT . '/.htaccess');
$stub_pos = strpos($htaccess, $stub_token);
if ($stub_pos === FALSE) {
return FALSE;
}
$new_htaccess = substr($htaccess, 0, $stub_pos)
. " # %UNL_START_PAGE_ALIAS_ID_{$site_id}%\n"
. " RewriteCond %{HTTP_HOST} ^{$host}$\n"
. " RewriteCond %{REQUEST_URI} ^{$path}$\n"
. " RewriteRule (.*) {$to_uri} [R,L]\n"
. " # %UNL_END_PAGE_ALIAS_ID_{$site_id}%\n\n"
. $stub_token
. substr($htaccess, $stub_pos + strlen($stub_token));
file_put_contents(DRUPAL_ROOT . '/.htaccess', $new_htaccess);
}
function unl_remove_page_alias_from_htaccess($site_id) {
$htaccess = file_get_contents(DRUPAL_ROOT . '/.htaccess');
$site_start_token = "\n # %UNL_START_PAGE_ALIAS_ID_{$site_id}%";
$site_end_token = " # %UNL_END_PAGE_ALIAS_ID_{$site_id}%\n";
$start_pos = strpos($htaccess, $site_start_token);
$end_pos = strpos($htaccess, $site_end_token);
if ($start_pos === FALSE || $end_pos === FALSE) {
return FALSE;
}
$new_htaccess = substr($htaccess, 0, $start_pos)
. substr($htaccess, $end_pos + strlen($site_end_token))
;
file_put_contents(DRUPAL_ROOT . '/.htaccess', $new_htaccess);
}
......
...@@ -105,6 +105,36 @@ function unl_schema() { ...@@ -105,6 +105,36 @@ function unl_schema() {
), ),
); );
$schema['unl_page_aliases'] = array(
'description' => 'Table of URL aliases for UNL pages.',
'fields' => array(
'page_alias_id' => array(
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
),
'from_uri' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
),
'to_uri' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
),
'installed' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
),
),
'primary key' => array('page_alias_id'),
'unique keys' => array(
'from_uri' => array('from_uri'),
),
);
return $schema; return $schema;
} }
...@@ -255,3 +285,37 @@ function unl_update_7106() { ...@@ -255,3 +285,37 @@ function unl_update_7106() {
db_add_unique_key('unl_sites_aliases', 'alias_uri', array('base_uri', 'path')); db_add_unique_key('unl_sites_aliases', 'alias_uri', array('base_uri', 'path'));
} }
function unl_update_7107() {
$table = array(
'description' => 'Table of URL aliases for UNL pages.',
'fields' => array(
'page_alias_id' => array(
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
),
'from_uri' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
),
'to_uri' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
),
'installed' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
),
),
'primary key' => array('page_alias_id'),
'unique keys' => array(
'from_uri' => array('from_uri'),
),
);
db_create_table('unl_page_aliases', $table);
}
...@@ -299,14 +299,16 @@ function _unl_get_sites_subdir($uri) { ...@@ -299,14 +299,16 @@ function _unl_get_sites_subdir($uri) {
function unl_aliases_page() { function unl_aliases_page() {
$page = array(); $page = array();
$page[] = drupal_get_form('unl_alias_create'); $page[] = drupal_get_form('unl_site_alias_create');
$page[] = drupal_get_form('unl_alias_list'); $page[] = drupal_get_form('unl_site_alias_list');
$page[] = drupal_get_form('unl_page_alias_create');
$page[] = drupal_get_form('unl_page_alias_list');
return $page; return $page;
} }
function unl_alias_create($form, &$form_state) { function unl_site_alias_create($form, &$form_state) {
$sites = db_select('unl_sites', 's') $sites = db_select('unl_sites', 's')
->fields('s', array('site_id', 'uri')) ->fields('s', array('site_id', 'uri'))
...@@ -318,7 +320,7 @@ function unl_alias_create($form, &$form_state) { ...@@ -318,7 +320,7 @@ function unl_alias_create($form, &$form_state) {
$form['root'] = array( $form['root'] = array(
'#type' => 'fieldset', '#type' => 'fieldset',
'#title' => 'Create New Alias', '#title' => 'Create New Site Alias',
); );
$form['root']['site'] = array( $form['root']['site'] = array(
...@@ -351,7 +353,7 @@ function unl_alias_create($form, &$form_state) { ...@@ -351,7 +353,7 @@ function unl_alias_create($form, &$form_state) {
return $form; return $form;
} }
function unl_alias_create_submit($form, &$form_state) { function unl_site_alias_create_submit($form, &$form_state) {
db_insert('unl_sites_aliases')->fields(array( db_insert('unl_sites_aliases')->fields(array(
'site_id' => $form_state['values']['site'], 'site_id' => $form_state['values']['site'],
'base_uri' => $form_state['values']['base_uri'], 'base_uri' => $form_state['values']['base_uri'],
...@@ -360,11 +362,11 @@ function unl_alias_create_submit($form, &$form_state) { ...@@ -360,11 +362,11 @@ function unl_alias_create_submit($form, &$form_state) {
} }
function unl_alias_list($form, &$form_state) { function unl_site_alias_list($form, &$form_state) {
$form['root'] = array( $form['root'] = array(
'#type' => 'fieldset', '#type' => 'fieldset',
'#title' => 'Existing Aliases', '#title' => 'Existing Site Aliases',
); );
$headers = array( $headers = array(
...@@ -417,7 +419,7 @@ function unl_alias_list($form, &$form_state) { ...@@ -417,7 +419,7 @@ function unl_alias_list($form, &$form_state) {
return $form; return $form;
} }
function unl_alias_list_submit($form, &$form_state) { function unl_site_alias_list_submit($form, &$form_state) {
$site_alias_ids = array(); $site_alias_ids = array();
foreach ($form_state['values']['aliases'] as $site_alias_id => $alias) { foreach ($form_state['values']['aliases'] as $site_alias_id => $alias) {
if ($alias['remove']) { if ($alias['remove']) {
...@@ -432,6 +434,115 @@ function unl_alias_list_submit($form, &$form_state) { ...@@ -432,6 +434,115 @@ function unl_alias_list_submit($form, &$form_state) {
} }
function unl_page_alias_create($form, &$form_state) {
$form['root'] = array(
'#type' => 'fieldset',
'#title' => 'Create New Page Alias',
);
$form['root']['from_uri'] = array(
'#type' => 'textfield',
'#title' => t('From URL'),
'#description' => 'The URL that users will visit.',
'#default_value' => url('', array('https' => FALSE)),
'#required' => TRUE,
);
$form['root']['to_uri'] = array(
'#type' => 'textfield',
'#title' => t('To URL'),
'#description' => t('The URL users will be redirected to.'),
'#default_value' => url('', array('https' => FALSE)),
'#required' => TRUE,
);
$form['root']['submit'] = array(
'#type' => 'submit',
'#value' => 'Create Alias',
);
return $form;
}
function unl_page_alias_create_submit($form, &$form_state) {
db_insert('unl_page_aliases')->fields(array(
'from_uri' => $form_state['values']['from_uri'],
'to_uri' => $form_state['values']['to_uri'],
))->execute();
}
function unl_page_alias_list($form, &$form_state) {
$form['root'] = array(
'#type' => 'fieldset',
'#title' => 'Existing Page Aliases',
);
$headers = array(
'site_uri' => array(
'data' => 'From URI',
'field' => 'a.from_uri',
),
'alias_uri' => array(
'data' => 'To URI',
'field' => 'a.to_uri',
),
'installed' => array(
'data' => 'Status',
'field' => 'a.installed',
),
'remove' => 'Remove (can not undo!)'
);
$form['root']['alias_list'] = array(
'#theme' => 'unl_table',
'#header' => $headers,
);
$query = db_select('unl_page_aliases', 'a')
->extend('TableSort')
->orderByHeader($headers);
$query->fields('a', array('page_alias_id', 'from_uri', 'to_uri', 'installed'));
$sites = $query->execute()->fetchAll();
foreach ($sites as $site) {
$form['root']['alias_list']['rows'][$site->page_alias_id] = array(
'site_uri' => array('#prefix' => $site->from_uri),
'alias_uri' => array('#prefix' => $site->to_uri),
'installed' => array('#prefix' => _unl_get_install_status_text($site->installed)),
'remove' => array(
'#type' => 'checkbox',
'#parents' => array('aliases', $site->page_alias_id, 'remove'),
'#default_value' => 0
),
);
}
$form['root']['submit'] = array(
'#type' => 'submit',
'#value' => 'Delete Selected Aliases',
);
return $form;
}
function unl_page_alias_list_submit($form, &$form_state) {
$page_alias_ids = array();
foreach ($form_state['values']['aliases'] as $page_alias_id => $alias) {
if ($alias['remove']) {
$page_alias_ids[] = $page_alias_id;
}
}
db_update('unl_page_aliases')
->fields(array('installed' => 3))
->condition('page_alias_id', $page_alias_ids, 'IN')
->execute();
}
function unl_wdn_registry($form, &$form_state) { function unl_wdn_registry($form, &$form_state) {
$form['root'] = array( $form['root'] = array(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment