From: Stéphane Jacob Date: Tue, 1 Jun 2010 08:59:21 +0000 (+0200) Subject: Fixes jobs edition, in particular forbids jobs without an entreprise name. X-Git-Tag: xorg/1.0.0~213 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=a6483c122527912e19f708b0c54086d620251c26;p=platal.git Fixes jobs edition, in particular forbids jobs without an entreprise name. Signed-off-by: Stéphane Jacob --- diff --git a/modules/profile/addresses.inc.php b/modules/profile/addresses.inc.php index 8a9e2f2..8f7614d 100644 --- a/modules/profile/addresses.inc.php +++ b/modules/profile/addresses.inc.php @@ -83,9 +83,9 @@ class ProfileSettingAddress extends ProfileSettingGeocoding return $value; } - private function saveAddress($pid, $addrid, array &$address, $type) + public function saveAddress($pid, $addrid, array &$address, $type) { - require_once "geocoding.inc.php"; + require_once 'geocoding.inc.php'; $flags = new PlFlagSet(); $flags->addFlag('current', $address['current']); diff --git a/modules/profile/jobs.inc.php b/modules/profile/jobs.inc.php index c1d5180..7a48ceb 100644 --- a/modules/profile/jobs.inc.php +++ b/modules/profile/jobs.inc.php @@ -153,7 +153,7 @@ class ProfileSettingJob extends ProfileSettingGeocoding WHERE name = {?}", $job['name']); if ($res->numRows() != 1) { - $user = S::user(); + $user = $page->profile->owner; $this->geocodeAddress($job['hq_address'], $s); if (!$s) { $gmapsGeocoder = new GMapsGeocoder(); @@ -180,8 +180,8 @@ class ProfileSettingJob extends ProfileSettingGeocoding public function value(ProfilePage &$page, $field, $value, &$success) { - require_once('validations.inc.php'); - $entreprise = Validate::get_typed_requests(S::i('uid'), 'entreprise'); + require_once 'validations.inc.php'; + $entreprise = Validate::get_typed_requests($page->profile->owner->id(), 'entreprise'); $entr_val = 0; $init = false; @@ -190,17 +190,20 @@ class ProfileSettingJob extends ProfileSettingGeocoding $init = true; } $success = true; - foreach ($value as $key=>&$job) { + foreach ($value as $key => &$job) { $job['name'] = trim($job['name']); - if (!$job['name'] && $entreprise) { + if ($job['name'] == '' && $entreprise) { $job['tmp_name'] = $entreprise[$entr_val]->name; - $entr_val ++; + ++$entr_val; + } else if ($job['name'] == '') { + $job['name_error'] = true; + $success = false; } if (isset($job['removed']) && $job['removed']) { unset($value[$key]); } } - foreach ($value as $key=>&$job) { + foreach ($value as $key => &$job) { $ls = true; $this->geocodeAddress($job['w_address'], $s); $ls = ($ls && $s); @@ -217,35 +220,35 @@ class ProfileSettingJob extends ProfileSettingGeocoding { // TODO: use address and phone classes to update profile_job_enum and profile_phones once they are done. - require_once('profil.func.inc.php'); - require_once('validations.inc.php'); + require_once 'profil.func.inc.php'; + require_once 'validations.inc.php'; XDB::execute("DELETE FROM profile_job WHERE pid = {?}", - $this->pid()); + $page->pid()); XDB::execute("DELETE FROM profile_addresses WHERE pid = {?} AND type = 'job'", - $this->pid()); + $page->pid()); XDB::execute("DELETE FROM profile_phones WHERE pid = {?} AND link_type = 'pro'", - $this->pid()); - foreach ($value as $id=>&$job) { + $page->pid()); + foreach ($value as $id => &$job) { if (isset($job['name']) && $job['name']) { if (isset($job['jobid']) && $job['jobid']) { XDB::execute("INSERT INTO profile_job (pid, id, description, sectorid, subsectorid, subsubsectorid, email, url, pub, email_pub, jobid) VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})", - $this->pid(), $id, $job['description'], $job['sector'], $job['subSector'], + $page->pid(), $id, $job['description'], $job['sector'], $job['subSector'], $job['subSubSector'], $job['w_email'], $job['w_url'], $job['pub'], $job['w_email_pub'], $job['jobid']); } else { XDB::execute("INSERT INTO profile_job (pid, id, description, sectorid, subsectorid, subsubsectorid, email, url, pub, email_pub) VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})", - $this->pid(), $id, $job['description'], $job['sector'], $job['subSector'], + $page->pid(), $id, $job['description'], $job['sector'], $job['subSector'], $job['subSubSector'], $job['w_email'], $job['w_url'], $job['pub'], $job['w_email_pub']); } $address = new ProfileSettingAddress(); - $address->saveAddress($id, $job['w_address'], 'job'); + $address->saveAddress($page->pid(), $id, $job['w_address'], 'job'); $profiletel = new ProfileSettingPhones('pro', $id); $profiletel->saveTels('tel', $job['w_phone']); } @@ -378,7 +381,7 @@ class ProfileSettingJobs extends ProfilePage FROM profile_phones WHERE pid = {?} AND link_type = 'pro' ORDER BY link_id", - S::i('uid')); + $this->pid()); $i = 0; $jobNb = count($this->values['jobs']); while ($phone = $res->next()) { @@ -471,7 +474,7 @@ class ProfileSettingJobs extends ProfilePage public function _prepare(PlPage &$page, $id) { - require_once "emails.combobox.inc.php"; + require_once 'emails.combobox.inc.php'; fill_email_combobox($page, $this->owner, $this->profile); $res = XDB::query("SELECT id, name AS label