Beispiel #1
0
        if ($_SESSION[$strTableName . "_mastertable"] != $masterTablesInfoArr[$i]['mDataSourceTable']) {
            continue;
        }
        if ($masterTablesInfoArr[$i]['dispInfo']) {
            $masterPSet = new ProjectSettings($masterTablesInfoArr[$i]['mDataSourceTable'], PAGE_SEARCH);
            $masterControls = new EditControlsContainer(null, $masterPSet, PAGE_LIST, new RunnerCipherer($masterTablesInfoArr[$i]['mDataSourceTable'], $masterPSet));
            $detailKeys = $masterTablesInfoArr[$i]['detailKeys'];
            for ($j = 0; $j < count($detailKeys); $j++) {
                $masterWhere .= " and " . $masterControls->getControl($detailKeys[$j])->getSuggestWhere('Equals', @$_SESSION[$strTableName . "_masterkey" . ($j + 1)]);
            }
        }
        break;
    }
}
$cipherer = new RunnerCipherer($strTableName);
$controls = new EditControlsContainer(null, $pSet, PAGE_LIST, $cipherer);
$result = array();
// traversing searchable fields
foreach ($allSearchFields as $f) {
    // filter fields by type
    $fType = $pSet->getFieldType($f);
    if (!IsCharType($fType) && !IsNumberType($fType) && !IsGuid($fType) || in_array($f, $detailKeys)) {
        continue;
    }
    if ($_connection->dbType == nDATABASE_Oracle && IsTextType($fType)) {
        continue;
    }
    if ($searchField != '' && $searchField != GoodFieldName($f) || !$pSet->checkFieldPermissions($f)) {
        continue;
    }
    $fieldControl = $controls->getControl($f);
$searchOpt = postvalue("start") ? "Starts with" : "Contains";
$searchField = GoodFieldName(postvalue('searchField'));
$strSecuritySql = SecuritySQL("Search", $strTableName);
$numberOfSuggests = GetGlobalData("searchSuggestsNumber", 10);
$pSet = new ProjectSettings($strTableName, PAGE_SEARCH);
if ($searchField == "") {
    $allSearchFields = $pSet->getGoogleLikeFields();
} else {
    // array of fields which were added in wizard for search
    $allSearchFields = $pSet->getAllSearchFields();
}
require_once getabspath('classes/controls/EditControlsContainer.php');
$detailKeys = array();
$masterWhere = "";
$cipherer = new RunnerCipherer($strTableName);
$controls = new EditControlsContainer(null, $pSet, PAGE_LIST, $cipherer);
if (@$_SESSION[$strTableName . "_mastertable"] != "") {
    $masterTablesInfoArr = $pSet->getMasterTablesArr($strTableName);
    for ($i = 0; $i < count($masterTablesInfoArr); $i++) {
        if ($_SESSION[$strTableName . "_mastertable"] != $masterTablesInfoArr[$i]['mDataSourceTable']) {
            continue;
        }
        if ($masterTablesInfoArr[$i]['dispInfo']) {
            $detailKeys = $masterTablesInfoArr[$i]['detailKeys'];
            for ($j = 0; $j < count($detailKeys); $j++) {
                $masterWhere .= " and " . $controls->getControl($detailKeys[$j])->getSuggestWhere('Equals', @$_SESSION[$strTableName . "_masterkey" . ($j + 1)]);
            }
        }
        break;
    }
}
Beispiel #3
0
    $masterKeys = array();
    for ($i = 0; $i < count($masterTablesInfoArr); $i++) {
        if ($_SESSION[$sessionPrefix . "_mastertable"] == $masterTablesInfoArr[$i]['mDataSourceTable']) {
            if ($masterTablesInfoArr[$i]['dispInfo']) {
                $masterPSet = new ProjectSettings($masterTablesInfoArr[$i]['mDataSourceTable'], PAGE_SEARCH);
                $masterControls = new EditControlsContainer(null, $masterPSet, PAGE_LIST, new RunnerCipherer($masterTablesInfoArr[$i]['mDataSourceTable'], $masterPSet));
                $detailKeys = $masterTablesInfoArr[$i]['detailKeys'];
                for ($j = 0; $j < count($detailKeys); $j++) {
                    $masterWhere .= " and " . $masterControls->getControl($detailKeys[$j])->SQLWhere(@$_SESSION[$sessionPrefix . "_masterkey" . ($j + 1)], 'Equals', "", "", true);
                }
            }
            break;
        }
    }
}
$controls = new EditControlsContainer(null, $pSet, PAGE_LIST, $cipherer);
// proccess fields and create sql
foreach ($allSearchFields as $f) {
    $fType = $pSet->getFieldType($f);
    // filter fields by type
    if (!IsCharType($fType) && !IsNumberType($fType) && !IsGuid($fType) || in_array($f, $detailKeys)) {
        continue;
    } else {
    }
    // get suggest for field
    if (($searchField == '' || $searchField == GoodFieldName($f)) && $pSet->checkFieldPermissions($f)) {
        $where = "";
        $having = "";
        if (!$gQuery->IsAggrFuncField($pSet->getFieldIndex($f) - 1)) {
            $where = $searchClauseObj->getSuggestWhere($controls->getControl($f), $suggestAllContent, $searchFor);
        } elseif ($gQuery->IsAggrFuncField($pSet->getFieldIndex($f) - 1)) {