<?php
/***************************************************************************
- * Copyright (C) 2003-2011 Polytechnique.org *
+ * Copyright (C) 2003-2014 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
if ((!isset($format['phoneprf'])) || ($format['phoneprf'] == '')) {
$res = XDB::query('SELECT phonePrefix AS phoneprf, phoneFormat AS format
FROM geoloc_countries
- WHERE phonePrefix = {?} OR phonePrefix = {?} OR phonePrefix = {?}
+ WHERE phonePrefix = SUBSTRING({?}, 1, LENGTH(phonePrefix))
+ ORDER BY LENGTH(phonePrefix) DESC
LIMIT 1',
- substr($tel, 0, 1), substr($tel, 0, 2), substr($tel, 0, 3));
+ $tel);
if ($res->numRows() == 0) {
// No country found, does not format more than prepending a '+' sign.
$this->error = true;
private function toString()
{
- static $pubs = array('public' => 'publique', 'ax' => 'annuaire AX', 'private' => 'privé');
+ static $pubs = array('public' => 'publique', 'ax' => 'annuaire papier', 'private' => 'privé', 'hidden' => 'administrateurs');
static $types = array('fax' => 'fax', 'fixed' => 'fixe', 'mobile' => 'mobile');
return $this->display . ' (' . $types[$this->type] . (($this->comment) ? ', commentaire : « ' . $this->comment . ' »' : '')
. ', affichage ' . $pubs[$this->pub] . ')';
static private function formArrayWalk(array $data, $function, &$success = true, $requiresEmptyPhone = false, $maxPublicity = null)
{
$phones = array();
- foreach ($data as $item) {
- $phone = new Phone($item);
- $success = (!$phone->error && ($phone->format() || $phone->isEmpty()) && $success);
- if (!$phone->isEmpty()) {
- // Restrict phone visibility to $maxPublicity
- if (!is_null($maxPublicity) && Visibility::isLessRestrictive($phone->pub, $maxPublicity)) {
- $phone->pub = $maxPublicity;
+ if (!is_null($data)) {
+ foreach ($data as $item) {
+ $phone = new Phone($item);
+ $success = (!$phone->error && ($phone->format() || $phone->isEmpty()) && $success);
+ if (!$phone->isEmpty()) {
+ // Restrict phone visibility to $maxPublicity
+ if (!is_null($maxPublicity) && Visibility::isLessRestrictive($maxPublicity, $phone->pub)) {
+ $phone->pub = $maxPublicity;
+ }
+ $phones[] = call_user_func(array($phone, $function));
}
- $phones[] = call_user_func(array($phone, $function));
}
}
if (count($phones) == 0 && $requiresEmptyPhone) {
$phone = new Phone();
- if (!is_null($maxPublicity) && Visibility::isLessRestrictive($phone->pub, $maxPublicity)) {
+ if (!is_null($maxPublicity) && Visibility::isLessRestrictive($maxPublicity, $phone->pub)) {
// Restrict phone visibility to $maxPublicity
$phone->pub = $maxPublicity;
}
}
}
-// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8:
?>