- $where = XDB::format('pj.pid = {?}', $this->id());
- $cond = 'TRUE';
- if ($this->visibility) {
- $where .= ' AND pj.pub IN ' . XDB::formatArray($this->visibility);
- $cond = 'pj.email_pub IN ' . XDB::formatArray($this->visibility);
- }
- $limit = is_null($limit) ? '' : XDB::format('LIMIT {?}', (int)$limit);
- return XDB::iterator('SELECT pje.name, pje.acronym, pje.url, pje.email, pje.NAF_code,
- pj.description, pj.url AS user_site,
- IF (' . $cond . ', pj.email, NULL) AS user_email,
- pjse.name AS sector, pjsse.name AS subsector,
- pjssse.name AS subsubsector
- FROM profile_job AS pj
- INNER JOIN profile_job_enum AS pje ON (pje.id = pj.jobid)
- LEFT JOIN profile_job_sector_enum AS pjse ON (pjse.id = pj.sectorid)
- LEFT JOIN profile_job_subsector_enum AS pjsse ON (pjsse.id = pj.subsectorid)
- LEFT JOIN profile_job_subsubsector_enum AS pjssse ON (pjssse.id = pj.subsubsectorid)
- WHERE ' . $where . '
- ORDER BY pj.id
- ' . $limit);
- }
-
- public function getMailJob()
+ if ($this->jobs == null && !$this->fetched(self::FETCH_JOBS)) {
+ $jobs = $this->getProfileField(self::FETCH_JOBS);
+ if ($jobs) {
+ $this->setJobs($jobs);
+ }
+ }
+
+ if ($this->jobs == null) {
+ return array();
+ }
+ return $this->jobs->get($flags, $limit);
+ }
+
+ public function getMainJob()