X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Fprofilefields.inc.php;h=2de1e6ba4d30890344f85fdc622cf90e053a8fef;hb=f9301bff369ef2352bc1eb2c824919874e616066;hp=e841c163d868543186905bb821da0a15ce2a3246;hpb=cecdf74795e71ed038411915dad5e0dff6ea51fa;p=platal.git diff --git a/include/profilefields.inc.php b/include/profilefields.inc.php index e841c16..2de1e6b 100644 --- a/include/profilefields.inc.php +++ b/include/profilefields.inc.php @@ -1,6 +1,6 @@ linkType() == Phone::LINK_COMPANY && $phone->linkId() == $this->id) { + if ($phone->link_type == Phone::LINK_COMPANY && $phone->link_id == $this->id) { $this->phone = $phone; } } - public function setAddress(Address &$address) + public function setAddress(Address $address) { if ($address->type == Address::LINK_COMPANY && $address->jobid == $this->id) { $this->address = $address; @@ -202,8 +202,12 @@ class Job } $this->company = CompanyList::get($this->jobid); if (is_null($this->company)) { - $entreprise = ProfileValidate::get_typed_requests($this->pid, 'entreprise'); - $this->company = new Company(array('name' => $entreprise[$this->id]->name)); + $entreprises = ProfileValidate::get_typed_requests($this->pid, 'entreprise'); + foreach ($entreprises as $entreprise) { + if ($entreprise->id == $this->id) { + $this->company = new Company(array('name' => $entreprise->name)); + } + } } } @@ -217,21 +221,21 @@ class Job return $this->address; } - public function addPhone(Phone &$phone) + public function addPhone(Phone $phone) { - if ($phone->linkType() == Phone::LINK_JOB && $phone->linkId() == $this->id && $phone->pid() == $this->pid) { + if ($phone->link_type == Phone::LINK_JOB && $phone->link_id == $this->id && $phone->pid == $this->pid) { $this->phones[$phone->uniqueId()] = $phone; } } public function setAddress(Address $address) { - if ($address->type == Address::LINK_JOB && $address->jobid == $this->id && $address->pid == $this->pid) { + if ($address->type == Address::LINK_JOB && $address->id == $this->id && $address->pid == $this->pid) { $this->address = $address; } } - public function addTerm(JobTerm &$term) + public function addTerm(JobTerm $term) { $this->terms[$term->jtid] = $term; } @@ -334,7 +338,7 @@ class ProfileEducation extends ProfileField $data = XDB::iterator('SELECT pe.id, pe.pid, pe.entry_year, pe.grad_year, pe.program, pe.flags, pee.name AS school, pee.abbreviation AS school_short, - pee.url AS school_url, gc.countryFR AS country, + pee.url AS school_url, gc.country, pede.degree, pede.abbreviation AS degree_short, pede.level AS degree_level, pefe.field FROM profile_education AS pe @@ -485,7 +489,7 @@ class ProfileMentoringCountries extends ProfileField public static function fetchData(array $pids, ProfileVisibility $visibility) { - $data = XDB::iterator('SELECT pmc.pid, pmc.country AS id, gc.countryFR AS name + $data = XDB::iterator('SELECT pmc.pid, pmc.country AS id, gc.country AS name FROM profile_mentor_country AS pmc LEFT JOIN geoloc_countries AS gc ON (gc.iso_3166_1_a2 = pmc.country) WHERE pmc.pid IN {?} @@ -539,8 +543,13 @@ class ProfileAddresses extends ProfileField { $p = $phones->get(Profile::PHONE_LINK_ADDRESS | Profile::PHONE_TYPE_ANY); foreach ($p as $phone) { - if ($phone->linkType() == Phone::LINK_ADDRESS && array_key_exists($phone->linkId(), $this->addresses)) { - $this->addresses[$phone->linkId()]->addPhone($phone); + /* We must iterate on the addresses because id is not uniq thus, + * $this->addresse[$phone->link_id] is invalid. + */ + foreach ($this->addresses as $address) { + if ($address->type == Address::LINK_PROFILE && $address->id == $phone->link_id) { + $address->addPhone($phone); + } } } } @@ -625,8 +634,8 @@ class ProfileJobs extends ProfileField { $p = $phones->get(Profile::PHONE_LINK_JOB | Profile::PHONE_TYPE_ANY); foreach ($p as $phone) { - if ($phone->linkType() == Phone::LINK_JOB && array_key_exists($phone->linkId(), $this->jobs)) { - $this->jobs[$phone->linkId()]->addPhone($phone); + if ($phone->link_type == Phone::LINK_JOB && array_key_exists($phone->link_id, $this->jobs)) { + $this->jobs[$phone->link_id]->addPhone($phone); } } } @@ -635,8 +644,8 @@ class ProfileJobs extends ProfileField { $a = $addresses->get(Profile::ADDRESS_PRO); foreach ($a as $address) { - if ($address->type == Address::LINK_JOB && array_key_exists($address->jobid, $this->jobs)) { - $this->jobs[$address->jobid]->setAddress($address); + if ($address->type == Address::LINK_JOB && array_key_exists($address->id, $this->jobs)) { + $this->jobs[$address->id]->setAddress($address); } } } @@ -653,7 +662,7 @@ class ProfileJobs extends ProfileField $terms = $jobterms->get(); foreach ($terms as $term) { if ($this->pid == $term->pid && array_key_exists($term->jid, $this->jobs)) { - $this->jobs[$term->jid]->addTerm(&$term); + $this->jobs[$term->jid]->addTerm($term); } } } @@ -747,7 +756,7 @@ class CompanyList if (count($newcompanies)) { $it = Phone::iterate(array(), array(Phone::LINK_COMPANY), $newcompanies); while ($phone = $it->next()) { - self::$companies[$phone->linkId()]->setPhone($phone); + self::$companies[$phone->link_id]->setPhone($phone); } } @@ -761,7 +770,10 @@ class CompanyList if (!array_key_exists($id, self::$companies)) { self::preload(); } - return self::$companies[$id]; + if (isset(self::$companies[$id])) { + return self::$companies[$id]; + } + return null; } }