support de téléphone avec label
This commit is contained in:
		
							parent
							
								
									2a26b7db8d
								
							
						
					
					
						commit
						26edd874df
					
				
							
								
								
									
										23
									
								
								nur_src/ldap/labels.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								nur_src/ldap/labels.php
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					namespace nur\ldap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use nur\str;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class labels {
 | 
				
			||||||
 | 
					  static function strip(?string &$value, ?string &$label=null): void {
 | 
				
			||||||
 | 
					    if ($value === null) return;
 | 
				
			||||||
 | 
					    if (preg_match('/^(\{[^}]*})/', $value, $ms, PREG_OFFSET_CAPTURE)) {
 | 
				
			||||||
 | 
					      $label = $ms[1][0];
 | 
				
			||||||
 | 
					      $value = substr($value, $ms[1][1] + strlen($label));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  static function add(?string $value, ?string $label): ?string {
 | 
				
			||||||
 | 
					    if ($value === null) return null;
 | 
				
			||||||
 | 
					    if ($label !== null) {
 | 
				
			||||||
 | 
					      str::add_prefix($label, "{");
 | 
				
			||||||
 | 
					      str::add_suffix($label, "}");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return "$label$value";
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -2,6 +2,7 @@
 | 
				
			|||||||
namespace nur\ldap\syntaxes;
 | 
					namespace nur\ldap\syntaxes;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use nur\data\types\TelephoneType;
 | 
					use nur\data\types\TelephoneType;
 | 
				
			||||||
 | 
					use nur\ldap\labels;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class TelephoneSyntax extends StringSyntax {
 | 
					class TelephoneSyntax extends StringSyntax {
 | 
				
			||||||
  function __construct() {
 | 
					  function __construct() {
 | 
				
			||||||
@ -14,11 +15,15 @@ class TelephoneSyntax extends StringSyntax {
 | 
				
			|||||||
  function php2ldap($value): ?string {
 | 
					  function php2ldap($value): ?string {
 | 
				
			||||||
    $value = parent::php2ldap($value);
 | 
					    $value = parent::php2ldap($value);
 | 
				
			||||||
    if ($value === null) return null;
 | 
					    if ($value === null) return null;
 | 
				
			||||||
 | 
					    labels::strip($value, $label);
 | 
				
			||||||
    $type = $this->type;
 | 
					    $type = $this->type;
 | 
				
			||||||
    return $type->ensureInternational($type->with($value));
 | 
					    $value = $type->ensureInternational($type->with($value));
 | 
				
			||||||
 | 
					    return labels::add($value, $label);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  function ldap2php(string $value): string {
 | 
					  function ldap2php(string $value): string {
 | 
				
			||||||
    return $this->type->ensureLocal($value);
 | 
					    labels::strip($value, $label);
 | 
				
			||||||
 | 
					    $value = $this->type->ensureLocal($value);
 | 
				
			||||||
 | 
					    return labels::add($value, $label);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user