| 
														
															@@ -7,7 +7,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  * 
														 | 
														
														 | 
														
															  * 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  * @copyright 2008 Ouest Systemes Informatiques (OSInet) 
														 | 
														
														 | 
														
															  * @copyright 2008 Ouest Systemes Informatiques (OSInet) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  * @author Frederic G. MARAND 
														 | 
														
														 | 
														
															  * @author Frederic G. MARAND 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- * @version $Id: qbf.module,v 1.1 2008-08-22 16:58:01 marand Exp $ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ * @version $Id: qbf.module,v 1.2 2008-08-25 15:03:33 marand Exp $ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  * @license CeCILL 2.0 
														 | 
														
														 | 
														
															  * @license CeCILL 2.0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  * @package QBF 
														 | 
														
														 | 
														
															  * @package QBF 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  */ 
														 | 
														
														 | 
														
															  */ 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -58,7 +58,7 @@ function qbf_rewrite_form($form) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  * @param array $arHooks 
														 | 
														
														 | 
														
															  * @param array $arHooks 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  * @return array 
														 | 
														
														 | 
														
															  * @return array 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  */ 
														 | 
														
														 | 
														
															  */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-function _qbf_transform_form($form_id, $arHooks = array()) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+function qbf_transform_form($form_id, $arHooks = array()) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   { 
														 | 
														
														 | 
														
															   { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   // Fetch the basic form and rename it 
														 | 
														
														 | 
														
															   // Fetch the basic form and rename it 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   $form = drupal_retrieve_form($form_id, NULL); 
														 | 
														
														 | 
														
															   $form = drupal_retrieve_form($form_id, NULL); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -67,7 +67,7 @@ function _qbf_transform_form($form_id, $arHooks = array()) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   // Invoke the optional hooks extending it 
														 | 
														
														 | 
														
															   // Invoke the optional hooks extending it 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   foreach ($arHooks as $hookName => $arHookArguments) 
														 | 
														
														 | 
														
															   foreach ($arHooks as $hookName => $arHookArguments) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     { 
														 | 
														
														 | 
														
															     { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    dsm("Firing $hookName"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // dsm("Firing $hookName"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     foreach (module_implements($hookName) as $module) 
														 | 
														
														 | 
														
															     foreach (module_implements($hookName) as $module) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       { 
														 | 
														
														 | 
														
															       { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -97,7 +97,7 @@ function _qbf_transform_form($form_id, $arHooks = array()) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   $form['mark'] = array('#type' => 'textarea', '#value' => 'goo'); 
														 | 
														
														 | 
														
															   $form['mark'] = array('#type' => 'textarea', '#value' => 'goo'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   foreach (element_children($form) as $key) 
														 | 
														
														 | 
														
															   foreach (element_children($form) as $key) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     { 
														 | 
														
														 | 
														
															     { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    //dsm("Transforming $key, type " . $form[$key]['#type']); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // dsm("Transforming $key, type " . $form[$key]['#type']); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     $newElement = _qbf_transform_element($key, $form[$key]); 
														 | 
														
														 | 
														
															     $newElement = _qbf_transform_element($key, $form[$key]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (!is_null($newElement)) 
														 | 
														
														 | 
														
															     if (!is_null($newElement)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       { 
														 | 
														
														 | 
														
															       { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -106,7 +106,7 @@ function _qbf_transform_form($form_id, $arHooks = array()) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															   $newForm['#id'] = $newFormId; 
														 | 
														
														 | 
														
															   $newForm['#id'] = $newFormId; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//dsm($newForm); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// dsm($newForm); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   return $newForm; 
														 | 
														
														 | 
														
															   return $newForm; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -114,14 +114,16 @@ function _qbf_transform_form($form_id, $arHooks = array()) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  * Transform a form element for QBF 
														 | 
														
														 | 
														
															  * Transform a form element for QBF 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  * 
														 | 
														
														 | 
														
															  * 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  * QBF-specific properties are: 
														 | 
														
														 | 
														
															  * QBF-specific properties are: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- * - #qbf_level : @see QBF_* constants 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ * - #qbf : array of properties 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ * - #level: only within #qbf @see QBF_* constants 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  * 
														 | 
														
														 | 
														
															  * 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  * @param array &$element 
														 | 
														
														 | 
														
															  * @param array &$element 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  * @return void 
														 | 
														
														 | 
														
															  * @return void 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  */ 
														 | 
														
														 | 
														
															  */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 function _qbf_transform_element($key, array $element) 
														 | 
														
														 | 
														
															 function _qbf_transform_element($key, array $element) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   { 
														 | 
														
														 | 
														
															   { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  //dsm(array('key' => $key, 'element' => $element)); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  // dsm(array('key' => $key, 'element' => $element)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   // Types without a default transformation are not transformed 
														 | 
														
														 | 
														
															   // Types without a default transformation are not transformed 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   static $arDefaultTypeTransformations = array 
														 | 
														
														 | 
														
															   static $arDefaultTypeTransformations = array 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     ( 
														 | 
														
														 | 
														
															     ( 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -178,8 +180,7 @@ function _qbf_transform_element($key, array $element) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     { 
														 | 
														
														 | 
														
															     { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     $ret = $element; 
														 | 
														
														 | 
														
															     $ret = $element; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     $ret['#type'] = $destType; 
														 | 
														
														 | 
														
															     $ret['#type'] = $destType; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    if (!array_key_exists('#qbf_level', $element) || $element['#qbf_level'] == QBF_LEVEL_REMOVE) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (!array_key_exists('#qbf', $element) || $element['#qbf']['#level'] == QBF_LEVEL_REMOVE) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       { 
														 | 
														
														 | 
														
															       { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       $ret = NULL; 
														 | 
														
														 | 
														
															       $ret = NULL; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } 
														 | 
														
														 | 
														
															       } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -203,12 +204,25 @@ function _qbf_transform_element($key, array $element) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           { 
														 | 
														
														 | 
														
															           { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           $ret[$propertyName] = $element[$propertyName]; 
														 | 
														
														 | 
														
															           $ret[$propertyName] = $element[$propertyName]; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           } 
														 | 
														
														 | 
														
															           } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // And apply form-defined overrides 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if ($propertyName == '#qbf') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          foreach ($element[$propertyName] as $overrideName => $overrideValue) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          	$ret[$overrideName] = $overrideValue; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															       foreach (element_children($element) as $childName) 
														 | 
														
														 | 
														
															       foreach (element_children($element) as $childName) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         { 
														 | 
														
														 | 
														
															         { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         $child = _qbf_transform_element($childName, $element[$childName]); 
														 | 
														
														 | 
														
															         $child = _qbf_transform_element($childName, $element[$childName]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if (!is_null($child)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if (is_null($child)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          unset($ret[$childName]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           { 
														 | 
														
														 | 
														
															           { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           $ret[$childName] = $child; 
														 | 
														
														 | 
														
															           $ret[$childName] = $child; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           } 
														 | 
														
														 | 
														
															           } 
														 |