function loadSelectContent($pageType, $childFieldName, $parentVal, $doCategoryFilter = true, $childVal = "", $initialLoad = true) { global $conn, $LookupSQL, $strTableName; $pSet = new ProjectSettings($strTableName, $pageType); $response = array(); $lookupType = $pSet->getLookupType($childFieldName); $isUnique = $pSet->isLookupUnique($childFieldName); if ($pSet->useCategory($childFieldName) && $doCategoryFilter) { if ($lookupType == LT_QUERY) { $lookupTable = $pSet->getLookupTable($childFieldName); $cipherer = new RunnerCipherer($lookupTable); $tempParentVal = $cipherer->MakeDBValue($pSet->getCategoryControl($childFieldName), $parentVal, "", $lookupTable, true); } else { $tempParentVal = make_db_value($childFieldName, $parentVal); } if ($tempParentVal === "null") { return $response; } } $LookupSQL = buildLookupSQL($pageType, $childFieldName, $strTableName, $parentVal, $childVal, $doCategoryFilter, $pSet->fastType($childFieldName) && $initialLoad); $lookupIndexes = GetLookupFieldsIndexes($pSet, $childFieldName); $rs = db_query($LookupSQL, $conn); if (!$pSet->fastType($childFieldName)) { while ($data = db_fetch_numarray($rs)) { if ($lookupType == LT_QUERY && $isUnique) { if (!isset($uniqueArray)) { $uniqueArray = array(); } if (in_array($data[$lookupIndexes["displayFieldIndex"]], $uniqueArray)) { continue; } $uniqueArray[] = $data[$lookupIndexes["displayFieldIndex"]]; } $response[] = $data[$lookupIndexes["linkFieldIndex"]]; $response[] = $data[$lookupIndexes["displayFieldIndex"]]; } } else { $data = db_fetch_numarray($rs); // one record only if ($data && (strlen($childVal) || !db_fetch_numarray($rs))) { $response[] = $data[$lookupIndexes["linkFieldIndex"]]; $response[] = $data[$lookupIndexes["displayFieldIndex"]]; } } return $response; }
$strLookupWhere = GetLWWhere($f, $pageType, $strTableName); if ($strLookupWhere) { $strLookupWhere = " (" . $strLookupWhere . ") AND "; } if ($LookupType == LT_QUERY) { if ($gSettings->getCustomDisplay($f)) { $strLookupWhere .= $displayFieldName; } else { $strLookupWhere .= GetFullFieldName($displayFieldName, $lookupTable, false); } } else { $strLookupWhere .= $cipherer->GetFieldName($lwDisplayField, $f); } $strLookupWhere .= $cipherer->GetLikeClause($LookupType == LT_QUERY ? $displayFieldName : $f, $value); if ($gSettings->useCategory($f) && (postvalue("category") != '' || postvalue('editMode') != MODE_SEARCH)) { $cvalue = make_db_value($gSettings->getCategoryControl($f), postvalue("category")); $strLookupWhere .= " AND " . AddFieldWrappers($gSettings->getCategoryFilter($f)) . "=" . $cvalue; } $lookupOrderBy = $gSettings->getLookupOrderBy($f); if (strlen($lookupOrderBy)) { $lookupOrderBy = GetFullFieldName($lookupOrderBy, $lookupTable); if ($gSettings->isLookupDesc($f)) { $lookupOrderBy .= ' DESC'; } } if ($LookupType == LT_QUERY) { $LookupSQL = $lookupQueryObj->toSql(whereAdd($lookupQueryObj->m_where->toSql($lookupQueryObj), $strLookupWhere), strlen($lookupOrderBy) ? ' ORDER BY ' . $lookupOrderBy : null); } else { $LookupSQL = $LookupSQLTable . " where " . $strLookupWhere; if (!$gSettings->isLookupUnique($f) || nDATABASE_Access != 4) { if ($lookupOrderBy) {