A population is a set of users/members from the same data source (LDAP, SQL, ...).
User "populations" are defined by the integrator in the file XML WEB-INF/param/user-populations.xml (see Plugin Directories - Integration manual v1.1.0)
All populations/directories are synchronized every night at a time configurable by the administrator in the configuration parameters.
For each member of the population (user of a LDAP directory, for example):
- a content Ametys, of the type defined by the population, is created if no content corresponds to the identifier or login
- if a content corresponding to the login is found in Ametys, the fields of the content
are synchronized - if a content created by a previous synchronization is linked to a login that no longer exists in the data source, it is deleted if the population is defined as a "trusted source". Otherwise, the content is not modified.
For each member of a population (unique identifier), a content Ametys for each supported language will be created. The languages supported by the application are defined in the WEB-INF/param/languages file .xml.
plugin does not provide a graphical tool for population synchronization. Any errors occurring during synchronization will be traced in the application logs and a mail will be sent to the administrator.
All Ametys content resulting from the synchronization of a population is "searchable" via the "Directory" tool.
The tool's search criteria allow you to specify the language, population or type of content you're looking for.
Content is not site-specific.
Content fields that are synchronized with data from a data source appear on 2 lines in the online editor:
The button on the right allows you to choose whether to use the Ametys value or the remote value:
Fields not taken from the external data source or not synchronized appear on a single line.
Depending on the population configuration, the value of a field may be extracted from the external data source but not synchronized. In this case, the field is edited on a single line.
It is possible to modify the value of the field, but this value will be automatically overwritten the next time it is synchronized. If this is not desirable, this field must be synchronized in the population definition (see Plugin Directories - Integration manual v1.1.0).
It is thus possible to modify and complete a person's entry in a LDAP directory.
To modify content resulting from synchronization with a population, you must :
- either have the right to "Modify a record" in the "Directory" category in the content context
- or have the right to "Modify your personal record" and be the owner of the content (the content is linked to your login)
To publish a directory on your site, you need to define the page(s) in the sitemap that will contain the records of your members. These pages are called the "Directory Root".
To define such a page, select the page in the "Site map" tool, then click on "Directory root" in the Page tab.
Then select the user population to be reached by this page:
The tree depth corresponds to the number of intermediate pages that will be used to classify the members of the population. These intermediate pages are calculated on the first X letters of the field used to identify a member (his login for example), X being the chosen depth.
These pages are not intended to be displayed on the site, but rather to preserve display performance, in the case of a large directory: the more members the directory contains, the greater the depth should be.
For example, for a directory with 100 to 200 members, a depth of 1 is sufficient, while for a directory with over 10,000 members, a depth of 3 is recommended.
In the example below, the "Staff directory" page is the root of the directory for the "Staff directory" population. All its sub-pages are made up of staff records, sorted alphabetically by ID, on a single level (depth of 1).
This is called a "virtual" tree structure, as it does not use "physical" pages, but pages automatically calculated from the members of the population.
Remarks
- A single root page can be defined for a given population, for the same site.
After selecting a root page for your directory (population), you can insert the "Directory search " service to enable visitors to search the directory.
The service has 5 parameters:
Name | Description | Mandatory |
---|---|---|
Title | Directory title | No |
Population | Selecting the research population | Yes |
Results by page | Number of results per page | Yes |
Service identifier | Identifier used to communicate between two instances of this service (when criteria and results are not displayed on the same page). | No |
Display | Choice of rendering (depends on graphic charter). Two rendering options are available by default:
| Yes |
Search criteria and result columns depend on the population and are defined by the integrator when defining populations: see Plugin Directories - Integration manual v1.0.0
Each result is "clickable" and links to the person's complete file.
The "Display a person card" service lets you display a person's card on any page of the site.
The service has 3 parameters:
Name | Description | Mandatory |
---|---|---|
Person card | Search and select "member" content to display | Yes |
View | Content view | Yes |
Display | Service rendering | Yes |
plugin Directories also enables simple searches directly on external LDAP directories: search results are extracted from LDAP, with no link to Ametys content.
To do this, the "External directory" search service uses the LDAP connections and searches defined in the Data Sources tool.
Data sources LDAP will be defined in the "Data source" tool.
Search criteria and result columns are automatically extracted from the query definition.
For example:
To enable an external directory search, insert the "External directory" service.
The service has 3 parameters;
Name | Description | Mandatory |
---|---|---|
Title | Directory title | No |
External source | Source selection LDAP external. Only "multiple" LDAP queries can be selected. | Yes |
Number of results per page | Number of results per page. | Yes |
Display | Rendering of the service. Depends on the graphic charter | Yes |