Commit | Line | Data |
---|---|---|
3950bc21 FB |
1 | <?php |
2 | /*************************************************************************** | |
9f5bd98e | 3 | * Copyright (C) 2003-2010 Polytechnique.org * |
3950bc21 FB |
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 | ||
12bcf04b | 22 | class ProfileSettingJob extends ProfileSettingGeocoding |
37d44b3b FB |
23 | { |
24 | private $pub; | |
541e8d03 SJ |
25 | private $email_new; |
26 | private $email; | |
27 | private $url; | |
f93fb300 | 28 | private $bool; |
37d44b3b FB |
29 | private $checks; |
30 | ||
31 | public function __construct() | |
32 | { | |
12bcf04b | 33 | $this->pub = new ProfileSettingPub(); |
541e8d03 SJ |
34 | $this->email |
35 | = $this->email_new | |
12bcf04b RB |
36 | = new ProfileSettingEmail(); |
37 | $this->url = new ProfileSettingWeb(); | |
38 | $this->bool = new ProfileSettingBool(); | |
541e8d03 SJ |
39 | $this->checks = array('url' => array('w_url'), |
40 | 'email' => array('w_email'), | |
41 | 'pub' => array('pub', 'w_email_pub'), | |
42 | ); | |
37d44b3b FB |
43 | } |
44 | ||
afaa2cc7 SJ |
45 | public function emptyJob() |
46 | { | |
47 | return array( | |
48 | 'id' => '0', | |
49 | 'jobid' => '', | |
50 | 'pub' => 'private', | |
51 | 'name' => '', | |
52 | 'hq_acronym' => '', | |
53 | 'hq_url' => '', | |
54 | 'hq_email' => '', | |
55 | 'hq_address' => array( | |
56 | 'text' => '', | |
57 | 'accuracy' => '', | |
58 | 'postalText' => '', | |
59 | 'postalCode' => '', | |
60 | 'administrativeAreaId' => '', | |
61 | 'subAdministrativeAreaId' => '', | |
62 | 'localityId' => '', | |
63 | 'countryId' => '', | |
64 | 'latitude' => '', | |
65 | 'longitude' => '', | |
66 | 'north' => '', | |
67 | 'south' => '', | |
68 | 'east' => '', | |
69 | 'west' => '', | |
70 | 'cedex' => '', | |
71 | 'updateTime' => '', | |
72 | 'changed' => '0', | |
73 | 'removed' => '0', | |
74 | ), | |
75 | 'hq_phone' => '', | |
76 | 'hq_fax' => '', | |
77 | 'subSubSectorName' => null, | |
78 | 'sector' => '0', | |
79 | 'subSector' => '0', | |
80 | 'subSubSector' => '0', | |
81 | 'description' => '', | |
82 | 'w_url' => '', | |
83 | 'w_address' => array( | |
84 | 'pub' => 'private', | |
85 | 'text' => '', | |
86 | 'accuracy' => '', | |
87 | 'postalText' => '', | |
88 | 'postalCode' => '', | |
89 | 'administrativeAreaId' => '', | |
90 | 'subAdministrativeAreaId' => '', | |
91 | 'localityId' => '', | |
92 | 'countryId' => '', | |
93 | 'latitude' => '', | |
94 | 'longitude' => '', | |
95 | 'north' => '', | |
96 | 'south' => '', | |
97 | 'east' => '', | |
98 | 'west' => '', | |
99 | 'cedex' => '', | |
100 | 'updateTime' => '', | |
101 | 'changed' => '0', | |
102 | 'removed' => '0', | |
103 | ), | |
104 | 'w_email' => '', | |
105 | 'w_email_pub' => 'private', | |
106 | 'w_email_new' => '', | |
107 | 'w_phone' => array(0 => array( | |
108 | 'type' => 'fixed', | |
109 | 'tel' => '', | |
110 | 'pub' => 'private', | |
111 | 'comment' => '', | |
112 | )), | |
113 | ); | |
114 | } | |
115 | ||
b814a8b8 | 116 | private function cleanJob(ProfilePage &$page, $jobid, array &$job, &$success) |
37d44b3b FB |
117 | { |
118 | $success = true; | |
541e8d03 SJ |
119 | if ($job['w_email'] == "new@example.org") { |
120 | $job['w_email'] = $job['w_email_new']; | |
121 | } | |
37d44b3b FB |
122 | foreach ($this->checks as $obj=>&$fields) { |
123 | $chk =& $this->$obj; | |
124 | foreach ($fields as $field) { | |
125 | $job[$field] = $chk->value($page, $field, $job[$field], $s); | |
126 | if (!$s) { | |
127 | $success = false; | |
128 | $job[$field . '_error'] = true; | |
129 | } | |
130 | } | |
131 | } | |
541e8d03 | 132 | if (!$job['subSubSectorName']) { |
c7139c07 SJ |
133 | $res = XDB::query("SELECT name |
134 | FROM profile_job_subsubsector_enum | |
135 | WHERE id = {?}", | |
541e8d03 SJ |
136 | $job['subSubSector']); |
137 | $job['subSubSectorName'] = $res->fetchOneCell(); | |
c7139c07 SJ |
138 | } else { |
139 | $res = XDB::query("SELECT sectorid, subsectorid, id | |
140 | FROM profile_job_subsubsector_enum | |
141 | WHERE name = {?}", | |
541e8d03 | 142 | $job['subSubSectorName']); |
c7139c07 SJ |
143 | if ($res->numRows() != 1) { |
144 | $success = false; | |
145 | $job['sector_error'] = true; | |
146 | } else { | |
541e8d03 | 147 | list($job['sector'], $job['subSector'], $job['subSubSector']) = $res->fetchOneRow(); |
c7139c07 SJ |
148 | } |
149 | } | |
b814a8b8 | 150 | if ($job['name']) { |
c7139c07 SJ |
151 | $res = XDB::query("SELECT id |
152 | FROM profile_job_enum | |
153 | WHERE name = {?}", | |
154 | $job['name']); | |
155 | if ($res->numRows() != 1) { | |
4d7d27fc SJ |
156 | $this->geocodeAddress($job['hq_address'], $s); |
157 | if (!$s) { | |
158 | $gmapsGeocoder = new GMapsGeocoder(); | |
159 | $job['hq_address'] = $gmapsGeocoder->stripGeocodingFromAddress($job['hq_address']); | |
160 | } | |
024ec1e5 | 161 | $req = new EntrReq(S::user(), $page->profile, $jobid, $job['name'], $job['hq_acronym'], $job['hq_url'], |
4d7d27fc | 162 | $job['hq_email'], $job['hq_fixed'], $job['hq_fax'], $job['hq_address']); |
b814a8b8 SJ |
163 | $req->submit(); |
164 | $job['jobid'] = null; | |
858a5b42 | 165 | sleep(1); |
c7139c07 SJ |
166 | } else { |
167 | $job['jobid'] = $res->fetchOneCell(); | |
168 | } | |
169 | } | |
541e8d03 SJ |
170 | $job['w_address']['pub'] = $this->pub->value($page, 'address_pub', $job['w_address']['pub'], $s); |
171 | if (!isset($job['w_phone'])) { | |
172 | $job['w_phone'] = array(); | |
bde2be3b | 173 | } |
12bcf04b | 174 | $profiletel = new ProfileSettingPhones('pro', $jobid); |
541e8d03 | 175 | $job['w_phone'] = $profiletel->value($page, 'tel', $job['w_phone'], $s); |
afaa2cc7 | 176 | |
37d44b3b FB |
177 | unset($job['removed']); |
178 | unset($job['new']); | |
37d44b3b FB |
179 | } |
180 | ||
181 | public function value(ProfilePage &$page, $field, $value, &$success) | |
182 | { | |
a6483c12 | 183 | require_once 'validations.inc.php'; |
024ec1e5 | 184 | $entreprise = ProfileValidate::get_typed_requests($page->pid(), 'entreprise'); |
b814a8b8 SJ |
185 | $entr_val = 0; |
186 | ||
37d44b3b FB |
187 | $init = false; |
188 | if (is_null($value)) { | |
189 | $value = $page->values['jobs']; | |
190 | $init = true; | |
191 | } | |
192 | $success = true; | |
a6483c12 | 193 | foreach ($value as $key => &$job) { |
b814a8b8 | 194 | $job['name'] = trim($job['name']); |
a6483c12 | 195 | if ($job['name'] == '' && $entreprise) { |
b814a8b8 | 196 | $job['tmp_name'] = $entreprise[$entr_val]->name; |
a6483c12 SJ |
197 | ++$entr_val; |
198 | } else if ($job['name'] == '') { | |
ba6ee875 SJ |
199 | if ($job['subSubSectorName'] == '' && $job['description'] == '' && $job['w_url'] == '' |
200 | && $job['w_address']['text'] == '' && $job['w_email'] == '' | |
201 | && count($job['w_phone']) == 1 && $job['w_phone']['tel'] == '') { | |
202 | array_splice($value, $key, 1); | |
203 | continue; | |
204 | } | |
205 | ||
a6483c12 SJ |
206 | $job['name_error'] = true; |
207 | $success = false; | |
b814a8b8 | 208 | } |
b94719c1 | 209 | |
541e8d03 | 210 | if (isset($job['removed']) && $job['removed']) { |
b94719c1 SJ |
211 | if ($job['name'] == '' && $entreprise) { |
212 | $entreprise[$entr_val - 1]->clean(); | |
213 | } | |
ed01acac | 214 | array_splice($value, $key, 1); |
37d44b3b FB |
215 | } |
216 | } | |
a6483c12 | 217 | foreach ($value as $key => &$job) { |
37d44b3b | 218 | $ls = true; |
541e8d03 | 219 | $this->geocodeAddress($job['w_address'], $s); |
37d44b3b | 220 | $ls = ($ls && $s); |
bde2be3b | 221 | $this->cleanJob($page, $key, $job, $s); |
37d44b3b FB |
222 | $ls = ($ls && $s); |
223 | if (!$init) { | |
224 | $success = ($success && $ls); | |
225 | } | |
226 | } | |
227 | return $value; | |
228 | } | |
229 | ||
230 | public function save(ProfilePage &$page, $field, $value) | |
231 | { | |
ecad8a08 SJ |
232 | // TODO: use address and phone classes to update profile_job_enum and profile_phones once they are done. |
233 | ||
a6483c12 | 234 | require_once 'profil.func.inc.php'; |
b814a8b8 | 235 | |
c7139c07 | 236 | XDB::execute("DELETE FROM profile_job |
ce0b2c6f | 237 | WHERE pid = {?}", |
a6483c12 | 238 | $page->pid()); |
541e8d03 SJ |
239 | XDB::execute("DELETE FROM profile_addresses |
240 | WHERE pid = {?} AND type = 'job'", | |
a6483c12 | 241 | $page->pid()); |
b235d980 | 242 | XDB::execute("DELETE FROM profile_phones |
ce0b2c6f | 243 | WHERE pid = {?} AND link_type = 'pro'", |
a6483c12 SJ |
244 | $page->pid()); |
245 | foreach ($value as $id => &$job) { | |
afaa2cc7 SJ |
246 | if (isset($job['name']) && $job['name']) { |
247 | if (isset($job['jobid']) && $job['jobid']) { | |
ce0b2c6f | 248 | XDB::execute("INSERT INTO profile_job (pid, id, description, sectorid, subsectorid, |
afaa2cc7 SJ |
249 | subsubsectorid, email, url, pub, email_pub, jobid) |
250 | VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})", | |
a6483c12 | 251 | $page->pid(), $id, $job['description'], $job['sector'], $job['subSector'], |
afaa2cc7 SJ |
252 | $job['subSubSector'], $job['w_email'], $job['w_url'], $job['pub'], $job['w_email_pub'], $job['jobid']); |
253 | } else { | |
ce0b2c6f | 254 | XDB::execute("INSERT INTO profile_job (pid, id, description, sectorid, subsectorid, |
afaa2cc7 SJ |
255 | subsubsectorid, email, url, pub, email_pub) |
256 | VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})", | |
a6483c12 | 257 | $page->pid(), $id, $job['description'], $job['sector'], $job['subSector'], |
afaa2cc7 SJ |
258 | $job['subSubSector'], $job['w_email'], $job['w_url'], $job['pub'], $job['w_email_pub']); |
259 | } | |
12bcf04b | 260 | $address = new ProfileSettingAddress(); |
a6483c12 | 261 | $address->saveAddress($page->pid(), $id, $job['w_address'], 'job'); |
12bcf04b | 262 | $profiletel = new ProfileSettingPhones('pro', $id); |
e3164bb1 | 263 | $profiletel->saveTels($page->pid(), 'tel', $job['w_phone']); |
b814a8b8 | 264 | } |
37d44b3b FB |
265 | } |
266 | } | |
a0fce0c6 SJ |
267 | |
268 | public function getText($value) { | |
269 | $jobs = array(); | |
270 | foreach ($value as $id => $job) { | |
271 | $address = new ProfileSettingAddress(); | |
272 | $phones = new ProfileSettingPhones('pro', $id); | |
273 | $jobs[] = 'Entreprise : ' . $job['name'] . ', secteur : ' . $job['subSubSectorName'] | |
274 | . ', description : ' . $job['description'] . ', web : ' . $job['w_url'] | |
275 | . ', email : ' . $job['w_email'] | |
276 | . ', ' . $phones->getText($job['w_phone']) . ', ' . $address->getText($job['w_address']); | |
277 | } | |
278 | return implode(' ; ' , $jobs); | |
279 | } | |
37d44b3b FB |
280 | } |
281 | ||
12bcf04b | 282 | class ProfileSettingJobs extends ProfilePage |
3950bc21 FB |
283 | { |
284 | protected $pg_template = 'profile/jobs.tpl'; | |
285 | ||
286 | public function __construct(PlWizard &$wiz) | |
287 | { | |
288 | parent::__construct($wiz); | |
37d44b3b | 289 | $this->settings['cv'] = null; |
a0fce0c6 | 290 | /* TODO: ProfileSettingCorps, required for notifications. */ |
72e96bc0 | 291 | $this->settings['corps'] = null; |
12bcf04b | 292 | $this->settings['jobs'] = new ProfileSettingJob(); |
72e96bc0 | 293 | $this->watched = array('cv' => true, 'jobs' => true, 'corps' => true); |
37d44b3b FB |
294 | } |
295 | ||
7c2e0f0d | 296 | protected function _fetchData() |
37d44b3b | 297 | { |
37d44b3b FB |
298 | // Checkout the CV |
299 | $res = XDB::query("SELECT cv | |
e5bcd851 FB |
300 | FROM profiles |
301 | WHERE pid = {?}", | |
302 | $this->pid()); | |
37d44b3b FB |
303 | $this->values['cv'] = $res->fetchOneCell(); |
304 | ||
72e96bc0 SJ |
305 | // Checkout the corps |
306 | $res = XDB::query("SELECT original_corpsid AS original, current_corpsid AS current, | |
307 | rankid AS rank, corps_pub AS pub | |
308 | FROM profile_corps | |
ce0b2c6f | 309 | WHERE pid = {?}", |
e5bcd851 | 310 | $this->pid()); |
72e96bc0 SJ |
311 | $this->values['corps'] = $res->fetchOneAssoc(); |
312 | ||
37d44b3b | 313 | // Build the jobs tree |
563f86f5 | 314 | $res = XDB::iterRow("SELECT j.id, j.jobid, je.name, j.sectorid, j.subsectorid, j.subsubsectorid, |
541e8d03 SJ |
315 | s.name, j.description, j.email, j.email_pub, j.url, j.pub, |
316 | je.acronym, je.url, je.email, | |
317 | aw.accuracy, aw.text, aw.postalText, aw.postalCode, aw.localityId, | |
318 | aw.subAdministrativeAreaId, aw.administrativeAreaId, aw.countryId, | |
319 | aw.latitude, aw.longitude, aw.pub, aw.updateTime, | |
320 | aw.north, aw.south, aw.east, aw.west, | |
321 | ah.accuracy, ah.text, ah.postalText, ah.postalCode, ah.localityId, | |
322 | ah.subAdministrativeAreaId, ah.administrativeAreaId, ah.countryId, | |
323 | ah.latitude, ah.longitude, ah.pub, ah.updateTime, | |
324 | ah.north, ah.south, ah.east, ah.west | |
c7139c07 SJ |
325 | FROM profile_job AS j |
326 | LEFT JOIN profile_job_enum AS je ON (j.jobid = je.id) | |
c7139c07 | 327 | LEFT JOIN profile_job_subsubsector_enum AS s ON (s.id = j.subsubsectorid) |
ce0b2c6f | 328 | LEFT JOIN profile_addresses AS aw ON (aw.pid = j.pid AND aw.type = 'job' |
4d7d27fc | 329 | AND aw.id = j.id) |
541e8d03 | 330 | LEFT JOIN profile_addresses AS ah ON (ah.jobid = j.jobid AND ah.type = 'hq') |
ce0b2c6f | 331 | WHERE j.pid = {?} |
541e8d03 | 332 | ORDER BY j.id", |
a6391000 | 333 | $this->pid()); |
37d44b3b | 334 | $this->values['jobs'] = array(); |
bde2be3b | 335 | |
afaa2cc7 SJ |
336 | if ($res->numRows() > 0) { |
337 | while (list($id, $jobid, $name, $sector, $subSector, $subSubSector, | |
338 | $subSubSectorName, $description, $w_email, $w_emailPub, $w_url, $pub, | |
339 | $hq_acronym, $hq_url, $hq_email, | |
340 | $w_accuracy, $w_text, $w_postalText, $w_postalCode, $w_localityId, | |
341 | $w_subAdministrativeAreaId, $w_administrativeAreaId, $w_countryId, | |
342 | $w_latitude, $w_longitude, $w_pub, $w_updateTime, | |
343 | $w_north, $w_south, $w_east, $w_west, | |
344 | $hq_accuracy, $hq_text, $hq_postalText, $hq_postalCode, $hq_localityId, | |
345 | $hq_subAdministrativeAreaId, $hq_administrativeAreaId, $hq_countryId, | |
346 | $hq_latitude, $hq_longitude, $hq_pub, $hq_updateTime, | |
347 | $hq_north, $hq_south, $hq_east, $hq_west, | |
348 | ) = $res->next()) { | |
349 | $this->values['jobs'][] = array( | |
350 | 'id' => $id, | |
351 | 'jobid' => $jobid, | |
352 | 'name' => $name, | |
353 | 'sector' => $sector, | |
354 | 'subSector' => $subSector, | |
355 | 'subSubSector' => $subSubSector, | |
356 | 'subSubSectorName' => $subSubSectorName, | |
357 | 'description' => $description, | |
358 | 'pub' => $pub, | |
359 | 'w_email' => $w_email, | |
360 | 'w_email_pub' => $w_emailPub, | |
361 | 'w_url' => $w_url, | |
362 | 'hq_acronym' => $hq_acronym, | |
363 | 'hq_url' => $hq_url, | |
364 | 'hq_email' => $hq_email, | |
365 | 'w_address' => array( | |
366 | 'accuracy' => $w_accuracy, | |
367 | 'text' => $w_text, | |
368 | 'postalText' => $w_postalText, | |
369 | 'postalCode' => $w_postalCode, | |
370 | 'localityId' => $w_localityId, | |
371 | 'subAdministrativeAreaId' => $w_subAdministrativeAreaId, | |
372 | 'administrativeAreaId' => $w_administrativeAreaId, | |
373 | 'countryId' => $w_countryId, | |
374 | 'latitude' => $w_latitude, | |
375 | 'longitude' => $w_longitude, | |
376 | 'pub' => $w_pub, | |
377 | 'updateTime' => $w_updateTime, | |
378 | 'north' => $w_north, | |
379 | 'south' => $w_south, | |
380 | 'east' => $w_east, | |
381 | 'west' => $w_west, | |
382 | ), | |
383 | 'hq_address' => array( | |
384 | 'accuracy' => $hq_accuracy, | |
385 | 'text' => $hq_text, | |
386 | 'postalText' => $hq_postalText, | |
387 | 'postalCode' => $hq_postalCode, | |
388 | 'localityId' => $hq_localityId, | |
389 | 'subAdministrativeAreaId' => $hq_subAdministrativeAreaId, | |
390 | 'administrativeAreaId' => $hq_administrativeAreaId, | |
391 | 'countryId' => $hq_countryId, | |
392 | 'latitude' => $hq_latitude, | |
393 | 'longitude' => $hq_longitude, | |
394 | 'pub' => $hq_pub, | |
395 | 'updateTime' => $hq_updateTime, | |
396 | 'north' => $hq_north, | |
397 | 'south' => $hq_south, | |
398 | 'east' => $hq_east, | |
399 | 'west' => $hq_west, | |
400 | ), | |
401 | ); | |
bde2be3b | 402 | } |
afaa2cc7 SJ |
403 | |
404 | $res = XDB::iterator("SELECT link_id AS jobid, tel_type AS type, pub, display_tel AS tel, comment | |
405 | FROM profile_phones | |
ce0b2c6f | 406 | WHERE pid = {?} AND link_type = 'pro' |
afaa2cc7 | 407 | ORDER BY link_id", |
a6483c12 | 408 | $this->pid()); |
afaa2cc7 SJ |
409 | $i = 0; |
410 | $jobNb = count($this->values['jobs']); | |
411 | while ($phone = $res->next()) { | |
412 | $jobid = $phone['jobid']; | |
413 | while ($i < $jobNb && $this->values['jobs'][$i]['id'] < $jobid) { | |
414 | $i++; | |
415 | } | |
416 | if ($i >= $jobNb) { | |
417 | break; | |
418 | } | |
419 | $job =& $this->values['jobs'][$i]; | |
420 | if (!isset($job['w_phone'])) { | |
421 | $job['w_phone'] = array(); | |
422 | } | |
423 | if ($job['id'] == $jobid) { | |
424 | $job['w_phone'][] = $phone; | |
425 | } | |
bde2be3b | 426 | } |
afaa2cc7 SJ |
427 | foreach ($this->values['jobs'] as $id => &$job) { |
428 | if (!isset($job['w_phone'])) { | |
429 | $job['w_phone'] = array( | |
430 | 0 => array( | |
431 | 'type' => 'fixed', | |
432 | 'tel' => '', | |
433 | 'pub' => 'private', | |
434 | 'comment' => '', | |
435 | ) | |
436 | ); | |
437 | } | |
bde2be3b | 438 | } |
afaa2cc7 SJ |
439 | |
440 | $job['w_email_new'] = ''; | |
441 | if (!isset($job['hq_phone'])) { | |
442 | $job['hq_phone'] = ''; | |
bde2be3b | 443 | } |
afaa2cc7 SJ |
444 | if (!isset($job['hq_fax'])) { |
445 | $job['hq_fax'] = ''; | |
bde2be3b | 446 | } |
afaa2cc7 SJ |
447 | if (!isset($job['w_email_pub'])) { |
448 | $job['w_email_pub'] = 'private'; | |
bde2be3b | 449 | } |
afaa2cc7 SJ |
450 | if (!$job['hq_address']['text']) { |
451 | $job['hq_address'] = array( | |
452 | 'text' => '', | |
453 | 'accuracy' => '', | |
454 | 'postalText' => '', | |
455 | 'postalCode' => '', | |
456 | 'administrativeAreaId' => '', | |
457 | 'subAdministrativeAreaId' => '', | |
458 | 'localityId' => '', | |
459 | 'countryId' => '', | |
460 | 'latitude' => '', | |
461 | 'longitude' => '', | |
462 | 'north' => '', | |
463 | 'south' => '', | |
464 | 'east' => '', | |
465 | 'west' => '', | |
466 | 'cedex' => '', | |
467 | 'updateTime' => '', | |
468 | 'changed' => '0', | |
469 | 'removed' => '0', | |
470 | ); | |
471 | } | |
472 | $job['w_address']['cedex'] = ''; | |
473 | $job['w_address']['changed'] = '0'; | |
474 | $job['w_address']['removed'] = '0'; | |
475 | } else { | |
476 | $this->values['jobs'][] = $this->settings['jobs']->emptyJob(); | |
bde2be3b | 477 | } |
37d44b3b FB |
478 | } |
479 | ||
7c2e0f0d | 480 | protected function _saveData() |
37d44b3b FB |
481 | { |
482 | if ($this->changed['cv']) { | |
e5bcd851 | 483 | XDB::execute("UPDATE profiles |
37d44b3b | 484 | SET cv = {?} |
e5bcd851 FB |
485 | WHERE pid = {?}", |
486 | $this->values['cv'], $this->pid()); | |
37d44b3b | 487 | } |
72e96bc0 SJ |
488 | |
489 | if ($this->changed['corps']) { | |
34d09b54 SJ |
490 | XDB::execute('REPLACE INTO profile_corps (original_corpsid, current_corpsid, rankid, corps_pub, pid) |
491 | VALUES ({?}, {?}, {?}, {?}, {?})', | |
72e96bc0 | 492 | $this->values['corps']['original'], $this->values['corps']['current'], |
e5bcd851 | 493 | $this->values['corps']['rank'], $this->values['corps']['pub'], $this->pid()); |
72e96bc0 | 494 | } |
3950bc21 | 495 | } |
2dcac0f5 | 496 | |
04334c61 | 497 | public function _prepare(PlPage &$page, $id) |
2dcac0f5 | 498 | { |
a6483c12 | 499 | require_once 'emails.combobox.inc.php'; |
e5bcd851 | 500 | fill_email_combobox($page, $this->owner, $this->profile); |
b715c1e1 | 501 | |
33b6f5a0 SJ |
502 | $res = XDB::query("SELECT id, name AS label |
503 | FROM profile_job_sector_enum"); | |
541e8d03 | 504 | $page->assign('sectors', $res->fetchAllAssoc()); |
72e96bc0 SJ |
505 | |
506 | $res = XDB::iterator("SELECT id, name | |
507 | FROM profile_corps_enum | |
508 | ORDER BY id = 1 DESC, name"); | |
509 | $page->assign('original_corps', $res->fetchAllAssoc()); | |
510 | ||
511 | $res = XDB::iterator("SELECT id, name | |
512 | FROM profile_corps_enum | |
513 | WHERE still_exists = 1 | |
514 | ORDER BY id = 1 DESC, name"); | |
515 | $page->assign('current_corps', $res->fetchAllAssoc()); | |
516 | ||
517 | $res = XDB::iterator("SELECT id, name | |
e489faf7 SJ |
518 | FROM profile_corps_rank_enum |
519 | ORDER BY id = 1 DESC, name"); | |
72e96bc0 | 520 | $page->assign('corps_rank', $res->fetchAllAssoc()); |
2dcac0f5 | 521 | } |
3950bc21 FB |
522 | } |
523 | ||
524 | // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: | |
525 | ?> |