X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fprofile%2Fjobs.inc.php;h=7a48ceb4f72ddc563a6b2db439b1564fd9709627;hb=5b6768e61333046987cdcc2a108051cfed5583cf;hp=c376f12dd50529099b9b981b0bd95bc1ca4adb1c;hpb=8a43972f58f0a77015ae9e509f1c073d188874d2;p=platal.git diff --git a/modules/profile/jobs.inc.php b/modules/profile/jobs.inc.php index c376f12..7a48ceb 100644 --- a/modules/profile/jobs.inc.php +++ b/modules/profile/jobs.inc.php @@ -1,6 +1,6 @@ pub = new ProfilePub(); + $this->pub = new ProfileSettingPub(); $this->email = $this->email_new - = new ProfileEmail(); - $this->url = new ProfileWeb(); - $this->bool = new ProfileBool(); + = new ProfileSettingEmail(); + $this->url = new ProfileSettingWeb(); + $this->bool = new ProfileSettingBool(); $this->checks = array('url' => array('w_url'), 'email' => array('w_email'), 'pub' => array('pub', 'w_email_pub'), @@ -153,7 +153,7 @@ class ProfileJob extends ProfileGeocoding 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(); @@ -171,7 +171,7 @@ class ProfileJob extends ProfileGeocoding if (!isset($job['w_phone'])) { $job['w_phone'] = array(); } - $profiletel = new ProfilePhones('pro', $jobid); + $profiletel = new ProfileSettingPhones('pro', $jobid); $job['w_phone'] = $profiletel->value($page, 'tel', $job['w_phone'], $s); unset($job['removed']); @@ -180,8 +180,8 @@ class ProfileJob extends ProfileGeocoding 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 ProfileJob extends ProfileGeocoding $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,43 +220,43 @@ class ProfileJob extends ProfileGeocoding { // 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 uid = {?}", - S::i('uid')); + WHERE pid = {?}", + $page->pid()); XDB::execute("DELETE FROM profile_addresses WHERE pid = {?} AND type = 'job'", - S::i('uid')); + $page->pid()); XDB::execute("DELETE FROM profile_phones - WHERE uid = {?} AND link_type = 'pro'", - S::i('uid')); - foreach ($value as $id=>&$job) { + WHERE pid = {?} AND link_type = 'pro'", + $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 (uid, id, description, sectorid, subsectorid, + XDB::execute("INSERT INTO profile_job (pid, id, description, sectorid, subsectorid, subsubsectorid, email, url, pub, email_pub, jobid) VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})", - S::i('uid'), $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 (uid, id, description, sectorid, subsectorid, + XDB::execute("INSERT INTO profile_job (pid, id, description, sectorid, subsectorid, subsubsectorid, email, url, pub, email_pub) VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})", - S::i('uid'), $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 ProfileAddress(); - $address->saveAddress($id, $job['w_address'], 'job'); - $profiletel = new ProfilePhones('pro', $id); + $address = new ProfileSettingAddress(); + $address->saveAddress($page->pid(), $id, $job['w_address'], 'job'); + $profiletel = new ProfileSettingPhones('pro', $id); $profiletel->saveTels('tel', $job['w_phone']); } } } } -class ProfileJobs extends ProfilePage +class ProfileSettingJobs extends ProfilePage { protected $pg_template = 'profile/jobs.tpl'; @@ -262,7 +265,7 @@ class ProfileJobs extends ProfilePage parent::__construct($wiz); $this->settings['cv'] = null; $this->settings['corps'] = null; - $this->settings['jobs'] = new ProfileJob(); + $this->settings['jobs'] = new ProfileSettingJob(); $this->watched = array('cv' => true, 'jobs' => true, 'corps' => true); } @@ -270,17 +273,17 @@ class ProfileJobs extends ProfilePage { // Checkout the CV $res = XDB::query("SELECT cv - FROM auth_user_md5 - WHERE user_id = {?}", - S::i('uid')); + FROM profiles + WHERE pid = {?}", + $this->pid()); $this->values['cv'] = $res->fetchOneCell(); // Checkout the corps $res = XDB::query("SELECT original_corpsid AS original, current_corpsid AS current, rankid AS rank, corps_pub AS pub FROM profile_corps - WHERE uid = {?}", - S::i('uid')); + WHERE pid = {?}", + $this->pid()); $this->values['corps'] = $res->fetchOneAssoc(); // Build the jobs tree @@ -298,12 +301,12 @@ class ProfileJobs extends ProfilePage FROM profile_job AS j LEFT JOIN profile_job_enum AS je ON (j.jobid = je.id) LEFT JOIN profile_job_subsubsector_enum AS s ON (s.id = j.subsubsectorid) - LEFT JOIN profile_addresses AS aw ON (aw.pid = j.uid AND aw.type = 'job' + LEFT JOIN profile_addresses AS aw ON (aw.pid = j.pid AND aw.type = 'job' AND aw.id = j.id) LEFT JOIN profile_addresses AS ah ON (ah.jobid = j.jobid AND ah.type = 'hq') - WHERE j.uid = {?} + WHERE j.pid = {?} ORDER BY j.id", - S::i('uid')); + $this->pid()); $this->values['jobs'] = array(); if ($res->numRows() > 0) { @@ -376,9 +379,9 @@ class ProfileJobs extends ProfilePage $res = XDB::iterator("SELECT link_id AS jobid, tel_type AS type, pub, display_tel AS tel, comment FROM profile_phones - WHERE uid = {?} AND link_type = 'pro' + 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()) { @@ -453,26 +456,26 @@ class ProfileJobs extends ProfilePage protected function _saveData() { if ($this->changed['cv']) { - XDB::execute("UPDATE auth_user_md5 + XDB::execute("UPDATE profiles SET cv = {?} - WHERE user_id = {?}", - $this->values['cv'], S::i('uid')); + WHERE pid = {?}", + $this->values['cv'], $this->pid()); } if ($this->changed['corps']) { XDB::execute("UPDATE profile_corps SET original_corpsid = {?}, current_corpsid = {?}, rankid = {?}, corps_pub = {?} - WHERE uid = {?}", + WHERE pid = {?}", $this->values['corps']['original'], $this->values['corps']['current'], - $this->values['corps']['rank'], $this->values['corps']['pub'], S::i('uid')); + $this->values['corps']['rank'], $this->values['corps']['pub'], $this->pid()); } } public function _prepare(PlPage &$page, $id) { - require_once "emails.combobox.inc.php"; - fill_email_combobox($page); + require_once 'emails.combobox.inc.php'; + fill_email_combobox($page, $this->owner, $this->profile); $res = XDB::query("SELECT id, name AS label FROM profile_job_sector_enum");