コード例 #1
0
 public static function getFieldsSelectHtml($database, $selectedModule, $selectedField, $auditedReport = 0, $isEditViewMode = true, $isDisabled = false, $treeMode = false, $subQueryMode = false)
 {
     global $db, $mod_strings;
     $isAudited = false;
     $rhs_key = isset($_REQUEST['rhs_key']) ? $_REQUEST['rhs_key'] : "";
     $currentTableFields = array();
     if ($database >= 0 && $selectedModule != '') {
         //***********************//
         //***AlineaSol Premium***//
         //***********************//
         $extraParams = array('alternative_database' => $database, 'sel_altDbTable' => $selectedModule, 'rhs_key' => $rhs_key);
         $currentTableFields = asol_ReportsUtils::managePremiumFeature("externalDatabasesReports", "reportFunctions.php", "getExternalTableFields", $extraParams);
         if ($currentTableFields !== false) {
             $rhs_key = $currentTableFields['rhs_key'];
         }
         //***********************//
         //***AlineaSol Premium***//
         //***********************//
     } else {
         if ($selectedModule != '') {
             $fieldsToBeRemoved = self::getNonVisibleFields($selectedModule);
             $isAudited = self::isModuleAudited($selectedModule);
             $bean = BeanFactory::newBean($selectedModule);
             if ($auditedReport == 1) {
                 $currentTableFields = asol_ReportsManagementFunctions::getAuditTableFields($bean, $fieldsToBeRemoved, $rhs_key, null);
             } else {
                 $currentTableFields = asol_ReportsManagementFunctions::getCrmTableFields($selectedModule, $bean, $fieldsToBeRemoved);
             }
         }
     }
     $fields = isset($currentTableFields['fields']) ? $currentTableFields['fields'] : null;
     $fields_labels = isset($currentTableFields['fields_labels']) ? $currentTableFields['fields_labels'] : null;
     $fields_type = isset($currentTableFields['fields_type']) ? $currentTableFields['fields_type'] : null;
     $fields_enum_operators = isset($currentTableFields['fields_enum_operators']) ? $currentTableFields['fields_enum_operators'] : null;
     $fields_enum_references = isset($currentTableFields['fields_enum_references']) ? $currentTableFields['fields_enum_references'] : null;
     $has_index = isset($currentTableFields['has_index']) ? $currentTableFields['has_index'] : null;
     $has_related = isset($currentTableFields['has_related']) ? $currentTableFields['has_related'] : null;
     //Order Fields By Presentation Label
     $fields_labels_lowercase = array_map('strtolower', !empty($fields_labels) ? $fields_labels : array());
     if (!empty($fields_labels_lowercase)) {
         array_multisort($fields_labels_lowercase, $fields_labels, $fields, $fields_type, $fields_enum_operators, $fields_enum_references, $has_index, $has_related);
     }
     $fields = !empty($fields) ? $fields : array();
     $fields_labels = !empty($fields_labels) ? $fields_labels : array();
     $has_index = !empty($has_index) ? $has_index : array();
     $has_related = !empty($has_related) ? $has_related : array();
     if ($treeMode) {
         //***********************//
         //***AlineaSol Premium***//
         //***********************//
         $extraParams = array('database' => $database, 'getRelateLinks' => true, 'auditedReport' => $auditedReport, 'reportModule' => $selectedModule, 'mainRelatedModule' => '', 'mainRelatedTable' => '', 'rhsKey' => '', 'fields' => $fields, 'fields_labels' => $fields_labels, 'fields_type' => $fields_type, 'fields_enum_operators' => $fields_enum_operators, 'fields_enum_references' => $fields_enum_references, 'has_index' => $has_index, 'has_related' => $has_related, 'linkColor' => 'blue', 'subQueryMode' => $subQueryMode);
         $returnedTreeSelectorHtml = asol_ReportsUtils::managePremiumFeature("reportFieldsTreeSelector", "reportFunctions.php", "getTreeSelectorHtml", $extraParams);
         $returnedHtml = $returnedTreeSelectorHtml !== false ? $returnedTreeSelectorHtml : '';
         $returnedJavascript = '';
         //***********************//
         //***AlineaSol Premium***//
         //***********************//
     } else {
         $returnedHtml = '<select ' . ($isDisabled ? 'disabled' : '') . ' name="fields" id="fields" ' . ($isEditViewMode ? 'multiple size=10 onchange="setShowRelatedButtonVisibility(false)" onDblClick="getRelatedFields(false, null, null, null)"' : '') . '>';
         foreach ($fields as $index => $field) {
             $isRelated = $has_related[$index] != "false";
             $returnedHtml .= '<option ' . ($isRelated ? 'style="color:blue;"' : '') . ' ' . ($field == $selectedField ? 'selected' : '') . ' onContextMenu="getReportVariableHover(\'' . $field . '\', \'\', \'\', this); return false;" title="' . $field . '" value="' . $field . '" fieldValue="' . $field . '" fieldIndex="' . $index . '" fieldType="' . $fields_type[$index] . '" fieldEnumOp="' . $fields_enum_operators[$index] . '" fieldEnumRef="' . $fields_enum_references[$index] . '" fieldLabel="' . $fields_labels[$index] . '" fieldModule="" fieldKey="">' . $fields_labels[$index] . ($isRelated ? ' +' : '') . '</option>';
         }
         $returnedHtml .= '</select>';
         $returnedJavascript = 'InsertFields(\'fields_Table\', null, false, \'' . $auditedReport . '\');';
     }
     return array('html' => $returnedHtml, 'javascript' => $returnedJavascript, 'isAudited' => $isAudited);
 }