function get_vardef_array($use_singular = false, $remove_dups = false, $use_field_name = false, $use_field_label = false) { global $dictionary; global $current_language; global $app_strings; global $app_list_strings; $temp_module_strings = return_module_language($current_language, $this->module_object->module_dir); $base_array = $this->module_object->field_defs; //$base_array = $dictionary[$this->module_object->object_name]['fields']; ///Inclue empty none set or not if ($this->start_none == true) { if (!empty($this->start_none_lbl)) { $this->options_array[''] = $this->start_none_lbl; } else { $this->options_array[''] = $app_strings['LBL_NONE']; } } ///used for special one off items added to filter array ex. would be href link for alert templates if (!empty($this->extra_array)) { foreach ($this->extra_array as $key => $value) { $this->options_array[$key] = $value; } } /////////end special one off////////////////////////////////// foreach ($base_array as $key => $value_array) { $compare_results = $this->compare_type($value_array); if ($compare_results == true) { $label_name = ''; if ($value_array['type'] == 'link' && !$use_field_label) { $this->module_object->load_relationship($value_array['name']); if (!empty($app_list_strings['moduleList'][$this->module_object->{$value_array}['name']->getRelatedModuleName()])) { $label_name = $app_list_strings['moduleList'][$this->module_object->{$value_array}['name']->getRelatedModuleName()]; } else { $label_name = $this->module_object->{$value_array}['name']->getRelatedModuleName(); } } else { if (!empty($value_array['vname'])) { $label_name = $value_array['vname']; } else { $label_name = $value_array['name']; } } $label_name = get_label($label_name, $temp_module_strings); if (!empty($value_array['table'])) { //Custom Field $column_table = $value_array['table']; } else { //Non-Custom Field $column_table = $this->module_object->table_name; } if ($value_array['type'] == 'link') { if ($use_field_name) { $index = $value_array['name']; } else { $index = $this->module_object->{$key}->getRelatedModuleName(); } } else { $index = $key; } $value = trim($label_name, ':'); if ($remove_dups) { if (!in_array($value, $this->options_array)) { $this->options_array[$index] = $value; } } else { $this->options_array[$index] = $value; } //end if field is included } //end foreach } if ($use_singular == true) { return convert_module_to_singular($this->options_array); } else { return $this->options_array; } //end get_vardef_array }
/** * Get list of related module for $module_name * @param string $module_name * @return array * return list of related module. Array keys - system modules name, array values - translated modules name */ public static function getRelatedModules($module_name) { require_once 'include/VarDefHandler/VarDefHandler.php'; global $beanList, $app_list_strings; $seed = new $beanList[$module_name](); $options_array = array(); foreach ($seed->field_defs as $key => $value_array) { if ($value_array['type'] == 'link') { $name = $value_array['name']; $seed->load_relationship($name); if (!isset($seed->{$name})) { continue; } if (!method_exists($seed->{$name}, 'getRelatedModuleName')) { continue; } $relate_module = $seed->{$name}->getRelatedModuleName(); if (!empty($app_list_strings['moduleList'][$relate_module])) { $label = $app_list_strings['moduleList'][$relate_module]; } else { $label = $relate_module; } $label = trim($label, ':'); if (!isset($options_array[$relate_module])) { $options_array[$relate_module] = $label; } } } $options_array = convert_module_to_singular($options_array); return $options_array; }
function get_module_array($use_object_name = false, $start_none = false) { if ($use_object_name == true) { return convert_module_to_singular(get_module_map($start_none)); } else { return get_module_map(); } //end function get_module_array }
function get_selector_array($type, $value, $dom_name, $text_only_array = false, $meta_filter_name = "", $only_related_modules = false, $trigger_type = "", $only_plural = false) { global $app_list_strings; global $current_language; if ($type == 'assigned_user_id' || $type == 'assigned_user_name') { $select_array = get_user_array(TRUE, "Active", "", true, null, ' AND is_group=0 '); } if ($type == 'team_list') { $select_array = get_team_array(); } if ($type == 'role') { $select_array = get_bean_select_array(true, 'ACLRole', 'name'); } if ($type == 'dom_array') { if (!empty($app_list_strings[$dom_name])) { $select_array = $app_list_strings[$dom_name]; } ksort($select_array); } if ($type == 'field') { $temp_module = BeanFactory::getBean($dom_name); if (!is_object($temp_module)) { //var_dump($dom_name); //display_stack_trace(true); $GLOBALS['log']->fatal("get_selector_array: Unknown module: {$dom_name}"); return null; } if (isset($trigger_type) && !empty($trigger_type)) { global $process_dictionary; include_once 'modules/WorkFlowTriggerShells/MetaArray.php'; if (array_key_exists("trigger_type_override", $process_dictionary['TriggersCreateStep1']['elements'][$trigger_type])) { //we have found an override $meta_filter_name = $process_dictionary['TriggersCreateStep1']['elements'][$trigger_type]['trigger_type_override']; } } $temp_module->call_vardef_handler($meta_filter_name); if ($_GET['opener_id'] == 'rel_module') { $temp_select_array = $temp_module->vardef_handler->get_vardef_array(false, false, true, false, true); $select_array = getDuplicateRelationListWithTitle($temp_select_array, $temp_module->vardef_handler->module_object->field_defs, $temp_module->vardef_handler->module_object->module_dir); } else { $select_array = $temp_module->vardef_handler->get_vardef_array(true, false, false, false, true); $select_array = array_unique($select_array); asort($select_array); } //end if type is field } if ($type == 'module_list') { if ($only_related_modules) { global $beanList; $temp_module = BeanFactory::getBean($dom_name); $temp_module->call_vardef_handler("rel_filter"); $select_array = $temp_module->vardef_handler->get_vardef_array(true, true, true, true); } else { if ($meta_filter_name == "singular") { $select_array = convert_module_to_singular(get_module_map(false)); } else { $select_array = get_module_map(); } } unset($select_array["Forecasts"]); unset($select_array["Products"]); unset($select_array["Documents"]); asort($select_array); //end if type is module_list } if (!empty($select_array)) { if ($text_only_array == true) { return $select_array; } else { return get_select_options_with_id($select_array, $value); } } else { return null; } //end get_selector_array }