Differences

This shows you the differences between two versions of the page.

Link to this comparison view

documentation:white-pages:0.4:config_attributes [2019/07/23 15:11] (current)
Line 1: Line 1:
 +====== Attributes ======
  
 +<​note>​Configuration file: use [[config_general#​configuration_files|White-Pages'​ local configuration file]]</​note>​
 +
 +To configure how LDAP attributes are displayed or searched, use the ''​$attributes_map''​ parameter which is an array of arrays, with this structure:
 +  * $attributes_map:​
 +    * item: item identifier
 +      * ''​attribute'':​ name of LDAP attribute, **in lower case**
 +      * ''​faclass'':​ name of [[http://​fontawesome.io/​|Font Awesome]] icon class
 +      * ''​type'':​ type of attribute (see below)
 +
 +The following table shows how ''​type''​ are used:
 +^ Type              ^ Display ​                                     ^ Search ​                     ^ Substring matching ^
 +| text              | Simple text                                  | Text input                  | Yes |
 +| mailto ​           | Link mailto ​                                 | Text input                  | Yes |
 +| dn_link ​          | Link on user entry                           | Text input                  | No  |
 +| group_dn_link ​    | Link on group entry                          | Text input                  | No  |
 +| usergroup_dn_link | Link on user or group entry                  | Text input                  | No  |
 +| boolean ​          | "​Yes"​ or "​No" ​                               | Select ​                     | N/A |
 +| date              | [[.:​config_general#​date|Formatted date]] ​    | Calendar ("​from"​ and "​to"​) ​ | N/A |
 +| tel               | Link tel (click to call)                     | Text input                  | Yes |
 +| guid              | Simple text (objectGUID converted to string) | Text input                  | No  |
 +| list              | Simple text                                  | Select ​                     | Yes  |
 +
 +Example:
 +<file php>
 +$attributes_map = array(
 +    '​businesscategory'​ => array( '​attribute'​ => '​businesscategory',​ '​faclass'​ => '​briefcase',​ '​type'​ => '​text'​ ),
 +    '​carlicense'​ => array( '​attribute'​ => '​carlicense',​ '​faclass'​ => '​car',​ '​type'​ => '​text'​ ),
 +    '​created'​ => array( '​attribute'​ => '​createtimestamp',​ '​faclass'​ => '​clock-o',​ '​type'​ => '​date'​ ),
 +    '​manager'​ => array( '​attribute'​ => '​manager',​ '​faclass'​ => '​user-circle-o',​ '​type'​ => '​dn_link'​ ),
 +    '​member'​ => array( '​attribute'​ => '​member',​ '​faclass'​ => '​user',​ '​type'​ => '​usergroup_dn_link'​ ),
 +);
 +
 +$attributes_list = array(
 +    '​organizationalunit'​ => array('​base'​=>'​ou=services,​dc=example,​dc=com','​filter'​=>'​(objectClass=organizationalUnit)','​key'​=>'​description','​value'​=>'​ou'​),​
 +);
 +</​file>​
 +
 +To add a new definition to existing ones:
 +<file php>
 +$attributes_map['​fax'​] = array( '​attribute'​ => '​facsimiletelephonenumber',​ '​faclass'​ => '​fax',​ '​type'​ => '​text'​ );
 +</​file>​
 +
 +To manage a list, you need to define how keys and values are searched in LDAP directory, for example:
 +<file php>
 +$attributes_map['​organizationalunit]'​ = array( '​attribute'​ => '​ou',​ '​faclass'​ => '​building-o',​ '​type'​ => '​list'​ );
 +$attributes_list['​organizationalunit'​] = array('​base'​=>'​ou=services,​dc=example,​dc=com',​ '​filter'​=>'​(objectClass=organizationalUnit)',​ '​key'​=>'​description',​ '​value'​=>'​ou'​);​
 +);
 +</​file>​
 +
 +The attribute set in ''​key''​ will be used as select key, and the attribute set in ''​value''​ will be used as select value.
 +
 +<note tip>
 +You can translate attribute label by defining the ''​label_item''​ messages in [[.:​config_general#​lang|custom lang file]], for example:
 +<file php>
 +$messages["​label_fax"​] = "​Fax";​
 +</​file>​
 +</​note>​
 +
 +<note warning>​Don'​t forget to put your LDAP attribute in lower case !</​note>​