// The following fields are the fields of the form in the profile edition.
private $type = 'fixed';
public $display = '';
- private $pub = 'private';
+ private $pub = 'ax';
public $comment = '';
private $error = false;
return $this->search;
}
+ public function setId($id)
+ {
+ $this->id = $id;
+ }
+
/** Returns the unique ID of a phone.
* This ID will allow to link it to an address, a user or a job.
* The format is address_addressId_phoneId (where phoneId is the id
private function toString()
{
- return 'type : ' . $this->type .', numéro : ' . $this->display
- . ', commentaire : « ' . $this->comment . ' », affichage : ' . $this->pub;
+ static $pubs = array('public' => 'publique', 'ax' => 'annuaire AX', 'private' => 'privé');
+ static $types = array('fax' => 'fax', 'fixed' => 'fixe', 'mobile' => 'mobile');
+ return $this->display . ' (' . $types[$this->type] . (($this->comment) ? ', commentaire : « ' . $this->comment . ' »' : '')
+ . ', affichage ' . $pubs[$this->pub] . ')';
}
private function isEmpty()
}
}
+ public function delete()
+ {
+ XDB::execute('DELETE FROM profile_phones
+ WHERE pid = {?} AND link_type = {?} AND link_id = {?} AND tel_id = {?}',
+ $this->pid, $this->link_type, $this->link_id, $this->id);
+ }
+
static public function deletePhones($pid, $link_type, $link_id = null)
{
$where = '';
$phones = array();
foreach ($data as $item) {
$phone = new Phone($item);
- $success = ($phone->format() && $success);
+ $success = (!$phone->error && ($phone->format() || $phone->isEmpty()) && $success);
if (!$phone->isEmpty()) {
$phones[] = call_user_func(array($phone, $function));
}
static public function formArrayToString(array $data)
{
- return implode(' ; ', self::formArrayWalk($data, 'toString'));
+ return implode(', ', self::formArrayWalk($data, 'toString'));
}
static public function iterate(array $pids = array(), array $link_types = array(),
$sql = 'SELECT search_tel AS search, display_tel AS display, comment, link_id,
tel_type AS type, link_type, tel_id AS id, pid, pub
FROM profile_phones
- WHERE ' . implode(' AND ', $where) . '
- ORDER BY link_id, tel_id';
+ ' . ((count($where) > 0) ? 'WHERE ' . implode(' AND ', $where) : '') . '
+ ORDER BY pid, link_id, tel_id';
$this->dbiter = XDB::iterator($sql);
}