Adds search on AX mail addresses.
[platal.git] / include / ufbuilder.inc.php
index 5785ea7..d5123a9 100644 (file)
@@ -1071,19 +1071,26 @@ class UFBF_Dead extends UFBF_Enum
 class UFBF_AddressMixed extends UFBF_Mixed
 {
     protected $onlycurrentfield;
+    protected $onlyaxmailfield;
 
-    public function __construct($envfieldtext, $envfieldindex, $formtext = '', $addressfield, $onlycurrentfield = 'only_current')
+    public function __construct($envfieldtext, $envfieldindex, $formtext = '', $addressfield, $onlycurrentfield = 'only_current', $onlyaxmailfield = 'only_ax_mail')
     {
         parent::__construct($envfieldtext, $envfieldindex, $formtext);
         $this->onlycurrentfield = $onlycurrentfield;
+        $this->onlyaxmailfield = $onlyaxmailfield;
         $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->onlyaxmailfield)) {
+            $flags |= UFC_Address::FLAG_AX_MAIL;
+        }
+        if ($flags == UFC_Address::FLAG_NONE) {
             $flags = UFC_Address::FLAG_ANY;
         }
 
@@ -1092,7 +1099,7 @@ class UFBF_AddressMixed extends UFBF_Mixed
 
     public function getEnvFieldNames()
     {
-        return array($this->envfield, $this->envfieldindex, $this->onlycurrentfield);
+        return array($this->envfield, $this->envfieldindex, $this->onlycurrentfield, $this->onlyaxmailfield);
     }
 }
 // }}}
@@ -1102,20 +1109,27 @@ class UFBF_AddressIndex extends UFBF_Index
 {
     protected $direnum;
     protected $onlycurrentfield;
+    protected $onlyaxmailfield;
 
-    public function __construct($envfield, $formtext = '', $addressfield, $onlycurrentfield = 'only_current')
+    public function __construct($envfield, $formtext = '', $addressfield, $onlycurrentfield = 'only_current', $onlyaxmailfield = 'only_ax_mail')
     {
         parent::__construct($envfield, $formtext);
         $this->onlycurrentfield = $onlycurrentfield;
+        $this->onlyaxmailfield = $onlyaxmailfield;
         $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->onlyaxmailfield)) {
+            $flags |= UFC_Address::FLAG_AX_MAIL;
+        }
+        if ($flags == UFC_Address::FLAG_NONE) {
             $flags = UFC_Address::FLAG_ANY;
         }
 
@@ -1124,7 +1138,7 @@ class UFBF_AddressIndex extends UFBF_Index
 
     public function getEnvFieldNames()
     {
-        return array($this->envfield, $this->onlycurrentfield);
+        return array($this->envfield, $this->onlycurrentfield, $this->onlyaxmailfield);
     }
 }
 // }}}