From f31db8d70f08a29bac6b98049c138344d37b75ea Mon Sep 17 00:00:00 2001 From: Steven Wittens Date: Fri, 21 Oct 2005 11:14:55 +0000 Subject: - #22850: Search query containing / results in 404 on clean URLs. --- includes/common.inc | 12 ++++++++++++ includes/locale.inc | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'includes') diff --git a/includes/common.inc b/includes/common.inc index dc7a41afd..953339300 100644 --- a/includes/common.inc +++ b/includes/common.inc @@ -1295,6 +1295,18 @@ function drupal_implode_autocomplete($array) { return implode('||', $output); } +/** + * Wrapper around urlencode() which avoids Apache quirks. + * + * Should be used when placing arbitrary data inside the path of a clean URL. + * + * @param $text + * String to encode + */ +function drupal_urlencode($text) { + return variable_get('clean_url', '0') ? str_replace('%2F', '/', urlencode($text)) : urlencode($text); +} + /** * Performs one or more XML-RPC request(s). * diff --git a/includes/locale.inc b/includes/locale.inc index e21de59f5..8bd5269f0 100644 --- a/includes/locale.inc +++ b/includes/locale.inc @@ -74,7 +74,7 @@ function theme__locale_admin_manage_screen($form) { foreach ($form['name'] as $key => $element) { // Don't take form control structures if (is_array($element) && element_child($key)) { - $rows[] = array(check_plain($key), form_render($form['name'][$key]), form_render($form['enabled'][$key]), form_render($form['sitedefault'][$key]), ($key != 'en' ? form_render($form['translation'][$key]) : message_na()), ($key != 'en' ? l(t('delete'), 'admin/locale/language/delete/'. urlencode($key)) : '')); + $rows[] = array(check_plain($key), form_render($form['name'][$key]), form_render($form['enabled'][$key]), form_render($form['sitedefault'][$key]), ($key != 'en' ? form_render($form['translation'][$key]) : message_na()), ($key != 'en' ? l(t('delete'), 'admin/locale/language/delete/'. drupal_urlencode($key)) : '')); } } $header = array(array('data' => t('Code')), array('data' => t('English name')), array('data' => t('Enabled')), array('data' => t('Default')), array('data' => t('Translated')), array('data' => t('Operations'))); -- cgit v1.2.3