Fonctions Twig

Le CMS Ametys met à disposition des intégrateurs de nombreuses fonctions Twig, utilisables directement dans les templates, facilitant l'intégration des chartes graphique.

  1. Référence
    1. Préfixes URL / Contexte de l'application
      1. uriPrefix
      2. absoluteUriPrefix
      3. siteUriPrefix
      4. absoluteSiteUriPrefix
    2. Skin
      1. skin
      2. skinURL
      3. skinResources
      4. skinImageBase64
      5. template
      6. templateURL
      7. zone
    3. Page
      1. site
      2. lang
      3. pagePath
      4. pageId
      5. pageTitle
      6. pageLongTitle
      7. pageMetadata
      8. pageHasRestrictedAccess
      9. findPagesIdsByTag
      10. isCacheable
    4. Contenu
      1. contentAttachments
      2. contentTags
    5. Explorateur de ressources
    6. Etiquettes
    7. Divers
      1. renderingContext
      2. escapeJS
      3. splitText
      4. pluginResourceURL
      5. pluginImageBase64
      6. sitemap
      7. user
      8. groups
    8. Paramètres
      1. config
      2. siteParameter
      3. serviceParameter
      4. serviceParameters
      5. requestParameter

Référence

Préfixes URL / Contexte de l'application

uriPrefix

Description :
Retourne le contexte de l'application en fonction du contexte de rendu, par exemple '/cms', '/cms/preview'.
Cette fonction peut être utilisée pour accéder au serveur via des requêtes AJAX.
Le résultat peut être vide si le contexte de l'application correspond à la racine du domaine.

Signature :
String uriPrefix()

Exemple :

$j.post("{{ uriPrefix() }}"/>/plugins/cms/comments/add-comment", data, result);
absoluteUriPrefix

Description :
Identique à uriPrefix mais en ajoutant le protocole et le nom du serveur pour obtenir une adresse aboslue, par exemple 'http://www.ametys.org' or 'http://www.ametys.org/cms' or 'http://www.ametys.org/cms/preview'.

Signature :
String absoluteUriPrefix()

siteUriPrefix

Description :
Retourne le contexte du site indiqué en paramètre (site courant si pas de paramètre) en fonction du contexte de rendu, par exemple '/cms/www', '/cms/preview/www'.
Cette fonction peut être utilisée pour construire un chemin vers une page.
Le résultat peut être vide si le contexte du site correspond à la racine du domaine.

Signature :
String siteUriPrefix()
String siteUriPrefix(String siteName)

Arguments :

Nom

Type

Description

siteName

String

Nom du site

Exemple :

<a href="{{ siteUriPrefix() }}/{{ lang() }}/index.html">Accueil</a>
<a href="{{ siteUriPrefix('www') }}/{{ lang() }}/index.html">Accueil</a>
absoluteSiteUriPrefix

Description :
Identique à siteUriPrefix mais renvoie une valeur absolue, par exemple 'http://www.ametys.org' or 'http://www.ametys.org/cms/www' or 'http://www.ametys.org/cms/preview/www'.
Utile pour obtenir l'URL du site (pour créer le bouton "I like facebook" par exemple).

Signature :
String absoluteUriPrefix()
String absoluteUriPrefix(String siteName)

Arguments :

Nom

Type

Description

siteName

String

Nom du site

Skin

skin

Description :
Retourne le nom de la charte graphique utilisée par le site courant.

Signature :
String skin()

skinURL

Description :
Retourne le chemin vers le fichier ressource de la charte graphique.

Signature :
String skinURL(String path)

Arguments :

Nom

Type

Description

path

String

Chemin vers une ressource de la charte graphique

Exemple :
Insérer une image placée dans le répertoire cms/skins/[skinName]/resources/img/[imageName].png.

<img src="{{ skinURL('img/[imageName].png') }}"/>
skinResources

Description :
Retourne un nœud DOM représentant le sous-répertoire du répertoire resources de la charte graphique en cours d'utilisation.
Cela permet notamment de faire un diaporama de l'ensemble des images d'un répertoire sans connaître les noms de tous les fichiers.

Voir resourcesById pour voir la description du DOM.

Signature :
Collection skinResources(String path)

Arguments :

Nom

Type

Description

path

String

Chemin dans le répertoire resources de la charte graphique

Exemple :

<ul>
	{% for resource in skinResources('img/slideshow') %}
		<img src="{{ skinURL('img/slideshow/' ~ resource.name)) }}"/>
	{% endfor %}
</ul>
skinImageBase64

Description :
Retourne une image de la charte graphique encodée en base 64. L'image est alors intégrée directement dans le corps HTML de la page.

Signature :
String skinImageBase64(String path)

Arguments :

Nom

Type

Description

path

String

Chemin de l'image dans le répertoire resources de la charte graphique

Exemple :

<img src="{{ skinImageBase64('img/header.jpg') }}" />
template

Description :
Retourne le nom du gabarit en cours d'utilisation.

Signature :
String template()

templateURL

Description :
Retourne le chemin vers la ressource mise en argument contenue dans le gabarit courant de la charte graphique.

Signature :
String templateURL(String path)

Arguments :

Nom

Type

Description

path

String

Chemin vers une ressource du gabarit de la charte graphique

Exemple :
Insérer une image placée dans le répertoire cms/skins/[skinName]/templates/[currentTemplateName]/resources/img/[imageName].png".

<img src="{{ templateURL('img/[imageName].png') }}"/>
zone

Description :
Retourne le nom de la zone en cours d'utilisation. Utile pour le rendu d'un contenu ou d'un service.
Attention, le rendu d'un contenu peut aussi être visualisé en dehors d'une page avec aucune zone associée, il faut donc passer en paramètre une valeur par défaut.

Signature :
String zone (String defaultValue)

Arguments :

Nom

Type

Description

defaultValue

String

Valeur par défaut si aucune zone n'est en cours d'utilisation

Exemple :

{% set zone = zone("default") %}

{% if zone == 'default' %}
        <!-- Nous sommes dans la zone 'default' -->
        ...
{% elseif zone == 'right' %}
        <!-- Nous sommes dans la zone 'right' -->
        ...
{% else %}
        <!-- Nous sommes dans la zone 'left' -->
        ...
{% endif %}

Page

site

Description :
Retourne l'identifiant du site contenant la page courante.

Signature :
String site()
String site(String pageId)

Arguments :

Aucun

Nom

Type

Description

pageId

String

Identifiant unique de page

lang

Description :
Retourne le code de la langue de la page en cours d'utilisation.

Signature :
String lang()
String lang(String pageId)

Arguments :

Aucun

Nom

Type

Description

pageId

String

Identifiant unique de page

Exemple :

<a href="{{ siteUriPrefix() }}/{{ lang() }}/index.html">Accueil</a>
pagePath

Description :
Retourne le chemin de la page courante. Ce chemin est relatif au plan du site.

Signature :
String pagePath()

pageId

Description :
Retourne l'identifiant unique de la page courante (sous la forme page://...).

Signature :
String pageId()

pageTitle

Description :
Retourne le titre de la page.

Signature :
String pageTitle(String sitename, String lang, String path)
String pageTitle(String pageId)

Arguments : 

Nom

Type

Description

sitename

String

Identifiant du site
langStringCode de la langue du site
pathStringChemin de la page dans le plan du site

Nom

Type

Description

pageId

String

Identifiant unique de page

Exemple : 
Ceci retournera le titre de la page d'accueil : "Home" ou "Accueil".

{{ pageTitle(site(), lang(), 'index') }}
pageLongTitle

Description :
Identique à pageTitle excepté qu'il retourne le titre long.
Noter que s'il n'y a pas de titre long, c'est le titre qui est retourné.

Signature :
String longPageTitle(String sitename, String lang, String path)
String longPageTitle(String pageId)

Arguments : 

Nom

Type

Description

sitename

String

Identifiant du site

langStringCode de la langue du site
pathStringChemin de la page dans le plan du site

Nom

Type

Description

pageId

String

Identifiant unique de page

pageMetadata

Description :
Retourne la valeur d'une métadonnée de page sous forme de chaîne de caractères.

Signature : 
String pageMetadata (String sitename, String lang, String path, String metadataName)
String pageMetadata (String pageId, String metadataName)

Arguments :

Nom

Type

Description

sitename

String

Identifiant du site

langStringCode de la langue du site
pathStringChemin de la page dans le plan du site
metadateNameStringNom de la metadonnée. Utiliser le caractère '/' pour accéder à une métadonnée composite.

Nom

Type

Description

pageId

String

Identifiant unique de page

metadataNameStringNom de la metadonnée. Utiliser le caractère '/' pour accéder à une métadonnée composite.
pageHasRestrictedAccess

Description :
Retourne le statut de la page selon si elle est restreinte ou non : false si la page est public, sinon true.

Signature :
boolean pageHasRestrictedAccess(String pageId)

Arguments :

Nom

Type

Description

pageId

String

Identifiant unique de page

findPagesIdsByTag

Description :
Retour une liste de pages correspondant à une recherche par tag, sous la forme :

Signature :

Collection findPagesIdsByTag(String tag) 
Collection findPagesIdsByTag(String sitename, String lang, String tag)  

Arguments :

Nom

Type

Description

tag

String

Identifiant de l'étiquette de page

Nom

Type

Description

sitename

String

Nom du site. Par exemple 'www'.

langStringCode de la langue. Par exemple 'fr'.
tagString

Identifiant de l'étiquette de page.

Exemple :

Pour créer une liste de lien vers les pages portant l'étiquette TEST.

{% set testPages = findPagesIdsByTag('TEST') %}
{% if testPages is not null %}
	<ul>
		{% for page in testPages %}
			<li>
   				<a href="{{ resolve('page', page.id) }}">{{ pageLongTitle(page.id) }}</a>
			</li>
		{% endfor %}
	</ul>

{% endif %}
isCacheable

Description :
Détermine si le service, le contenu ou la page sur lequel on se trouve est cacheable, c'est à dire peut être mis dans le cache.

Si isCacheable est appelée depuis le rendu d'un service, la méthode retourne le statut du service vis à vis du cache.
Si isCacheable est appelée depuis le rendu d'un contenu, la méthode retourne le statut du contenu vis à vis du cache.
Si isCacheable est appelée dans la skin, la méthode retourne le statut de la page vis à vis du cache.

Signature :
boolean isCacheable()

 

Contenu

contentAttachments

Description :
Retourne une collection correspondant aux fichiers joints du contenu courant ou du contenu spécifié.

Voir resourcesById

Signature :
Collection contentAttachments()
Collection contentAttachments(String contentId)

Arguments :

Nom

Type

Description

contentId

String

Identifiant unique du contenu

contentTags

Description :
Retourne les étiquettes appliquées au contenu courant.

Signature :
Collection contentTags() 

Explorateur de ressources

TODO

Etiquettes

TODO

Divers

renderingContext

TODO

escapeJS

Description :
Échappe les caractères spéciaux d'une chaîne pour être compatible en JavaScript.
Par exemple, le saut de ligne devient \n, la " devient \", etc.

Signature :
String escapeJS(String value)

Arguments :

Nom

Type

Description

value

String

Valeur à échapper

Exemple :
Pour initialiser une variable JavaScript avec une valeur provenant du XML, ne pas l'affecter directement car certains caractères (comme le guillemet ou le retour à la ligne) ne seront pas valides en JavaScript.

<script type="text/javascript">
	var name = "{{ escapeJS(name) }}";
</script>
splitText

Description:
Scinde le texte à la prochaine occurrence d'un caractère parmi le jeu de caractères donné, en tenant compte d'un taille minimum du texte retourné.

Signature:
String splitText (String textToSplit, String tokenizers, int startIndex)

Arguments:

NomTypeDescription
textToSplitStringTexte à scinder
tokenizersStringCaractères délimiteurs
startIndexintIndice dans la chaine de caractères à partir de laquelle commencer la recherche d'un caractère délimiteur.
Correspond de ce fait à la taille minimum de la chaine de retour. 

 

Exemple:

{{ splitText ('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quoniam, si dis placet, ab Epicuro loqui discimus.', ',.;', 70) }}

La chaîne retournée est "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quoniam, si dis placet"

pluginResourceURL

Description :
Retourne le chemin vers un fichier de ressource stocké dans un plugin.

Signature :
String pluginResourceURL(String plugin, String path)

Arguments :

Nom

Type

Description

plugin

String

Nom du plugin

pathStringChemin dans le répertoire de ressources du plugin

Exemple :

<script type="text/javascript" src="{{ pluginResourceURL('web', 'js/jquery.treeview.min.js') }}"/>
pluginImageBase64

Description :
Retourne une image encodée en base 64 stocké dans un plugin.

Signature :
String pluginImageBase64(String plugin, String path)

Arguments :

Nom

Type

Description

plugin

String

Nom du plugin

pathStringChemin de l'image dans le répertoire de ressources du plugin

Exemple :

<img src="{{ pluginResourceURL('myplugin', 'img/image.png') }}"/>
sitemap

TODO

user

TODO

groups

TODO

 

Paramètres

config

Description :
Retourne la valeur d'un paramètre de configuration.

Signature :
String config(String id)

Arguments :

Nom

Type

Description

id

String

Identifiant du paramètre

Exemple :

<script type="text/javascript">
    alert("Vous allez recevoir un email de {{ config('smtp.mail.from') }}");
</script>
siteParameter

TODO

serviceParameter

TODO

serviceParameters

TODO

requestParameter

TODO