? .svn
? 248497.patch
? hsi18n.patch
? images/.svn
? includes/.svn
? js/.svn
? js/jquery.ui/.svn
? modules/.svn
Index: hierarchical_select.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/hierarchical_select/hierarchical_select.module,v
retrieving revision 1.137.2.6
diff -u -u -p -r1.137.2.6 hierarchical_select.module
--- hierarchical_select.module	30 Nov 2008 01:56:07 -0000	1.137.2.6
+++ hierarchical_select.module	10 Jun 2009 01:47:46 -0000
@@ -254,6 +254,7 @@ function hierarchical_select_json() {
   drupal_set_header('Content-Type: text/javascript; charset=utf-8');
 
   $hs_form_build_id = $_POST['hs_form_build_id'];
+  $hs_form_build_id = _hierarchical_select_get_hs_form_build_id();
 
   // Collect all necessary variables.
   $cached = cache_get($hs_form_build_id, 'cache');
@@ -265,6 +266,10 @@ function hierarchical_select_json() {
   // form in a subform_element in a form, then it is necessary.
   $form_id = $_POST['form_id'] = $storage['parameters'][0];
 
+  if (module_exists('i18n')) {
+    i18n_selection_mode($storage['i18n']['mode'], $storage['i18n']['params']);
+  }
+
   if (HS_DEVELOPER_MODE) {
     _hierarchical_select_log("form_id: $form_id");
     _hierarchical_select_log("hs_form_build_id: $hs_form_build_id");
@@ -623,7 +628,8 @@ function hierarchical_select_process($el
 function hierarchical_select_after_build($form, $form_values) {
   $names = _hierarchical_select_store_name(NULL, NULL, TRUE);
 
-  if (!isset($_POST['hs_form_build_id']) && count($names)) {
+  $post_hs_form_build_id = _hierarchical_select_get_hs_form_build_id();
+  if (!isset($post_hs_form_build_id) && count($names)) {
     $parameters = (isset($form['#parameters'])) ? $form['#parameters'] : array();
 
     // Collect information in this array, which will be used in dynamic form
@@ -634,6 +640,12 @@ function hierarchical_select_after_build
       // … determine which part of $form should be rendered.
       '#names'     => $names,
     );
+    if (module_exists('i18n')) {
+      $storage['i18n'] = array(
+        'mode' => i18n_selection_mode(),
+        'params' => i18n_selection_mode('params'),
+      );
+    }
 
     // Store the information needed for dynamic form updates in the cache, so
     // we can retrieve this in our JSON callbacks (to be able to rebuild and
@@ -643,10 +655,10 @@ function hierarchical_select_after_build
     cache_set($hs_form_build_id, 'cache', serialize($storage), $expire);
 
   }
-  elseif (isset($_POST['hs_form_build_id'])) {
+  elseif (isset($post_hs_form_build_id)) {
     // Don't generate a new hs_form_build_id if this is a re-rendering of the
     // same form!
-    $hs_form_build_id = $_POST['hs_form_build_id'];
+    $hs_form_build_id = $post_hs_form_build_id;
   }
 
   // Store the hs_form_build_id in a hidden value, so that it gets POSTed.
@@ -662,7 +674,7 @@ function hierarchical_select_after_build
 
   // Pass the hs_form_build_id to a custom submit function that will clear
   // the associated values from the cache.
-  $form['#submit']['_hierarchical_select_submit'] = array($_POST['hs_form_build_id']);
+  $form['#submit']['_hierarchical_select_submit'] = array($post_hs_form_build_id);
 
   return $form;
 }
@@ -2046,6 +2058,17 @@ function _hierarchical_select_options($e
   return $options;
 }
 
+function _hierarchical_select_get_hs_form_build_id() {
+  $hs_form_build_id = $_POST['hs_form_build_id'];
+  if (empty($hs_form_build_id)) {
+    foreach ($_POST as $key => $value) {
+      if (is_array($_POST[$key]) && !empty($_POST[$key]['hs_form_build_id'])) {
+        return $_POST[$key]['hs_form_build_id'];
+      }
+    }
+  }
+  return $hs_form_build_id;
+}
 
 //----------------------------------------------------------------------------
 // Theming callbacks.
