function _getSearchUsersBaseQuery($internal_fields, $extra_fields = FALSE, $idst_filter = FALSE) { require_once $GLOBALS["where_framework"] . "/lib/lib.field.php"; $field_names = $this->_getTableUserFieldNames(); // "SELECT * FROM ".. is made by the functions that calls this one.. $res = $this->_getTableUser() . " WHERE valid='1' "; $internal_fields_tot = is_array($internal_fields) ? count($internal_fields) : 0; if ($internal_fields_tot > 0) { $res .= "AND ("; } $i = 1; foreach ($internal_fields as $field_id => $val) { if (isset($val["add_before"]) && !empty($val["add_before"])) { $res .= " " . $val["add_before"]; } $res .= $field_names[$field_id]; $comp_op = isset($val["comp_op"]) && !empty($val["comp_op"]) ? $val["comp_op"] : "="; if (!isset($val["like"]) || $val["like"] == "off") { $res .= $comp_op . "'" . $val["filter"] . "' "; } else { if ($val["like"] == "both") { $res .= " LIKE '%" . $val["filter"] . "%' "; } else { if ($val["like"] == "start") { $res .= " LIKE '%" . $val["filter"] . "' "; } else { if ($val["like"] == "end") { $res .= " LIKE '" . $val["filter"] . "%' "; } } } } if (isset($val["add_after"]) && !empty($val["add_after"])) { $res .= $val["add_after"] . " "; } if ($i < $internal_fields_tot) { if (isset($val["nextop"]) && !empty($val["nextop"])) { $next_operator = strtoupper($val["nextop"]); } else { $next_operator = "AND"; } $res .= $next_operator . " "; } $i++; } if ($internal_fields_tot > 0) { $res .= ") "; } if ($extra_fields !== FALSE) { $fl = new FieldList(); $fl->setFieldEntryTable($GLOBALS['prefix_fw'] . '_field_userentry'); // <- ??! $fields = $extra_fields["fields"]; $method = $extra_fields["method"]; $like_type = $extra_fields["like"]; $search = $extra_fields["search"]; $found_users = $fl->quickSearchUsersFromEntry($fields, $method, $like_type, $search); if ($idst_filter !== FALSE) { $idst_filter = array_intersect($idst_filter, $found_users); } else { $idst_filter = $found_users; } } if ($idst_filter !== FALSE) { $res .= "AND idst IN (" . implode(",", $idst_filter) . ") "; } $res .= "ORDER BY userid "; return $res; }