public function value(ProfilePage $page, $field, $value, &$success) { $success = true; $phones = array(); if (is_null($value)) { $it = Phone::iterate(array($page->pid()), array(Phone::LINK_PROFILE), array(0), Visibility::get(Visibility::VIEW_ADMIN)); while ($phone = $it->next()) { $success = $phone->format() && $success; $phones[] = $phone->toFormArray(); } if (count($phones) == 0) { $phone = new Phone(); $phones[] = $phone->toFormArray(); } return $phones; } else { $phones = Phone::formatFormArray($value, $success); if (!$success) { Platal::page()->trigError('Numéro de téléphone invalide'); } return $phones; } }
private function fetchJobs(ProfilePage $page) { // Build the jobs tree $jobs = XDB::fetchAllAssoc('SELECT j.id, j.jobid, je.name, j.description, j.email AS w_email, j.email_pub AS w_email_pub, j.url AS w_url, j.pub, j.entry_year AS w_entry_year FROM profile_job AS j LEFT JOIN profile_job_enum AS je ON (j.jobid = je.id) WHERE j.pid = {?} ORDER BY j.id', $page->pid()); if (empty($jobs)) { return array($this->emptyJob()); } $compagnies = array(); $backtrack = array(); foreach ($jobs as $key => $job) { $compagnies[] = $job['jobid']; $backtrack[$job['id']] = $key; } $it = Address::iterate(array($page->pid()), array(Address::LINK_JOB), array(), Visibility::get(Visibility::VIEW_ADMIN)); while ($address = $it->next()) { $jobs[$address->id]['w_address'] = $address->toFormArray(); } $it = Phone::iterate(array($page->pid()), array(Phone::LINK_JOB), array(), Visibility::get(Visibility::VIEW_ADMIN)); while ($phone = $it->next()) { $jobs[$phone->link_id]['w_phone'][$phone->id] = $phone->toFormArray(); } $res = XDB::iterator("SELECT e.jtid, e.full_name, j.jid\n FROM profile_job_term_enum AS e\n INNER JOIN profile_job_term AS j USING(jtid)\n WHERE pid = {?}\n ORDER BY j.jid", $page->pid()); while ($term = $res->next()) { // $jid is the ID of the job among this user's jobs $jid = $term['jid']; if (!isset($backtrack[$jid])) { continue; } $job =& $jobs[$backtrack[$jid]]; if (!isset($job['terms'])) { $job['terms'] = array(); } $job['terms'][] = $term; } $phone = new Phone(); $address = new Address(); foreach ($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'; } } return $jobs; }
function handler_ajax_tel($page, $prefid, $prefname, $telid, $subField, $mainField, $mainId) { pl_content_headers("text/html"); $page->changeTpl('profile/phone.tpl', NO_SKIN); $page->assign('prefid', $prefid); $page->assign('prefname', $prefname); $page->assign('telid', $telid); $phone = new Phone(); $page->assign('tel', $phone->toFormArray()); if ($mainField) { $page->assign('subField', $subField); $page->assign('mainField', $mainField); $page->assign('mainId', $mainId); } }