Adapts advanced search to the new education implementation.
authorStéphane Jacob <jacou@melix.net>
Tue, 19 Aug 2008 21:42:41 +0000 (23:42 +0200)
committerStéphane Jacob <jacou@melix.net>
Tue, 19 Aug 2008 21:43:26 +0000 (23:43 +0200)
modules/search.php
modules/search/search.inc.php
templates/search/adv.form.tpl
templates/search/adv.grade.form.tpl

index 74a1a92..c4d96af 100644 (file)
@@ -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':
index b2e8744..c91dc54 100644 (file)
@@ -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);
 
index 53f7ffd..29bdea5 100644 (file)
 
     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
index 2372f6d..1a25e3a 100644 (file)
 <select name="diploma">
 <option value=""> - </option>
 {section name=diploma loop=$choix_diplomas}
-<option value="{$choix_diplomas[diploma]}">
-  {$choix_diplomas[diploma]}
+{assign var=i value=$choix_diplomas[diploma]}
+{assign var=id value=$i-1}
+<option value="{$i}">
+  {$name_diplomas[$id]}
 </option>
 {/section}
 </select>