/** * Add a parent of this module, linked by a field. * * @param string $parentModule The classname of the parent * @param string|array optional $fieldLinks * @param string optional $parentField * @param string optional $text */ public static function AddParent($parentModule, $fieldLinks = NULL, $parentField = NULL, $text = NULL) { if (isset($fieldLinks) && is_string($fieldLinks)) { $fieldLinks = array(array('fromField' => $fieldLinks, 'toField' => $fieldLinks, 'ct' => ctEQ)); } if (isset($fieldLinks) && is_array($fieldLinks) && !array_key_exists(0, $fieldLinks)) { if (array_key_exists('fromField', $fieldLinks) && array_key_exists('toField', $fieldLinks)) { $fieldLinks = array($fieldLinks); } else { // change from array(from>to) to new format $newFL = array(); foreach ($fieldLinks as $from => $to) { $newFL[] = array('fromField' => $from, 'toField' => $to, 'ct' => ctEQ); } $fieldLinks = $newFL; } } if (isset($fieldLinks) && !is_array($fieldLinks)) { // must be null or array trigger_error('Cannot add parent (' . $parentModule . ') of ' . get_called_class() . ', fieldLinks parameter is an invalid type.', E_USER_ERROR); } $info = array('parentField' => $parentField, 'fieldLinks' => $fieldLinks, 'text' => $text); utopia::AddChild($parentModule, get_called_class(), $info); return $fieldLinks; }