<?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 *
// {{{ class UFC_SchoolId
/** Filters users based on their shoold identifier
* @param type Parameter type (Xorg, AX, School)
- * @param value School id value
+ * @param value Array of school ids
*/
class UFC_SchoolId extends UserFilterCondition
{
}
}
- public function __construct($type, $id)
+ /** Construct a UFC_SchoolId
+ * The first argument is the type, all following arguments can be either ids
+ * or arrays of ids to use:
+ * $ufc = new UFC_SchoolId(UFC_SchoolId::AX, $id1, $id2, array($id3, $id4));
+ */
+ public function __construct($type)
{
$this->type = $type;
- $this->id = $id;
+ $ids = func_get_args();
+ array_shift($ids);
+ $this->ids = pl_flatten($ids);
self::assertType($type);
}
public function buildCondition(PlFilter $uf)
{
$uf->requireProfiles();
- $id = $this->id;
+ $ids = $this->ids;
$type = $this->type;
if ($type == self::School) {
$type = self::Xorg;
- $id = Profile::getXorgId($id);
+ $ids = array_map(array('Profile', 'getXorgId'), $ids);
}
- return XDB::format('p.' . $type . '_id = {?}', $id);
+ return XDB::format('p.' . $type . '_id IN {?}', $ids);
}
}
// }}}
{
$phone = new Phone(array('display' => $number));
$phone->format();
- $this->number = $phone->search();
+ $this->number = $phone->search;
$this->num_type = $num_type;
$this->phone_type = $phone_type;
}