Le point d'extension ContentFilterExtensionPoint permet de définir un filtre statique. Il s'agit d'un point d'extension multiple: c'est à dire que plusieurs implémentations de ce point d'extension peuvent être active au même moment.
Un filtre statique doit être définie dans un fichier plugin.xml. Au besoin, vous serez amené à créer un nouveau plugin, suivez alors les instructions de la page Architecture d'un plugin Ametys.
Exemple de déclaration
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
Contient la liste de types de contenus recherchés Ex: <type id="org.ametys.web.default.Content.article"/>
non
<tags>
Contient la liste des étiquettes que doivent porter les contenus recherchés.
L'attribution "condition" définit le type d'opérateur (OR ou AND) utilisé:
La valeur AND veut dire que le filtre remontera les contenus étiquetés avec toutes les étiquettes citées. C'est la valeur par défaut (elle sera utilisée si l'attribut "condition" n'est pas renseigné).
La valeur OR veut dire que le filtre remontera les contenus étiquetés avec au moins une des étiquettes
L'attribution "strict" permet d'activer ou désactiver l'autopostage descendant:
La valeur true signifie que la recherche sur les étiquette est une recherche stricte, c'est à dire que les contenus remontés seront uniquement ceux portant exactement les étiquettes citées. Il s'agit de la valeur par défaut (en l'absence de l'attribut "strict")
La valeur false permet d'activer l'autopostage descendant. Les contenus remontés seront alors les contenus portant les étiquettes citées ou l'une de leurs étiquettes filles.
non
<metadata>
Définit les conditions sur les métadonnées. L'attribution "condition" définit le type d'opérateur (OR ou AND) utilisé. La condition "AND" est celle par défaut. Voir le paragraphe "Conditions sur les métadonnées" consacré à cet élément.
non
<view>
Définit la vue utilisée pour l'affichage des contenus. Si elle n'est pas spécifiée, c'est la vue "main" qui est utilisé par défaut. La plupart des contenus ont les vues suivantes disponibles : main (vue complète), abstract (vue résumé) et link (vue lien). Il peut en exister d'autres (voir Rendu graphique d'un contenu).
non
<context>
Définit le contexte de recherche:
current-site : le site courant
other-sites: tous les sites sauf le site courant
all-sites: tous les sites
child-pages: pages-filles de la page courante
no-site: pour une recherche sur les contenus hors sites : contenus de l'annuaire par exemple
oui
<max-result>
Définit le nombre maximum de contenus qui seront remontés par le filtre. Illimité par défaut.
non
<sort-information>
Détermine l'ordre de tri des contenus en fonction des métadonnées Ex: <sort metadataId="publication-date" ascending="true"/>
non
<mask-orphan>
Si "true", les contenus orphelins, c'est à dire n'étant rattachée à aucune page, sont masqués. false par défaut.
non
<handle-user-access>
Si "true", le filtre tient compte des droits (sur les pages à accès limités) de l'utilisateur connecté. false par défaut.
non
<access-limitation>
Uniquement à partir de Ametys 4.8 Si présent, la configuration "handle-user-access" est ignorée.
3 valeurs possibles:
page-access: strictement équivalent à handle-user-acces="false", le filtre affiche les contenus ayant les mêmes droits d'accès que la page courante (mise en cache possible)
user-access: strictement équivalent à handle-user-acces="true", le filtre affiche les contenus en tenant compte de l'utilisateur courant
anyconnected-access: le filtre affiche tous les contenus accessible aux utilisateurs anonyme ou à tous les utilisateurs connectés. Ce mode est à utiliser avec précaution, à n'utiliser que dans le cadre d'une lettre d'information automatique sur un intranet.
Conditions sur les métadonnées
Le bloc "metadata" représente les conditions à remplir par les contenus pour être remontés par le filtre. Chaque balise "metadata" dans le bloc indique une condition sur une métadonnée des contenus.
L'attribut "condition" sur le bloc "metadata" représente l'opérateur entre les différentes conditions :
La valeur AND veut dire que le filtre remontera les contenus dont les métadonnées remplissent toutes les conditions déclarées. C'est la valeur par défaut (elle sera utilisée si l'attribut "condition" n'est pas renseigné).
La valeur OR veut dire que le filtre remontera les contenus dont les métadonnées remplissent au moins une condition.
Les conditions peuvent être simples (test d'égalité sur des valeurs textuelles) ou complexes (test de type "supérieur", "inférieur" sur des valeurs de date).
Conditions simples
Une condition simple est un test d'égalité sur une valeur textuelle. Le nom de la métadonnée est indiqué dans l'attribut "id" et la valeur testée dans le contenu de la balise. Pour remonter les contenus dont la métadonnée "creator" possède la valeur "laurence", on écrit donc :
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
Les conditions complexes permettent de représenter des tests plus poussés. Pour définir une condition complexe, il faut spécifier les attributs "type" et "operator" sur la balise "metadata".
L'attribut "type" spécifie le type de la métadonnée.
L'attribut "operator" spécifie l'opérateur de la condition. Les valeurs possibles de celui-ci dépendent du type de la métadonnée.
Actuellement, seules des conditions complexes de type "date" sont supportées.
Conditions complexes sur des métadonnées de type date
Les conditions complexes portant sur des dates permettent d'effectuer des tests du type "la date de début est à partir d'hier" ou "la publication date de moins de 7 jours".
Les opérateurs disponibles sont :
L'opérateur "eq" pour remonter les contenus dont la métadonnée est égale à la date spécifiée.
L'opérateur "gte" pour remonter les contenus dont la métadonnée est après ou égale à la date spécifiée.
L'opérateur "gt" pour remonter les contenus dont la métadonnée est strictement après la date spécifiée.
L'opérateur "lte" pour remonter les contenus dont la métadonnée est avant ou égale à la date spécifiée.
L'opérateur "lt" pour remonter les contenus dont la métadonnée est strictement avant la date spécifiée.
Les valeurs peuvent être spécifiées de plusieurs façons :
Soit "today" ou "now" pour indiquer la date du jour.
Soit un jour précis représenté au format année-mois-jour, par exemple "2013-11-24" pour le 24 novembre 2013.
Soit un jour relatif à la date du jour, représenté par un chiffre positif pour un nombre de jours après la date du jour, ou négatif pour un nombre de jours avant la date du jour. Par exemple, "-1" représente hier et "7" représente "dans 7 jours".
Par exemple, le bloc de condition suivant retournera les contenus qui ont été publiés dans les 7 derniers jours.
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
Le bloc de condition suivant retournera les contenus dont la date de début (métadonnée "start-date") est comprise entre aujourd'hui et le 5 septembre 2013.
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.