# Paramètres de configuration

Les paramètres de configuration peuvent être utilisés par le code afin de réaliser des fonctions dépendant d'un paramétrage spécifique. Ces paramètres sont modifiables via le centre d'administration.

Les paramètres sont déclarés dans un fichier de configuration comme pour ceux des routes. Ils doivent être placés dans un répertoire de configuration. La déclaration XML suit le schéma https://platform.anakeen.com/4/schemas/sde/1.0.

Un paramètre est identifié par un namespace et un nom.

Les paramètres sont déclarés dans les balises suivantes :

Balises XML Description -
config/parameters/@namespace (obligatoire) Espace de nom du paramètre
config/parameters/parameter/@name (obligatoire) Référence du paramètre
config/parameters/parameter/category Texte permettant de regrouper les paramètres - Visible dans le centre d'administration
config/parameters/parameter/description Texte décrivant la fonction du paramètre
config/parameters/parameter/value Valeur initiale du paramètre
config/parameters/parameter/access = admin (default) Le paramètre est modifiable via le centre d'administration (il n'est pas modifié par l'importation une fois le paramètre enregistré)
config/parameters/parameter/access = readonly Le paramètre n'est pas modifiable via le centre d'administration
config/parameters/parameter/access = static Le paramètre n'est pas modifiable via le centre d'administration, il est réinitialisé à chaque nouvel enregistrement des paramètres
config/parameters/parameter/type Le type de paramètre (par défaut text), autres valeurs possibles integer, json ou enum(i1|i2|i3) ix sont les différentes valeurs possibles
config/parameters/parameter/isUser (bool) Indique s'il s'agit d'un paramètre utilisateur (mettre true). Dans ce cas chaque utilisateur a sa propre valeur
<sde:config xmlns:sde="https://platform.anakeen.com/4/schemas/sde/1.0">
  <sde:parameters namespace="My">
    <sde:parameter name="WebdavHost">
      <sde:category>DAV</sde:category>
      <sde:description>Webdav hostname</sde:description>
      <sde:value/>
      <sde:access>admin</sde:access>
    </sde:parameter>

    <sde:parameter name="WebdavPort">
      <sde:category>DAV</sde:category>
      <sde:description>Webdav Port number</sde:description>
      <sde:value>25</sde:value>
      <sde:access>admin</sde:access>
    </sde:parameter>

    <sde:parameter name="Level">
        <sde:description>Security level</sde:description>
        <sde:value>low</sde:value>
        <sde:type>enum(low|high)</sde:type>
        <sde:isUser>true</sde:isUser>
    </sde:parameter>

    <sde:parameter name="ResultDisplayCount">
         <sde:category>System</sde:category>
         <sde:description>Maximum time (in days) after which the temporary documents are deleted</sde:description>
         <sde:value>1</sde:value>
         <sde:type>integer</sde:type>
         <sde:access>admin</sde:access>
         <sde:isUser>true</sde:isUser>
     </sde:parameter>
  </sde:parameters>
</sde:config>

# Méthode de manipulation des paramètres

La méthode Anakeen\Core\ContextManager::getParameterValue($ns, $name) permet d'accéder aux valeurs paramètres de contexte. Si le paramètre est un paramètre utilisateur, c'est la valeur du paramètre de l'utilisateur connecté qui est retourné.

La méthode Anakeen\Core\ContextManager::setParameterValue($ns, $name, $value) permet de modifier uniquement les valeurs globales des paramètres (pas les valeurs spécifiques utilisées par les utilisateurs).

Pour avoir plus de maîtrise, la classe Anakeen\Core\Internal\ContextParameterManager permet de manipuler tout type de paramètre.

  • ContextParameterManager::setValue() permet de modifier une valeur
  • ContextParameterManager::getValue() permet de récupérer une valeur
  • ContextParameterManager::setUserValue() permet de modifier une valeur d'un utilisateur en particulier
  • ContextParameterManager::getUserValue() permet de récupérer la valeur d'un utilisateur en particulier
  • ContextParameterManager::exists() permet de vérifier qu'un paramètre a été défini
  • ContextParameterManager::setVolatile() permet de déclarer, le temps de la requête une valeur d'un paramètre