From f981776842674edfa2c654e4248a7b290df98501 Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Jacob?= Date: Tue, 19 Aug 2008 23:42:41 +0200 Subject: [PATCH] Adapts advanced search to the new education implementation. --- modules/search.php | 27 ++++++++++++++++----------- modules/search/search.inc.php | 4 ++-- templates/search/adv.form.tpl | 14 ++++---------- templates/search/adv.grade.form.tpl | 6 ++++-- 4 files changed, 26 insertions(+), 25 deletions(-) diff --git a/modules/search.php b/modules/search.php index 74a1a92..c4d96af 100644 --- a/modules/search.php +++ b/modules/search.php @@ -56,21 +56,24 @@ class SearchModule extends PLModule $school = Env::i('school'); } - if (!is_null($school)) { - $sql = 'SELECT name FROM profile_education_enum WHERE id=' . $school; + if ((!is_null($school)) && ($school != '')) { + $sql = 'SELECT degreeid + FROM profile_education_degree + WHERE eduid=' . $school; } else { - $sql = 'DESCRIBE profile_education_enum name'; + $sql = 'SELECT id + FROM profile_education_degree_enum + ORDER BY id'; } $res = XDB::query($sql); - $row = $res->fetchOneRow(); - if (!is_null($school)) { - $types = $row[0]; - } else { - $types = explode('(',$row[1]); - $types = str_replace("'","",substr($types[1],0,-1)); - } - Platal::page()->assign('choix_diplomas', explode(',',$types)); + Platal::page()->assign('choix_diplomas', $res->fetchColumn()); + + $sql = 'SELECT degree + FROM profile_education_degree_enum + ORDER BY id'; + $res = XDB::query($sql); + Platal::page()->assign('name_diplomas', $res->fetchColumn()); } function handler_quick(&$page, $action = null, $subaction = null) @@ -471,6 +474,8 @@ class SearchModule extends PLModule break; case 'school': $db = 'profile_education_enum'; + $field = 'name'; + $id = 'id'; $page->assign('onchange', 'changeSchool(this.value)'); break; case 'section': diff --git a/modules/search/search.inc.php b/modules/search/search.inc.php index b2e8744..c91dc54 100644 --- a/modules/search/search.inc.php +++ b/modules/search/search.inc.php @@ -68,8 +68,8 @@ function advancedSearchFromInput() array("(g.cat = 'GroupesX' OR g.cat = 'Institutions') AND g.pub = 'public'", 'gm.asso_id = g.id AND u.user_id=gm.uid')); $sectionField = new RefSField('section',array('u.section'),'','',''); - $schoolField = new RefSField('school',array('as.eduid'),'profile_education','`as`','u.user_id=as.uid'); - $diplomaField = new RefSField('diploma',array('ad.name'),'profile_education','ad','u.user_id=ad.uid'); + $schoolField = new RefSField('school', array('edu.eduid'), 'profile_education', 'edu', 'u.user_id = edu.uid'); + $diplomaField = new RefSField('diploma', array('edd.degreeid'), 'profile_education', 'edd', 'u.user_id = edd.uid'); $freeField = new RefSField('free',array('q.profile_freetext'),'','','',false); diff --git a/templates/search/adv.form.tpl b/templates/search/adv.form.tpl index 53f7ffd..29bdea5 100644 --- a/templates/search/adv.form.tpl +++ b/templates/search/adv.form.tpl @@ -75,19 +75,13 @@ if (schoolId) { $(".autocomplete[@name='schoolTxt']").addClass('hidden_valid'); - - $("[@name='diploma']").parent().load(baseurl + 'list/diploma/', { school:schoolId }, function() { - if ($("select[@name='diploma']").children("option").size() > 1) { - $("select[@name='diploma']").attr('value', '{/literal}{$smarty.request.diploma}{literal}'); - } else { - $("select[@name='diploma']").attr('value', ''); - } - }); } else { $(".autocomplete[@name='schoolTxt']").removeClass('hidden_valid'); - - $("select[@name='diploma']").attr('value', ''); } + + $("[@name='diploma']").parent().load(baseurl + 'list/diploma/', { school:schoolId }, function() { + $("select[@name='diploma']").attr('value', '{/literal}{$smarty.request.diploma}{literal}'); + }); } // when choosing autocomplete from list, must validate diff --git a/templates/search/adv.grade.form.tpl b/templates/search/adv.grade.form.tpl index 2372f6d..1a25e3a 100644 --- a/templates/search/adv.grade.form.tpl +++ b/templates/search/adv.grade.form.tpl @@ -23,8 +23,10 @@ -- 2.1.4