? sites/default/files
? sites/default/settings.php
Index: includes/form.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/form.inc,v
retrieving revision 1.308
diff -u -p -r1.308 form.inc
--- includes/form.inc 3 Dec 2008 16:32:21 -0000 1.308
+++ includes/form.inc 19 Dec 2008 08:57:44 -0000
@@ -1386,7 +1386,12 @@ function form_options_flatten($array, $r
form_options_flatten($value->option, FALSE);
}
elseif (is_array($value)) {
- form_options_flatten($value, FALSE);
+ if (isset($value['#value']) && isset($value['#return_value'])) {
+ $return[$value['#return_value']] = 1;
+ }
+ else {
+ form_options_flatten($value, FALSE);
+ }
}
else {
$return[$key] = 1;
@@ -1429,23 +1434,40 @@ function form_select_options($element, $
$value_is_array = is_array($element['#value']);
$options = '';
foreach ($choices as $key => $choice) {
- if (is_array($choice)) {
- $options .= '';
+ if (is_object($choice)) {
+ $optioncontent = each($choice->option);
+ $choice = array(
+ '#value' => $optioncontent['value'],
+ '#return_value' => $optioncontent['key'],
+ );
}
- elseif (is_object($choice)) {
- $options .= form_select_options($element, $choice->option);
+ if (!is_array($choice)) {
+ $choice = array('#value' => $choice);
+ }
+ elseif (!isset($choice['#value']) && !isset($choice['#options'])) {
+ $choice = array('#value' => array_shift($choice));
+ }
+ elseif (!isset($choice['#value']) && isset($choice['#options'])) {
+ $choice['#value'] = (string)$key;
+ }
+ if (!isset($choice['#return_value'])) {
+ $choice['#return_value'] = (string)$key;
+ }
+
+ if (isset($choice['#options']) && is_array($choice['#options'])) {
+ $options .= '';
}
else {
- $key = (string)$key;
- if ($value_valid && (!$value_is_array && (string)$element['#value'] === $key || ($value_is_array && in_array($key, $element['#value'])))) {
+ if ($value_valid && (!$value_is_array && (string)$element['#value'] === $choice['#return_value']
+ || ($value_is_array && in_array($choice['#return_value'], $element['#value'])))) {
$selected = ' selected="selected"';
}
else {
$selected = '';
}
- $options .= '';
+ $options .= '';
}
}
return $options;
Index: modules/trigger/trigger.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/trigger/trigger.admin.inc,v
retrieving revision 1.7
diff -u -p -r1.7 trigger.admin.inc
--- modules/trigger/trigger.admin.inc 16 Jul 2008 21:59:28 -0000 1.7
+++ modules/trigger/trigger.admin.inc 19 Dec 2008 08:57:44 -0000
@@ -135,7 +135,10 @@ function trigger_assign_form($form_state
}
foreach (actions_actions_map(actions_get_all_actions()) as $aid => $action) {
if (in_array($action['callback'], $functions)) {
- $options[$action['type']][$aid] = $action['description'];
+ $options[$action['type']]['#options'][] = array(
+ '#value' => $action['description'],
+ '#return_value' => $aid,
+ );
}
}
Index: modules/user/user.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.admin.inc,v
retrieving revision 1.33
diff -u -p -r1.33 user.admin.inc
--- modules/user/user.admin.inc 16 Nov 2008 15:10:49 -0000 1.33
+++ modules/user/user.admin.inc 19 Dec 2008 08:57:44 -0000
@@ -46,7 +46,13 @@ function user_filter_form() {
foreach ($session as $filter) {
list($type, $value) = $filter;
// Merge an array of arrays into one if necessary.
- $options = $type == 'permission' ? call_user_func_array('array_merge', $filters[$type]['options']) : $filters[$type]['options'];
+ $options = $filter[$type]['options'];
+ if ($type == 'permission') {
+ $options = array();
+ foreach ($filter[$type]['options'] as $filtermodule) {
+ $options += $filtermodule['#options'];
+ }
+ }
$params = array('%property' => $filters[$type]['title'] , '%value' => $options[$value]);
if ($i++ > 0) {
$form['filters']['current'][] = array('#markup' => t('and where %property is %value', $params));
@@ -99,7 +105,13 @@ function user_filter_form_submit($form,
if (isset($form_state['values']['filter'])) {
$filter = $form_state['values']['filter'];
// Merge an array of arrays into one if necessary.
- $options = $filter == 'permission' ? call_user_func_array('array_merge', $filters[$filter]['options']) : $filters[$filter]['options'];
+ $options = $filters[$filter]['option'];
+ if ($filter == 'permission') {
+ $options = array();
+ foreach ($filters[$filter]['option'] as $filtermodule) {
+ $options += $filtermodule['#options'];
+ }
+ }
if (isset($options[$form_state['values'][$filter]])) {
$_SESSION['user_overview_filter'][] = array($filter, $form_state['values'][$filter]);
}
Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.946
diff -u -p -r1.946 user.module
--- modules/user/user.module 16 Dec 2008 23:57:33 -0000 1.946
+++ modules/user/user.module 19 Dec 2008 08:57:44 -0000
@@ -1970,8 +1970,9 @@ function user_filters() {
$function = $module . '_perm';
if ($permissions = $function('perm')) {
asort($permissions);
+ $options[t('@module module', array('@module' => $module))] = array('#options' => array());
foreach ($permissions as $permission => $description) {
- $options[t('@module module', array('@module' => $module))][$permission] = t($permission);
+ $options[t('@module module', array('@module' => $module))]['#options'][$permission] = t($permission);
}
}
}