Le framework Gantry a plusieurs façons pour définir la valeur d'un paramètre de configuration. C'est l'une des choses qui fait que Gantry soit si flexible. Vous pouvez avoir les réglages des paramètres qui sont par éléments de menu et même de surcharger cela avec les paramètres user des sessions de l'utilisateur et les cookies.

Il y a des moyens statiques et dynamiques de définir la valeur d'un paramètre. Les manières statiques de définir les valeurs sont par défaut et par les éléments de menus configurés dans l'administration template. Les manières dynamiques de paramètrer la valeur sont l'utilisation des sessions utilisateurs, les cookies du navigateur des utilisateurs, et la chaîne de requête URL.

 

Priorité de valeur de paramètre

Tous les paramètres débutent avec une valeur par défaut qui est définie dans  template-options.xml. Mais ces valeurs peuvent être modifiées de plusieurs manières différentes, chacunese substituant à l'autre si elle a une valeur. L'ordre de priorité pour définir ces valeurs est montré ici:

URL Query String -> Cookie -> Session -> Per Menu Item -> Default Settings

 

La méthode la plus élevée de définition de la valeur l'emportera toujours. Par exemple, si un backgroundlevel est réglé sur highpar un élément de menu particulier, mais qu'il est mis sur low par un lien URL en passant sur une chaîne de requête, alors il sera mis à low lorsque la page est affichée, car la chaîne de requête URL a une priorité plus élevée que le réglage par l'élément de menu.

Permettre des valeurs de paramètre dynamique

Par défaut, tous les réglages d'une valeur de paramètre par une méthode dynamique sont désactivés. Afin de permettre le réglage d'une valeur dynamique, vous devez l'activer pour chaque paramètre que vous souhaitez et selon les modalités que le paramètre est autorisé à utiliser. Ceci est fait dans template-options.xml. Un paramètre peut avoir la syntaxe suivante avec des setby  et des setin. Voici un exemple de comment c'est fait:

<param name="backgroundlevel" default="med" type="slider" class="graphic-level" label="BG_LEVEL" description="BG_LEVEL_DESC" setbyurl="true" setinsession="true" setbysession="true" setincookie="true" setbycookie="true" isbodyclass="true">
    <option>low</option>
    <option>med</option>
    <option>high</option>
</param>

Dans l'exemple ci-dessus, le backgroundlevel peut être réglé par la chaîne de requête de l'URL, un cookie de navigateur et par la session des utilisateurs, c'est défini par les attributs setbyurl, setbycookie,et setbysession. Si une valeur est définie par l'un de ces moyens, il est stocké dans le cookie et la session tel que défini par les attributs setincookie et setinsession

Les attributs autorisés sont:

  • setbyurl - permet de transmettre un paramètre via l'url de chaîne de requête (default = false)
  • setbycookie - vous permets de stocker la valeur qui a été transmise dans un cookie pendant une certaine période de temps (au-delà d'une session unique de php) (default = false)
  • setincookie - vous permet de récupérer la valeur param d'un cookie (default = false)
  • setbysession - vous permet de stocker cette valeur passée pour la durée de la session (default = false)
  • setinsession - vous permet de récupérer la valeur de param de la session (default = false)
  • setinoverride - permets au param d'être surchargé dans les styles de substitution (default = true)
  • isbodyclass - vous permets de définir la valeur du paramètre comme classe sur la balise body pour du ciblage css (default = false)

Remarques sur les Presets

Les types prédéfinis peuvent utiliser les mêmes mécanismes de valeurs dynamiques pour définir les valeurs des paramètres. Si un type prédéfini est utilisé pour définir une valeur dynamique alors tous les paramètres définis dans la présélection ont leurs valeurs réglées à ce qui est dans la présélection. Mais si un paramètre individuel est défini dans le même temps alors la valeur de chaque paramètre se substitue à celle de la présélection.

Par exemple, si vous avez des presets définis comme suit :

$gantry_presets = array(
    'presets' => array(
        'preset1' => array(
            'name' => 'Preset 1',
            'linkcolor' => '#00c',
            'backgroundlevel' => 'low',
        ),
        'preset2' => array(
            'name' => 'Preset 2',
            'linkcolor' => '#ff0000',
            'backgroundlevel' => 'med',
        )
      )
    )
);

Et que les paramètres sont définis comme suit :

<param name="presets" type="preset" mode="scroller" default="preset1" label="STYLE_PRESETS" description="STYLE_PRESETS_DESC" setbyurl="true" setinsession="true" setbysession="true" setbycookie="true" setinmenuitem="false" />
<param name="backgroundlevel" default="med" type="slider" class="graphic-level" label="BG_LEVEL" description="BG_LEVEL_DESC" setbyurl="true" setinsession="true" setbysession="true" setincookie="true" setbycookie="true" isbodyclass="true">
    <option>low</option>
    <option>med</option>
    <option>high</option>
</param>

Un appel d'URL avec la chaîne de requête:

?presets=preset2&backgroundlevel=high

Donnerait les valeurs suivantes :

linkcolor=#ff0000
backgroundlevel=high
Sauvegarder
Choix utilisateur pour les Cookies
Nous utilisons des cookies afin de vous proposer les meilleurs services possibles. Si vous déclinez l'utilisation de ces cookies, le site web pourrait ne pas fonctionner correctement.
Tout accepter
Tout décliner
Fonctionnels