public function __construct($include_admin = false, $include_ax = false, $envprefix = '')
{
$fields = array(
- new UFBF_Name('name', 'Nom'),
+ new UFBF_Name('name', 'Nom', 'name_type'),
new UFBF_Promo('promo1', 'Promotion', 'egal1', 'edu_type'),
new UFBF_Promo('promo2', 'Promotion', 'egal2', 'edu_type'),
new UFBF_Sex('woman', 'Sexe'),
new UFBF_HasEmailRedirect('has_email_redirect', 'A une redirection active'),
new UFBF_Dead('alive', 'En vie'),
- new UFBF_Town('city', 'Ville / Code Postal'),
- new UFBF_Country('countryTxt', 'country', 'Pays'),
- new UFBF_AdminArea('administrativearea', 'Région'),
- new UFBF_SubAdminArea('subadministrativearea', 'Département'),
+ new UFBF_AddressIndex('postal_code', 'Code postal', 'POSTALCODES'),
+ new UFBF_AddressIndex('administrative_area_level_3', 'Canton', 'ADMNISTRATIVEAREAS3'),
+ new UFBF_AddressIndex('administrative_area_level_2', 'Département', 'ADMNISTRATIVEAREAS2'),
+ new UFBF_AddressIndex('administrative_area_level_1', 'Région', 'ADMNISTRATIVEAREAS1'),
+ new UFBF_AddressMixed('locality_text', 'locality', 'Ville', 'LOCALITIES'),
+ new UFBF_AddressMixed('country_text', 'country', 'Pays', 'COUNTRIES'),
new UFBF_JobCompany('entreprise', 'Entreprise'),
new UFBF_JobDescription('jobdescription', 'Fonction'),
new UFBF_CurrentCorps('current_corps', 'Corps actuel'),
new UFBF_CorpsRank('corps_rank', 'Grade'),
- new UFBF_Nationality('nationaliteTxt', 'nationalite', 'Nationalité'),
- new UFBF_Binet('binetTxt', 'binet', 'Binet'),
- new UFBF_Group('groupexTxt', 'groupex', 'Groupe X'),
- new UFBF_Section('sectionTxt', 'section', 'Section'),
+ new UFBF_Nationality('nationalite_text', 'nationalite', 'Nationalité'),
+ new UFBF_Binet('binet_text', 'binet', 'Binet'),
+ new UFBF_Group('groupex_text', 'groupex', 'Groupe X'),
+ new UFBF_Section('section_text', 'section', 'Section'),
- new UFBF_EducationSchool('schoolTxt', 'school', "École d'application"),
- new UFBF_EducationDegree('diplomaTxt', 'diploma', 'Diplôme'),
- new UFBF_EducationField('fieldTxt', 'field', "Domaine d'études"),
+ new UFBF_EducationSchool('school_text', 'school', "École d'application"),
+ new UFBF_EducationDegree('diploma_text', 'diploma', 'Diplôme'),
+ new UFBF_EducationField('field_text', 'field', "Domaine d'études"),
new UFBF_Comment('free', 'Commentaire'),
new UFBF_Phone('phone_number', 'Téléphone'),
}
// }}}
+// {{{ class UFB_DeltaTenSearch
+class UFB_DeltaTenSearch extends UserFilterBuilder
+{
+ public function __construct($envprefix = '')
+ {
+ $fields = array(
+ new UFBF_DeltaTenMessage('deltaten_message'),
+
+ new UFBF_Town('city', 'Ville / Code Postal'),
+ new UFBF_Country('countryTxt', 'country', 'Pays'),
+ new UFBF_AdminArea('administrativearea', 'Région'),
+ new UFBF_SubAdminArea('subadministrativearea', 'Département'),
+
+
+ new UFBF_EducationSchool('schoolTxt', 'school', "École d'application"),
+ new UFBF_EducationDegree('diplomaTxt', 'diploma', 'Diplôme'),
+ new UFBF_EducationField('fieldTxt', 'field', "Domaine d'études"),
+
+ new UFBF_JobCompany('entreprise', 'Entreprise'),
+ new UFBF_JobDescription('jobdescription', 'Fonction'),
+ new UFBF_JobTerms('jobterm', 'Mots-clefs'),
+
+ new UFBF_Nationality('nationaliteTxt', 'nationalite', 'Nationalité'),
+ new UFBF_Binet('binetTxt', 'binet', 'Binet'),
+ new UFBF_Group('groupexTxt', 'groupex', 'Groupe X'),
+ new UFBF_Section('sectionTxt', 'section', 'Section'),
+ new UFBF_Sex('woman', 'Sexe'),
+ );
+ parent::__construct($fields, $envprefix);
+ }
+}
+// }}}
+
// {{{ class UFB_NewsLetter
class UFB_NewsLetter extends UserFilterBuilder
{
{
$fields = array();
if ($flags->hasFlag(self::FIELDS_PROMO)) {
- $fields[] = new UFBF_Promo('promo1', 'Promotion', 'egal1');
- $fields[] = new UFBF_Promo('promo2', 'Promotion', 'egal2');
+ $fields[] = new UFBF_Promo('promo1', 'Promotion', 'egal1', 'edu_type');
+ $fields[] = new UFBF_Promo('promo2', 'Promotion', 'egal2', 'edu_type');
}
if ($flags->hasFlag(self::FIELDS_AXID)) {
$fields[] = new UFBF_SchoolIds('axid', 'Matricule AX', UFC_SchoolId::AX);
// {{{ class UFBF_Name
class UFBF_Name extends UFBF_Text
{
+ private $envfieldtype;
+ private $type;
+
+ public function __construct($envfield, $formtext = '', $envfieldtype)
+ {
+ parent::__construct($envfield, $formtext);
+ $this->envfieldtype = $envfieldtype;
+ }
+
protected function check(UserFilterBuilder $ufb)
{
if (!parent::check($ufb)) {
if (count($this->val) == 0) {
$this->empty = true;
}
+ $this->type = $ufb->v($this->envfieldtype);
+ if (!in_array($this->type, array('', 'lastname', 'firstname', 'nickname'))) {
+ return $this->raise("Le critère {$this->type} n'est pas valide pour le champ %s");
+ }
return true;
}
protected function buildUFC(UserFilterBuilder $ufb)
{
- return new UFC_NameTokens($this->val, array(), $ufb->b('with_soundex'), $ufb->b('exact'));
+ return new UFC_NameTokens($this->val, array(), $ufb->b('with_soundex'), $ufb->b('exact'), $this->type);
+ }
+
+ public function getEnvFieldNames()
+ {
+ return array($this->envfield, $this->envfieldtype);
}
}
// }}}
}
// }}}
-// {{{ class UFBF_Town
-/** Retrieves a town, either from a postal code or a town name
- */
-class UFBF_Town extends UFBF_Text
+// {{{ class UFBF_AddressMixed
+class UFBF_AddressMixed extends UFBF_Mixed
{
- const TYPE_TEXT = 1;
- const TYPE_ZIP = 2;
- const TYPE_ANY = 3;
-
- private $type;
- private $onlycurrentfield;
-
- public function __construct($envfield, $formtext = '', $type = self::TYPE_ANY, $onlycurrentfield = 'only_current')
- {
- $this->type = $type;
- $this->onlycurrentfield = $onlycurrentfield;
- parent::__construct($envfield, $formtext, 2, 30);
- }
-
- protected function buildUFC(UserFilterBuilder $ufb)
- {
- if ($ufb->isOn($this->onlycurrentfield)) {
- $flags = UFC_Address::FLAG_CURRENT;
- } else {
- $flags = UFC_Address::FLAG_ANY;
- }
-
- if (preg_match('/[0-9]/', $this->val)) {
- if ($this->type & self::TYPE_ZIP) {
- return new UFC_AddressField($this->val, UFC_AddressField::FIELD_ZIPCODE, UFC_Address::TYPE_ANY, $flags);
- } else {
- return new PFC_False();
- }
- } else {
- $byname = new UFC_AddressText(null, XDB::WILDCARD_CONTAINS, UFC_Address::TYPE_ANY, $flags, null, $this->val);
- $byzip = new UFC_AddressField($this->val, UFC_AddressField::FIELD_ZIPCODE, UFC_Address::TYPE_ANY, $flags);
- if ($this->type & self::TYPE_ANY) {
- return new PFC_Or($byname, $byzip);
- } else if ($this->type & self::TYPE_TEXT) {
- return $byname;
- } else {
- return $byzip;
- }
- }
- }
-
- public function getEnvFieldNames()
- {
- return array($this->envfield, $this->onlycurrentfield);
- }
-}
-// }}}
-
-// {{{ class UFBF_Country
-class UFBF_Country extends UFBF_Mixed
-{
- protected $direnum = DirEnum::COUNTRIES;
protected $onlycurrentfield;
- public function __construct($envfieldtext, $envfieldindex, $formtext = '', $onlycurrentfield = 'only_current')
+ public function __construct($envfieldtext, $envfieldindex, $formtext = '', $addressfield, $onlycurrentfield = 'only_current')
{
parent::__construct($envfieldtext, $envfieldindex, $formtext);
$this->onlycurrentfield = $onlycurrentfield;
+ $this->direnum = constant('DirEnum::' . $addressfield);
}
protected function buildUFC(UserFilterBuilder $ufb)
$flags = UFC_Address::FLAG_ANY;
}
- return new UFC_AddressField($this->val, UFC_AddressField::FIELD_COUNTRY, UFC_Address::TYPE_ANY, $flags);
+ return new UFC_AddressComponent($this->val, $this->envfieldindex, UFC_Address::TYPE_NON_HQ, $flags);
}
public function getEnvFieldNames()
}
// }}}
-// {{{ class UFBF_AdminArea
-class UFBF_AdminArea extends UFBF_Index
+// {{{ class UFBF_AddressIndex
+class UFBF_AddressIndex extends UFBF_Index
{
- protected $direnum = DirEnum::ADMINAREAS;
- protected $onlycurrentfield;
-
- public function __construct($envfield, $formtext = '', $onlycurrentfield = 'only_current')
- {
- parent::__construct($envfield, $formtext);
- $this->onlycurrentfield = $onlycurrentfield;
- }
-
-
- protected function buildUFC(UserFilterBuilder $ufb)
- {
- if ($ufb->isOn($this->onlycurrentfield)) {
- $flags = UFC_Address::FLAG_CURRENT;
- } else {
- $flags = UFC_Address::FLAG_ANY;
- }
-
- return new UFC_AddressField($this->val, UFC_AddressField::FIELD_ADMAREA, UFC_Address::TYPE_ANY, $flags);
- }
-
- public function getEnvFieldNames()
- {
- return array($this->envfield, $this->onlycurrentfield);
- }
-}
-// }}}
-
-// {{{ class UFBF_SubAdminArea
-class UFBF_SubAdminArea extends UFBF_Index
-{
- protected $direnum = DirEnum::SUBADMINAREAS;
+ protected $direnum;
protected $onlycurrentfield;
- public function __construct($envfield, $formtext = '', $onlycurrentfield = 'only_current')
+ public function __construct($envfield, $formtext = '', $addressfield, $onlycurrentfield = 'only_current')
{
parent::__construct($envfield, $formtext);
$this->onlycurrentfield = $onlycurrentfield;
+ $this->direnum = constant('DirEnum::' . $addressfield);
}
$flags = UFC_Address::FLAG_ANY;
}
- return new UFC_AddressField($this->val, UFC_AddressField::FIELD_SUBADMAREA, UFC_Address::TYPE_ANY, $flags);
+ return new UFC_AddressComponent($this->val, $this->envfield, UFC_Address::TYPE_NON_HQ, $flags);
}
public function getEnvFieldNames()
// {{{ class UFBF_JobCompany
class UFBF_JobCompany extends UFBF_Text
{
- private $onlymentorfield;
-
- public function __construct($envfield, $formtext = '', $onlymentorfield = 'only_referent')
- {
- parent::__construct($envfield, $formtext);
- $this->onlymentorfield = $onlymentorfield;
- }
-
- public function check(UserFilterBuilder $ufb) {
- if (parent::check($ufb)) {
- # No company check for mentors
- if ($ufb->isOn($this->onlymentorfield)) {
- $this->empty = true;
- }
- return true;
- } else {
- return false;
- }
- }
-
protected function buildUFC(UserFilterBuilder $ufb)
{
return new UFC_Job_Company(UFC_Job_Company::JOBNAME, $this->val);
}
-
- public function getEnvFieldNames()
- {
- return array($this->envfield, $this->onlymentorfield);
- }
}
// }}}
}
// }}}
+// {{{ class UFBF_DeltaTenMessage
+class UFBF_DeltaTenMessage extends UFBF_Text
+{
+ protected function buildUFC(UserFilterBuilder $ufb)
+ {
+ return new UFC_DeltaTen_Message($this->val);
+ }
+}
+// }}}
+
// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
?>