- // default search
- $unique = 'pid';
- $db = 'profiles';
- $realid = false;
- $beginwith = true;
- $field2 = false;
- $qsearch = str_replace(array('%', '_'), '', $q);
- $distinct = true;
-
- switch ($type) {
- case 'binetTxt':
- $db = 'binets_def INNER JOIN
- binets_ins ON(binets_def.id = binets_ins.binet_id)';
- $field = 'binets_def.text';
- if (strlen($q) > 2)
- $beginwith = false;
- $realid = 'binets_def.id';
- break;
- case 'networking_typeTxt':
- $db = 'profile_networking_enum INNER JOIN
- profile_networking ON(profile_networking.network_type = profile_networking_enum.network_type)';
- $field = 'profile_networking_enum.name';
- $unique = 'uid';
- $realid = 'profile_networking_enum.network_type';
- break;
- case 'city':
- $db = 'geoloc_localities INNER JOIN
- profile_addresses ON (geoloc_localities.id = profile_addresses.localityId)';
- $unique = 'uid';
- $field ='geoloc_localities.name';
- break;
- case 'countryTxt':
- $db = 'geoloc_countries INNER JOIN
- profile_addresses ON (geoloc_countries.iso_3166_1_a2 = profile_addresses.countryId)';
- $unique = 'pid';
- $field = 'geoloc_countries.countryFR';
- $realid = 'geoloc_countries.iso_3166_1_a2';
- break;
- case 'entreprise':
- $db = 'profile_job_enum INNER JOIN
- profile_job ON (profile_job.jobid = profile_job_enum.id)';
- $field = 'profile_job_enum.name';
- $unique = 'profile_job.uid';
- break;
- case 'fonctionTxt':
- $db = 'fonctions_def INNER JOIN
- profile_job ON (profile_job.fonctionid = fonctions_def.id)';
- $field = 'fonction_fr';
- $unique = 'uid';
- $realid = 'fonctions_def.id';
- $beginwith = false;
- break;
- case 'groupexTxt':
- $db = "#groupex#.asso AS a INNER JOIN
- #groupex#.membres AS m ON(a.id = m.asso_id
- AND (a.cat = 'GroupesX' OR a.cat = 'Institutions')
- AND a.pub = 'public')";
- $field='a.nom';
- $field2 = 'a.diminutif';
- if (strlen($q) > 2)
- $beginwith = false;
- $realid = 'a.id';
- $unique = 'm.uid';
- break;
- case 'nationaliteTxt':
- $db = 'geoloc_countries INNER JOIN
- profile ON (geoloc_countries.a2 IN (profile.nationality1, profile.nationality2, profile.nationality3))';
- $field = 'geoloc_countries.nationalityFR';
- $realid = 'geoloc_countries.iso_3166_1_a2';
- break;
- case 'description':
- $db = 'profile_job';
- $field = 'description';
- $unique = 'uid';
- break;
- case 'schoolTxt':
- $db = 'profile_education_enum INNER JOIN
- profile_education ON (profile_education_enum.id = profile_education.eduid)';
- $field = 'profile_education_enum.name';
- $unique = 'uid';
- $realid = 'profile_education_enum.id';
- if (strlen($q) > 2)
- $beginwith = false;
- break;
- case 'secteurTxt':
- $db = 'profile_job_sector_enum INNER JOIN
- profile_job ON (profile_job.sectorid = profile_job_sector_enum.id)';
- $field = 'profile_job_sector_enum.name';
- $realid = 'profile_job_sector_enum.id';
- $unique = 'uid';
- $beginwith = false;
- break;
- case 'subSubSector':
- $db = 'profile_job_subsubsector_enum';
- $field = 'name';
- $beginwith = false;
- $unique = 'name';
- $distinct = false;
- break;
- case 'sectionTxt':
- $db = 'sections AS acs
- INNER JOIN profiles AS acp ON (acp.section = acs.id)';
- $field = 'acs.text';
- $realid = 'acs.id';
- $beginwith = false;
- break;
- default: exit();
+ $enums = array(
+ 'binetTxt' => DirEnum::BINETS,
+ 'groupexTxt' => DirEnum::GROUPESX,
+ 'sectionTxt' => DirEnum::SECTIONS,
+ 'networking_typeTxt' => DirEnum::NETWORKS,
+ 'city' => DirEnum::LOCALITIES,
+ 'countryTxt' => DirEnum::COUNTRIES,
+ 'entreprise' => DirEnum::COMPANIES,
+ 'secteurTxt' => DirEnum::SECTORS,
+ 'description' => DirEnum::JOBDESCRIPTION,
+ 'nationaliteTxt' => DirEnum::NATIONALITIES,
+ 'schoolTxt' => DirEnum::EDUSCHOOLS,
+ );
+ if (!array_key_exists($type, $enums)) {
+ exit();