-
- // Build the jobs tree
- $res = XDB::iterRow('SELECT j.id, j.jobid, je.name, j.description, j.email, j.email_pub,
- j.url, j.pub
- FROM profile_job AS j
- LEFT JOIN profile_job_enum AS je ON (j.jobid = je.id)
- WHERE j.pid = {?}
- ORDER BY j.id',
- $this->pid());
- $this->values['jobs'] = array();
-
- $compagnies = array();
- if ($res->numRows() > 0) {
- while (list($id, $jobid, $name, $description, $w_email, $w_emailPub, $w_url, $pub) = $res->next()) {
- $compagnies[] = $jobid;
- $this->values['jobs'][] = array(
- 'id' => $id,
- 'jobid' => $jobid,
- 'name' => $name,
- 'description' => $description,
- 'pub' => $pub,
- 'w_email' => $w_email,
- 'w_email_pub' => $w_emailPub,
- 'w_url' => $w_url,
- );
- }
-
- $it = Address::iterate(array($this->pid()), array(Address::LINK_JOB));
- while ($address = $it->next()) {
- $this->values['jobs'][$address->jobid]['w_address'] = $address->toFormArray();
- }
- $it = Phone::iterate(array($this->pid()), array(Phone::LINK_JOB));
- while ($phone = $it->next()) {
- $this->values['jobs'][$phone->linkId()]['w_phone'][$phone->id()] = $phone->toFormArray();
- }
- $res = XDB::iterator("SELECT e.jtid, e.full_name, j.jid AS jobid
- FROM profile_job_term_enum AS e
- INNER JOIN profile_job_term AS j USING(jtid)
- WHERE pid = {?}
- ORDER BY j.jid",
- $this->pid());
- $i = 0;
- $jobNb = count($this->values['jobs']);
- while ($term = $res->next()) {
- $jobid = $term['jobid'];
- while ($i < $jobNb && $this->values['jobs'][$i]['id'] < $jobid) {
- $i++;
- }
- if ($i >= $jobNb) {
- break;
- }
- $job =& $this->values['jobs'][$i];
- if ($job['id'] != $jobid) {
- continue;
- }
- if (!isset($job['terms'])) {
- $job['terms'] = array();
- }
- $job['terms'][] = $term;
- }
-
- $phone = new Phone();
- $address = new Address();
- foreach ($this->values['jobs'] as $id => &$job) {
- if (!isset($job['w_phone'])) {
- $job['w_phone'] = array(0 => $phone->toFormArray());
- }
- if (!isset($job['w_address'])) {
- $job['w_address'] = $address->toFormArray();
- }
- }
-
- $job['w_email_new'] = '';
- if (!isset($job['w_email_pub'])) {
- $job['w_email_pub'] = 'private';
- }
- } else {
- $this->values['jobs'][] = $this->settings['jobs']->emptyJob();
- }