コード例 #1
0
 /**
  * 
  * make index array by the parent
  */
 private static function makeIndexArray(JForm $form)
 {
     self::$arrIndexChildren = array();
     self::$arrIndexParent = array();
     //make parent index - multiple children by parent. This array will be for js output
     foreach (self::$arrControls as $control) {
         $parentName = $control["parent"];
         $childName = $control["child"];
         //get parent and child fields
         $parentField = self::getFormField($form, $parentName);
         $childField = self::getFormField($form, $childName);
         $parentID = $parentField->id;
         $childID = $childField->id;
         $arrControl = array();
         $arrControl["ctype"] = $control["ctype"];
         $arrControl["value"] = $control["value"];
         $arrControl["child"] = $childID;
         if (empty($parentField)) {
             UniteFunctionsRev::throwError("control parent field: {$parentName} not exists.");
         }
         if (empty($childField)) {
             UniteFunctionsRev::throwError("control child field: {$childField} not exists.");
         }
         //add the control to the array
         if (!isset(self::$arrIndexParent[$parentID])) {
             self::$arrIndexParent[$parentID] = array();
         }
         self::$arrIndexParent[$parentID][] = $arrControl;
     }
     //make children index (multiple parents by one child)
     foreach (self::$arrControls as $control) {
         $child = $control["child"];
         if (array_key_exists($child, self::$arrIndexChildren) == true) {
             self::$arrIndexChildren[$child][] = $control;
         } else {
             self::$arrIndexChildren[$child] = array($control);
         }
     }
 }