<?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 *
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'),
$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_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_EducationSchool('schoolTxt', 'school', "École d'application"),
new UFBF_EducationDegree('diplomaTxt', 'diploma', 'Diplôme'),
}
$value = $ufb->t($this->envfield);
- $values = explode("\r\n", $value);
+ $values = explode("\n", $value);
$ids = array();
foreach ($values as $val) {
+ $val = trim($val);
if (preg_match('/^[0-9A-Z]{0,8}$/', $val)) {
$ids[] = $val;
}
return true;
}
+ public function getEnvFieldNames()
+ {
+ return array($this->envfield, $this->reversed_envfield);
+ }
+
protected function buildUFC(UserFilterBuilder $ufb)
{
$ufc = new UFC_SchoolId($this->type, $this->val);
}
// }}}
-// {{{ class UFBF_Town
-/** Retrieves a town, either from a postal code or a town name
- */
-class UFBF_Town extends UFBF_Text
-{
- 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
+// {{{ class UFBF_AddressMixed
+class UFBF_AddressMixed extends UFBF_Mixed
{
- protected $direnum = DirEnum::COUNTRIES;
protected $onlycurrentfield;
+ protected $onlybestmailfield;
- public function __construct($envfieldtext, $envfieldindex, $formtext = '', $onlycurrentfield = 'only_current')
+ public function __construct($envfieldtext, $envfieldindex, $formtext = '', $addressfield, $onlycurrentfield = 'only_current', $onlybestmailfield = 'only_best_mail')
{
parent::__construct($envfieldtext, $envfieldindex, $formtext);
$this->onlycurrentfield = $onlycurrentfield;
+ $this->onlybestmailfield = $onlybestmailfield;
+ $this->direnum = constant('DirEnum::' . $addressfield);
}
protected function buildUFC(UserFilterBuilder $ufb)
{
+ $flags = UFC_Address::FLAG_NONE;
if ($ufb->isOn($this->onlycurrentfield)) {
- $flags = UFC_Address::FLAG_CURRENT;
- } else {
- $flags = UFC_Address::FLAG_ANY;
+ $flags |= UFC_Address::FLAG_CURRENT;
}
-
- return new UFC_AddressField($this->val, UFC_AddressField::FIELD_COUNTRY, UFC_Address::TYPE_ANY, $flags);
- }
-
- public function getEnvFieldNames()
- {
- return array($this->envfield, $this->envfieldindex, $this->onlycurrentfield);
- }
-}
-// }}}
-
-// {{{ class UFBF_AdminArea
-class UFBF_AdminArea 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 {
+ if ($ufb->isOn($this->onlybestmailfield)) {
+ $flags |= UFC_Address::FLAG_BEST_MAIL;
+ }
+ if ($flags == UFC_Address::FLAG_NONE) {
$flags = UFC_Address::FLAG_ANY;
}
- return new UFC_AddressField($this->val, UFC_AddressField::FIELD_ADMAREA, UFC_Address::TYPE_ANY, $flags);
+ return new UFC_AddressComponent($this->val, $this->envfieldindex, UFC_Address::TYPE_NON_HQ, $flags);
}
public function getEnvFieldNames()
{
- return array($this->envfield, $this->onlycurrentfield);
+ return array($this->envfield, $this->envfieldindex, $this->onlycurrentfield, $this->onlybestmailfield);
}
}
// }}}
-// {{{ class UFBF_SubAdminArea
-class UFBF_SubAdminArea extends UFBF_Index
+// {{{ class UFBF_AddressIndex
+class UFBF_AddressIndex extends UFBF_Index
{
- protected $direnum = DirEnum::SUBADMINAREAS;
+ protected $direnum;
protected $onlycurrentfield;
+ protected $onlybestmailfield;
- public function __construct($envfield, $formtext = '', $onlycurrentfield = 'only_current')
+ public function __construct($envfield, $formtext = '', $addressfield, $onlycurrentfield = 'only_current', $onlybestmailfield = 'only_best_mail')
{
parent::__construct($envfield, $formtext);
$this->onlycurrentfield = $onlycurrentfield;
+ $this->onlybestmailfield = $onlybestmailfield;
+ $this->direnum = constant('DirEnum::' . $addressfield);
}
protected function buildUFC(UserFilterBuilder $ufb)
{
+ $flags = UFC_Address::FLAG_NONE;
if ($ufb->isOn($this->onlycurrentfield)) {
- $flags = UFC_Address::FLAG_CURRENT;
- } else {
+ $flags |= UFC_Address::FLAG_CURRENT;
+ }
+ if ($ufb->isOn($this->onlybestmailfield)) {
+ $flags |= UFC_Address::FLAG_BEST_MAIL;
+ }
+ if ($flags == UFC_Address::FLAG_NONE) {
$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()
{
- return array($this->envfield, $this->onlycurrentfield);
+ return array($this->envfield, $this->onlycurrentfield, $this->onlybestmailfield);
}
}
// }}}
// {{{ 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);
- }
}
// }}}
}
// }}}
-// 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:
?>