Finishes to move functions from geoloc.inc.php to geocoding.inc.php,
[platal.git] / include / education.func.inc.php
CommitLineData
0337d704 1<?php
2/***************************************************************************
9891bd15 3 * Copyright (C) 2003-2009 Polytechnique.org *
0337d704 4 * http://opensource.polytechnique.org/ *
5 * *
6 * This program is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation; either version 2 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program; if not, write to the Free Software *
18 * Foundation, Inc., *
19 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
20 ***************************************************************************/
21
58acfe8b 22function education_options($current = 0)
043bbacf 23{
58acfe8b 24 $html = '<option value="-1"></option>';
2700a4f5
SJ
25 $res = XDB::iterator("SELECT e.id AS id, g.pays AS country,
26 IF(CHAR_LENGTH(e.name) > 76, e.abbreviation, e.name) AS name
a5e30e55 27 FROM profile_education_enum AS e
c7eac294
SJ
28 LEFT JOIN geoloc_pays AS g ON (e.country = g.a2)
29 WHERE EXISTS (SELECT *
30 FROM profile_education_degree AS d
31 WHERE e.id = d.eduid)
a5e30e55
SJ
32 ORDER BY g.pays, e.name");
33 $country = "";
f711b03f 34 while ($arr_edu = $res->next()) {
a5e30e55
SJ
35 if ($arr_edu["country"] != $country) {
36 $country = $arr_edu["country"];
37 $html .= "<optgroup label=" . $country . ">";
38 }
f711b03f 39 $html .= '<option value="' . $arr_edu["id"] . '"';
58acfe8b 40 if ($arr_edu["id"] == $current) {
043bbacf
SJ
41 $html .= " selected='selected'";
42 }
f711b03f 43 $html .= '>' . htmlspecialchars($arr_edu["name"]) . "</option>\n";
0337d704 44 }
45 return $html;
46}
043bbacf 47
f711b03f 48/** pour appeller education_options depuis smarty
0337d704 49 */
f711b03f 50function _education_options_smarty($params)
043bbacf
SJ
51{
52 if(!isset($params['selected'])) {
b34046e9 53 $params['selected'] = 0;
043bbacf 54 }
f711b03f 55 return education_options($params['selected']);
0337d704 56}
f711b03f 57Platal::page()->register_function('education_options', '_education_options_smarty');
0337d704 58
f711b03f 59/** affiche un Array javascript contenant les diplômes de chaque formation
0337d704 60 */
f711b03f 61function education_degree()
043bbacf 62{
0337d704 63 $html = "";
c7eac294
SJ
64 $res = XDB::iterRow("SELECT d.eduid, d.degreeid
65 FROM profile_education_enum AS e
66 INNER JOIN profile_education_degree AS d ON (e.id = d.eduid)
67 LEFT JOIN geoloc_pays AS g ON (e.country = g.a2)
a5e30e55 68 ORDER BY g.pays, e.name");
f711b03f
SJ
69 if ($edu_degree = $res->next()) {
70 $eduid = $edu_degree['0'];
043bbacf 71 $html .= "[";
f711b03f
SJ
72 $html .= $edu_degree['1'];
73 $edu_degree = $res->next();
74 while ($edu_degree['0'] == $eduid) {
75 $html .= "," . $edu_degree['1'];
76 $edu_degree = $res->next();
043bbacf
SJ
77 }
78 $html .= "]";
0337d704 79 }
f711b03f
SJ
80 while ($edu_degree) {
81 $eduid = $edu_degree['0'];
043bbacf 82 $html .= ",\n[";
f711b03f
SJ
83 $html .= $edu_degree['1'];
84 $edu_degree = $res->next();
85 while ($edu_degree['0'] == $eduid) {
86 $html .= "," . $edu_degree['1'];
87 $edu_degree = $res->next();
043bbacf
SJ
88 }
89 $html .= "]";
0337d704 90 }
91 return $html;
92}
f711b03f 93Platal::page()->register_function('education_degree', 'education_degree');
0337d704 94
f711b03f 95/** affiche tous les types possibles de diplômes
0337d704 96 */
f711b03f 97function education_degree_all()
043bbacf 98{
043bbacf
SJ
99 $res = XDB::query("SELECT id
100 FROM profile_education_degree_enum
101 ORDER BY id");
102 return implode(',', $res->fetchColumn());
103}
f711b03f 104Platal::page()->register_function('education_degree_all', 'education_degree_all');
043bbacf 105
f711b03f 106/** affiche les noms de tous les diplômes possibles
043bbacf 107 */
f711b03f 108function education_degree_name()
043bbacf 109{
043bbacf 110 $res = XDB::query("SELECT degree
c7eac294
SJ
111 FROM profile_education_degree_enum
112 ORDER BY id");
113 return '"' . implode('","', $res->fetchColumn()) . '"';
0337d704 114}
f711b03f 115Platal::page()->register_function('education_degree_name', 'education_degree_name');
0337d704 116
f711b03f 117/** formatte une formation pour l'affichage
0337d704 118 */
1504ac45 119function education_fmt($name, $url, $degree, $grad_year, $field, $program, $sexe, $long)
043bbacf
SJ
120{
121 $field = strtolower($field);
122 $txt = "";
123
1504ac45 124 if ($grad_year || $field || $program) {
58acfe8b 125 $txt .= "<span title=\"(";
1504ac45
SJ
126 if ($program) {
127 $txt .= $program;
128 if ($grad_year || $field) {
129 $txt .= ", ";
130 }
131 }
043bbacf
SJ
132 if ($grad_year) {
133 if ($sexe) {
134 $txt .= "diplômée en $grad_year";
135 } else {
136 $txt .= "diplômé en $grad_year";
137 }
138 if ($field) {
139 $txt .= ", ";
140 }
141 }
142 if ($field) {
143 $txt .= "domaine : $field)\">";
144 }
b34046e9 145 }
043bbacf 146
c7eac294
SJ
147 if (($degree != "Lic.") || ($long)) {
148 if (($degree != "Ing.") && ($degree != "Dipl.")) {
043bbacf
SJ
149 $txt .= $degree;
150 }
c7eac294
SJ
151 if ($name) {
152 $txt .= ' ';
153 }
154 if ($url != ' ') {
155 $txt .= "<a href=\"$url\" onclick=\"return popup(this)\">$name</a>";
156 } else {
157 $txt .= $name;
043bbacf 158 }
0337d704 159 }
043bbacf
SJ
160 $txt .= "</span>";
161
0337d704 162 return $txt;
163}
043bbacf 164
f711b03f 165function _education_fmt($params, &$smarty)
043bbacf 166{
0337d704 167 extract($params);
1504ac45 168 return education_fmt($name, $url, $degree, $grad_year, $field, $program, $sexe, $long);
0337d704 169}
f711b03f 170Platal::page()->register_function('education_fmt', '_education_fmt');
0337d704 171
a7de4ef7 172// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
0337d704 173?>