<?php
/***************************************************************************
- * Copyright (C) 2003-2010 Polytechnique.org *
+ * Copyright (C) 2003-2011 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
const LINK_ADDRESS = 'address';
const LINK_PROFILE = 'user';
const LINK_COMPANY = 'hq';
+ const LINK_GROUP = 'group';
/** The following fields, but $error, all correspond to the fields of the
* database table profile_phones.
*/
- private $id = 0;
- private $pid = 0;
- private $search = '';
- private $link_type = 'user';
- private $link_id = 0;
+ public $id = 0;
+ public $pid = 0;
+ public $search = '';
+ public $link_type = 'user';
+ public $link_id = 0;
// The following fields are the fields of the form in the profile edition.
- private $type = 'fixed';
+ public $type = 'fixed';
public $display = '';
public $pub = 'ax';
public $comment = '';
- private $error = false;
+ public $error = false;
public function __construct(array $data = array())
{
}
}
- public function linkType()
- {
- return $this->link_type;
- }
-
- public function linkId()
- {
- return $this->link_id;
- }
-
- public function id()
- {
- return $this->id;
- }
-
- public function pid()
- {
- return $this->pid;
- }
-
- public function search()
- {
- return $this->search;
- }
-
public function setId($id)
{
$this->id = $id;
{
$this->format();
if (!$this->isEmpty()) {
- XDB::execute('INSERT INTO profile_phones (pid, link_type, link_id, tel_id, tel_type,
- search_tel, display_tel, pub, comment)
- VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})',
+ XDB::execute('INSERT IGNORE INTO profile_phones (pid, link_type, link_id, tel_id, tel_type,
+ search_tel, display_tel, pub, comment)
+ VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})',
$this->pid, $this->link_type, $this->link_id, $this->id, $this->type,
$this->search, $this->display, $this->pub, $this->comment);
}
// Formats an array of form phones into an array of form formatted phones.
static public function formatFormArray(array $data, &$success = true, $maxPublicity = null)
{
- return self::formArrayWalk($data, 'toFormArray', $success, true, $maxPublicity);
+ $phones = self::formArrayWalk($data, 'toFormArray', $success, true, $maxPublicity);
+ usort($phones, 'ProfileVisibility::comparePublicity');
+ return $phones;
}
static public function formArrayToString(array $data)
return implode(', ', self::formArrayWalk($data, 'toString'));
}
+ static public function hasPrivate(array $phones)
+ {
+ foreach ($phones as $phone) {
+ if ($phone['pub'] == 'private') {
+ return true;
+ }
+ }
+ return false;
+ }
+
static public function iterate(array $pids = array(), array $link_types = array(),
array $link_ids = array(), array $pubs = array())
{