summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/common.inc34
-rw-r--r--includes/menu.inc2
-rw-r--r--modules/menu.module2
-rw-r--r--modules/menu/menu.module2
-rw-r--r--modules/system.module3
-rw-r--r--modules/system/system.module3
6 files changed, 24 insertions, 22 deletions
diff --git a/includes/common.inc b/includes/common.inc
index cf194cbc5..5af1f5be2 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -954,6 +954,7 @@ function url($path = NULL, $query = NULL, $fragment = NULL, $absolute = FALSE) {
global $base_url;
static $script;
+ static $clean_url;
if (empty($script)) {
// On some web servers, such as IIS, we can't omit "index.php". So, we
@@ -962,8 +963,10 @@ function url($path = NULL, $query = NULL, $fragment = NULL, $absolute = FALSE) {
$script = (strpos($_SERVER['SERVER_SOFTWARE'], 'Apache') === false) ? 'index.php' : '';
}
- $path = drupal_get_path_alias($path);
- $path = drupal_urlencode($path);
+ // Cache the clean_url variable to improve performance.
+ if ($clean_url === NULL) {
+ $clean_url = (variable_get('clean_url', '0') == '0') ? false : true;
+ }
if (isset($fragment)) {
$fragment = '#'. $fragment;
@@ -971,8 +974,11 @@ function url($path = NULL, $query = NULL, $fragment = NULL, $absolute = FALSE) {
$base = ($absolute ? $base_url .'/' : '');
- if (variable_get('clean_url', '0') == '0') {
- if (isset($path)) {
+ // The special path '<front>' links to the default front page.
+ if (isset($path) && $path != '<front>') {
+ $path = drupal_get_path_alias($path);
+ $path = drupal_urlencode($path);
+ if (!$clean_url) {
if (isset($query)) {
return $base . $script .'?q='. $path .'&'. $query . $fragment;
}
@@ -982,29 +988,19 @@ function url($path = NULL, $query = NULL, $fragment = NULL, $absolute = FALSE) {
}
else {
if (isset($query)) {
- return $base . $script .'?'. $query . $fragment;
+ return $base . $path .'?'. $query . $fragment;
}
else {
- return $base . $fragment;
+ return $base . $path . $fragment;
}
}
}
else {
- if (isset($path)) {
- if (isset($query)) {
- return $base . $path .'?'. $query . $fragment;
- }
- else {
- return $base . $path . $fragment;
- }
+ if (isset($query)) {
+ return $base . $script .'?'. $query . $fragment;
}
else {
- if (isset($query)) {
- return $base . $script .'?'. $query . $fragment;
- }
- else {
- return $base . $fragment;
- }
+ return $base . $fragment;
}
}
}
diff --git a/includes/menu.inc b/includes/menu.inc
index aecc7fcc6..e511ec6bd 100644
--- a/includes/menu.inc
+++ b/includes/menu.inc
@@ -464,7 +464,7 @@ function menu_get_active_help() {
function menu_get_active_breadcrumb() {
$menu = menu_get_menu();
- $links[] = l(t('Home'), '');
+ $links[] = l(t('Home'), '<front>');
$trail = _menu_get_active_trail();
foreach ($trail as $mid) {
diff --git a/modules/menu.module b/modules/menu.module
index 37cf137b7..ef22582cf 100644
--- a/modules/menu.module
+++ b/modules/menu.module
@@ -400,7 +400,7 @@ function menu_edit_item_form($edit) {
else {
$form['description'] = array('#type' => 'textfield', '#title' => t('Description'), '#default_value' => $edit['description'], '#description' => t('The description displayed when hovering over a menu item.'));
- $path_description = t('The Drupal path this menu item links to.');
+ $path_description = t('The Drupal path this menu item links to. Enter %front to link to the front page.', array('%front' => theme('placeholder', '<front>')));
if ($edit['type'] & MENU_CREATED_BY_ADMIN) {
$form['path'] = array('#type' => 'textfield', '#title' => t('Path'), '#default_value' => $edit['path'], '#description' => $path_description, '#required' => TRUE);
diff --git a/modules/menu/menu.module b/modules/menu/menu.module
index 37cf137b7..ef22582cf 100644
--- a/modules/menu/menu.module
+++ b/modules/menu/menu.module
@@ -400,7 +400,7 @@ function menu_edit_item_form($edit) {
else {
$form['description'] = array('#type' => 'textfield', '#title' => t('Description'), '#default_value' => $edit['description'], '#description' => t('The description displayed when hovering over a menu item.'));
- $path_description = t('The Drupal path this menu item links to.');
+ $path_description = t('The Drupal path this menu item links to. Enter %front to link to the front page.', array('%front' => theme('placeholder', '<front>')));
if ($edit['type'] & MENU_CREATED_BY_ADMIN) {
$form['path'] = array('#type' => 'textfield', '#title' => t('Path'), '#default_value' => $edit['path'], '#description' => $path_description, '#required' => TRUE);
diff --git a/modules/system.module b/modules/system.module
index f98ae7c24..b634a232e 100644
--- a/modules/system.module
+++ b/modules/system.module
@@ -752,6 +752,9 @@ function system_settings_form_submit($form_id, $values) {
else {
drupal_set_message(t('The configuration options have been saved.'));
}
+ if ($form_id == 'system_settings_form') {
+ menu_rebuild();
+ }
}
/**
diff --git a/modules/system/system.module b/modules/system/system.module
index f98ae7c24..b634a232e 100644
--- a/modules/system/system.module
+++ b/modules/system/system.module
@@ -752,6 +752,9 @@ function system_settings_form_submit($form_id, $values) {
else {
drupal_set_message(t('The configuration options have been saved.'));
}
+ if ($form_id == 'system_settings_form') {
+ menu_rebuild();
+ }
}
/**