module = $class_details['module']; if(!empty($class_details['title'])) $this->title = $app_strings[$class_details['title']]; if(!empty($class_details['access_key'])) $this->access_key = $app_strings[$class_details['access_key']]; if(!empty($class_details['form_value'])) $this->form_value = translate($class_details['form_value'], $this->module); if(!empty($class_details['additional_form_fields'])) $this->additional_form_fields = $class_details['additional_form_fields']; if(!empty($class_details['ACL'])){ $this->acl = $class_details['ACL']; } } else { $this->module = $module; // If keys were passed into the constructor, translate them from keys to values. if(!empty($title)) $this->title = $app_strings[$title]; if(!empty($access_key)) $this->access_key = $app_strings[$access_key]; if(!empty($form_value)) $this->form_value = translate($form_value, $module); } } function &_get_form($defines, $additionalFormFields = null) { global $app_strings; global $currentModule; // Create the additional form fields with real values if they were not passed in if(empty($additionalFormFields) && $this->additional_form_fields) { foreach($this->additional_form_fields as $key=>$value) { if(!empty($defines['focus']->$value)) { $additionalFormFields[$key] = $defines['focus']->$value; } else { $additionalFormFields[$key] = ''; } } } if(!empty($this->module)) { $defines['child_module_name'] = $this->module; } else { $defines['child_module_name'] = $defines['module']; } $defines['parent_bean_name'] = get_class( $defines['focus']); $relationship_name = $this->get_subpanel_relationship_name($defines); $form = 'form' . $relationship_name; $button = '
"; return $temp; } global $app_strings; $button = $this->_get_form($defines, $additionalFormFields); $button .= "\n"; return $button; } /** * Returns a string that is the JSON encoded version of the popup request. * Perhaps this function should be moved to a more globally accessible location? */ function _create_json_encoded_popup_request($popup_request_data) { $popup_request_array = array(); if(!empty($popup_request_data['call_back_function'])) { $popup_request_array[] = '"call_back_function":"' . $popup_request_data['call_back_function'] . '"'; } if(!empty($popup_request_data['form_name'])) { $popup_request_array[] = '"form_name":"' . $popup_request_data['form_name'] . '"'; } if(!empty($popup_request_data['field_to_name_array'])) { $field_to_name_array = array(); foreach($popup_request_data['field_to_name_array'] as $field => $name) { $field_to_name_array[] = '"' . $field . '":"' . $name . '"'; } $popup_request_array[] = '"field_to_name_array":{' . implode(',', $field_to_name_array) . '}'; } if(!empty($popup_request_data['passthru_data'])) { $passthru_array = array(); foreach($popup_request_data['passthru_data'] as $field => $name) { $passthru_array[] = '"' . $field . '":"' . $name . '"'; } $popup_request_array[] = '"passthru_data":{' . implode(',', $passthru_array) . '}'; } $encoded_popup_request = '{' . implode(',', $popup_request_array) . '}'; return $encoded_popup_request; } /** * get_subpanel_relationship_name * Get the relationship name based on the subapnel definition * @param mixed $defines The subpanel definition */ function get_subpanel_relationship_name($defines) { $relationship_name = ''; if(!empty($defines)) { $relationship_name = isset($defines['module']) ? $defines['module'] : ''; $dataSource = $defines['subpanel_definition']->get_data_source_name(true); if (!empty($dataSource)) { $relationship_name = $dataSource; //Try to set the relationship name to the real relationship, not the link. if (!empty($defines['subpanel_definition']->parent_bean->field_defs[$dataSource]) && !empty($defines['subpanel_definition']->parent_bean->field_defs[$dataSource]['relationship'])) { $relationship_name = $defines['subpanel_definition']->parent_bean->field_defs[$dataSource]['relationship']; } } } return $relationship_name; } } ?>