X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;ds=sidebyside;f=modules%2Fprofile%2Fjobs.inc.php;h=37b8f3d9da9e556fdb78c4f2ec6afc3c3400c956;hb=17c6e7bbf0eaf0dcef64a24a727da024ca2fb651;hp=7a325bfd082b72e30f6f487f72af38c59b181acd;hpb=82af3fc3b6e003b0cbbcf4faf4ed4f0ea5c07570;p=platal.git diff --git a/modules/profile/jobs.inc.php b/modules/profile/jobs.inc.php index 7a325bf..37b8f3d 100644 --- a/modules/profile/jobs.inc.php +++ b/modules/profile/jobs.inc.php @@ -68,7 +68,7 @@ class ProfileSettingJob implements ProfileSetting $jobs = XDB::fetchAllAssoc('SELECT j.id, j.jobid, je.name, j.description, j.email AS w_email, j.email_pub AS w_email_pub, - j.url AS w_url, j.pub + j.url AS w_url, j.pub, j.entry_year AS w_entry_year FROM profile_job AS j LEFT JOIN profile_job_enum AS je ON (j.jobid = je.id) WHERE j.pid = {?} @@ -172,11 +172,7 @@ class ProfileSettingJob implements ProfileSetting WHERE name = {?}", $job['name']); if ($res->numRows() != 1) { - $req = new EntrReq(S::user(), $page->profile, $jobid, $job['name'], $job['hq_acronym'], $job['hq_url'], - $job['hq_email'], $job['hq_fixed'], $job['hq_fax'], $job['hq_address']); - $req->submit(); $job['jobid'] = null; - sleep(1); } else { $job['jobid'] = $res->fetchOneCell(); } @@ -187,6 +183,11 @@ class ProfileSettingJob implements ProfileSetting } $job['w_phone'] = Phone::formatFormArray($job['w_phone'], $s, $maxPublicity); + if ($job['w_entry_year'] && strlen($job['w_entry_year']) != 4) { + $job['w_entry_year_error'] = true; + $success = false; + } + unset($job['removed']); unset($job['new']); } @@ -259,29 +260,38 @@ class ProfileSettingJob implements ProfileSetting public function save(ProfilePage $page, $field, $value) { + $deletePrivate = S::user()->isMe($page->owner) || S::admin(); XDB::execute('DELETE FROM pj, pjt USING profile_job AS pj LEFT JOIN profile_job_term AS pjt ON (pj.pid = pjt.pid AND pj.id = pjt.jid) WHERE pj.pid = {?}' . (($deletePrivate) ? '' : ' AND pj.pub IN (\'public\', \'ax\')'), $page->pid()); - Address::deleteAddresses($page->pid(), Address::LINK_JOB, null, $deletePrivate); + Address::deleteAddresses($page->pid(), Address::LINK_JOB, null, null, $deletePrivate); Phone::deletePhones($page->pid(), Phone::LINK_JOB, null, $deletePrivate); + $previous_requests = EntrReq::get_typed_requests($page->pid(), 'entreprise'); + foreach ($previous_requests as $request) { + $request->clean(); + } $terms_values = array(); foreach ($value as $id => &$job) { if (($job['pub'] != 'private' || $deletePrivate) && (isset($job['name']) && $job['name'])) { if (isset($job['jobid']) && $job['jobid']) { - XDB::execute('INSERT INTO profile_job (pid, id, description, email, + XDB::execute('INSERT INTO profile_job (pid, id, description, email, entry_year, url, pub, email_pub, jobid) - VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})', - $page->pid(), $id, $job['description'], $job['w_email'], + VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})', + $page->pid(), $id, $job['description'], $job['w_email'], $job['w_entry_year'], $job['w_url'], $job['pub'], $job['w_email_pub'], $job['jobid']); } else { - XDB::execute('INSERT INTO profile_job (pid, id, description, email, + XDB::execute('INSERT INTO profile_job (pid, id, description, email, entry_year, url, pub, email_pub) - VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?})', - $page->pid(), $id, $job['description'], $job['w_email'], + VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})', + $page->pid(), $id, $job['description'], $job['w_email'], $job['w_entry_year'], $job['w_url'], $job['pub'], $job['w_email_pub']); + $request = new EntrReq(S::user(), $page->profile, $id, $job['name'], $job['hq_acronym'], $job['hq_url'], + $job['hq_email'], $job['hq_fixed'], $job['hq_fax'], $job['hq_address']); + $request->submit(); + sleep(1); } $address = new Address(array_merge($job['w_address'], array('pid' => $page->pid(), @@ -428,7 +438,7 @@ class ProfilePageJobs extends ProfilePage public function _prepare(PlPage $page, $id) { require_once 'emails.combobox.inc.php'; - fill_email_combobox($page, $this->owner); + fill_email_combobox($page, array('redirect', 'job', 'stripped_directory'), $this->owner); if (!S::user()->isMe($this->owner)) { $res = XDB::iterator('SELECT id, name