Grav - Variables de thème

Dans ce chapitre, laissez-nous comprendre Theme Variablesdans Grav. Les objets et les variables sont accessibles à partir de modèles Twig lors de la conception de votre thème et ces objets et variables sont lus et manipulés par Twig Templating Framework.

Objets de base

Le modèle Twig a de nombreux core objects; chaque objet a un ensemble de variables et functions.

Le tableau suivant présente les variables avec une brève description.

N ° Sr. Variable et description
1

{{ base_dir }}

Nous pouvons obtenir le répertoire du fichier de base des installations Grav en utilisant cette variable.

2

{{ base_url }}

L'URL de base du site Grav est accessible en utilisant cette variable.

3

{{ base_url_relative }}

Il renvoie le chemin relatif de l'url de base vers le site Grav.

4

{{ base_url_absolute }}

Il renvoie le chemin absolu de l'url de base vers le site Grav.

5

{{ theme_dir }}

Il est utilisé pour renvoyer le dossier du répertoire de fichiers du thème actuel.

6

{{ theme_url }}

Il est utilisé pour renvoyer l'URL relative du thème actuel.

objet de configuration

Dans configuration.yaml fichier, l'objet de configuration est défini pour accéder à tout paramètre de configuration Grav.

{{ config.pages.theme }}

Il renverra le thème actuellement configuré.

objet du site

Fournit un alias pour config.site objet, représentant les configurations définies dans site.yaml fichier.

objet feuilles de style

Ces objets fournissent un tableau pour les actifs de feuille de style CSS à stocker, qui peut être mis en boucle pour ajouter du CSS aux modèles.

objet scripts

Ces objets fournissent un tableau composé d'actifs JavaScript, qui sont bouclés et des scripts Java sont ajoutés aux modèles.

objet de page

Puisque la structure du Grav est définie dans pages/ dossier, le page objectest responsable de la représentation de chaque page. lepage object contient toutes les informations sur la page sur laquelle vous travaillez actuellement.

Le tableau suivant montre les méthodes de l'objet page.

N ° Sr. Méthode et description Exemple
1

summary([size])

Il donne un aperçu du contenu de la page avec la taille spécifiée fournie en paramètre.

Si la taille n'est pas spécifiée, la valeur est obtenue à partir de summary.size variable dans system/config/site.yaml fichier.

Vous pouvez également délimiter ===dans votre contenu. Le contenu avant le délimiteur sera utilisé pour le résumé.

{{ page.summary }}

Ou

{{ page.summary(80) }}
2

content()

Il est utilisé pour obtenir tout le contenu HTML de la page.

{{ page.content }}
3

headers()

Il renvoie les en-têtes de page définis dans le front-matière YAML de la page.

title: About Us
author: Johnson
Les en-têtes ci-dessus sont accessibles comme suit:
The author of this page is:  {{ page.header.author }}
4

media()

Il est utilisé pour accéder à tous les fichiers multimédias tels que les images, vidéos et autres fichiers. Il renverra un tableau contenant tous les médias associés à une page.

{% set first_image = page.media|first %}
{% set my_pdf = page.media['myfile.pdf'] %}
{% for image in page.media.images  %}
   {{ image.html }}
{% endfor %}
5

title()

Il est configuré pour renvoyer le titre de la page qui est défini dans les en-têtes YAML de la page.

title: My Page
6

menu()

La valeur du menuLa variable est retournée qui est spécifiée dans les en-têtes YAML de la page. Si latitle variable n'est pas définie, alors il sera par défaut title.

title: My Blog
menu: my blog page
sept

visible()

Il est utilisé pour définir la visibilité de la page. Habituellement, les pages avec une valeur numérique suivie d'un point (c'est-à-dire, 01.foldername) sont affichées dans le menu et le nom du dossier qui ne contient pas de valeur numérique (c'est-à-dire, foldername) ne sont pas visibles. Nous pouvons le remplacer dans l'en-tête de la page.

title: About Us
visible: true
8

routable()

En utilisant cela, nous pouvons déterminer si une page est routable ou not routablece qui signifie que vous pouvez recevoir du contenu en pointant votre navigateur vers la page. Les pages qui ne sont pas routables peuvent être utilisées dans des plugins, des modèles, etc., et ces pages ne sont pas directement accessibles. Ceci est défini dans les en-têtes de page.

title: My Page
routable: true
9

slug()

En utilisant cette variable, nous pouvons obtenir le nom direct tel qu'affiché dans l'URL de la page.

my-page
dix

url([include_host = false])

Il est utilisé pour renvoyer l'URL de la page

{{ page.url }}  { # could return /myfolder/mypage #}

Ou

{{ page.url(true) }}  {# could return http: //mysite.com/ myfolder/mypage #}
11

route()

Il est utilisé pour renvoyer le routage interne de la page.

12

home()

En utilisant cette variable, vous pouvez déterminer si la page est configurée comme homepage ou pas. Cela renvoie true lorsqu'une page est configurée comme page d'accueil et false lorsqu'elle n'est pas configurée. Vous pouvez trouver ce paramètre danssystem.yaml fichier.

13

root()

Il détermine si la page actuelle est la page racine de la hiérarchie ou non. Il retournetrue s'il s'agit d'une page racine ou false si ce n'est pas la page racine.

14

active()

Vous pouvez déterminer si le navigateur accède à la page actuelle à l'aide de cette variable. Il retournetrue si le navigateur accède à cette page ou false si ce n'est pas le cas.

15

modular()

En utilisant cette variable, nous pouvons déterminer si cette page est modulaire ou non. S'il s'agit d'une page modulaire, elle retournetrue et false si ce n'est pas le cas.

16

activeChild()

Cette variable peut déterminer si l'URL de cet URI a l'URL de la page active; ou, en termes simples, l'URL de cette page dans l'URL actuelle. Ceci est très utile lorsque vous travaillez sur des navigations et que vous voulez savoir si les pages sont itérées sur la même page parente.

17

find(url)

Comme spécifié par l'URL de la route, l'objet de page est renvoyé par cette variable.

{% include 'modular/author-detail.html.twig' with {'page': page.find('/authors/ john-bloggs')} %}
18

collection()

Cette variable est utilisée pour renvoyer le groupe de pages pour un contexte tel que déterminé par les en-têtes de page de collection.

{% for child in page.collection %}
   {% include 'partials /blog_item.html.twig' with {'page':child, 'truncate':true} %}
{% endfor %}
19

isFirst()

Si la page actuelle est la première de sa page sœur, elle renvoie true sinon retourne false.

20

isLast()

Si la page actuelle est la dernière de sa page sœur, elle renvoie true sinon retourne false.

21

nextSibling()

En référence à la position actuelle, il renvoie la page suivante du frère du tableau.

22

prevSibling()

En référence à la position actuelle, il renvoie la page sœur précédente du tableau.

23

children()

Comme défini dans la structure du contenu des pages, le tableau des pages enfants est renvoyé par cette variable.

24

orderBy()

Le type de commande des enfants triés est renvoyé par cette méthode. Les valeurs pouvant être incluses sontdefault, title, date et folder et ces valeurs configurées dans les en-têtes de page.

25

orderDir()

Le sens de l'ordre des pages enfants triées est renvoyé par cette méthode. Et les valeurs peuvent être soitasc(croissant) ou desc(descending). Habituellement, ces valeurs sont configurées dans les en-têtes de page.

26

orderManual()

Cette méthode retourne un tableau consistant en un ordre manuel des pages et cet ordre sera pour tous les enfants de la page. Cette valeur sera généralement définie dans les en-têtes de page.

27

maxCount()

Cette variable indique au maximum le nombre de pages enfants autorisées à être renvoyées. Habituellement, la valeur est spécifiée dans les en-têtes de page.

28

children.count()

Cette variable renvoie le nombre de pages enfants présentes pour une page.

29

children.current()

Cette variable renverra l'élément enfant actuel.

30

children.next()

Cela retournera l'élément enfant suivant d'un tableau de pages enfants.

31

children.prev()

Cela renverra l'élément enfant précédent d'un tableau de pages enfants.

32

children.nth(position)

Cela renverra la position de l'enfant dans le tableau des enfants.

33

parent()

Dans une arborescence imbriquée, lorsque vous souhaitez revenir à la page parente, vous pouvez utiliser cette variable. Il renverra l'objet de page parent de la page actuelle.

34

isPage()

En utilisant cette variable, vous pouvez déterminer si cette page a un réel .md fichier ou c'est juste un dossier pour le routage.

35

isDir()

En utilisant cette variable, vous pouvez déterminer si la page actuelle est uniquement un dossier pour le routage. Il retournetrue ou false basé sur cela.

36

id()

Cela renverra un identifiant unique pour la page.

37

modified()

Il renvoie l'horodatage de la dernière modification de la page.

38

date()

L'horodatage de la date de la page est renvoyé par cette méthode. Habituellement, cela est configuré dans des en-têtes qui représentent la date de la page ou de la publication. Si aucune valeur n'est fournie par défaut, l'horodatage modifié est utilisé.

39

filePath()

En utilisant cela, vous pouvez obtenir le chemin d'accès complet au fichier de la page.

/Users/yourname/sites/ Grav/user/pages/ 01.home/default.md
40

filePathClean()

Cela renverra le chemin relatif.

user/pages/ 01.home/default.md
41

path()

Cela renverra un chemin complet vers le répertoire dans lequel la page actuelle est présente.

/Users/yourname /sites/ Grav/user/pages /01.home
42

folder()

Cela renverra le nom du dossier de la page.

43

taxonomy()

Cela renverra un tableau de taxonomie qui est connecté à la page.

objet pages

L'objet Pages est représenté sous la forme d'une arborescence imbriquée d'objets de page. Cet arbre imbriqué est très utile lors de la créationnavigations, sitemap ou finding a particular page.

méthode enfants

Cela renvoie un tableau d'objets de page constitué de pages enfants. L'objet de page avec une structure arborescente peut être itéré sur chaque page du dossier.

Afin d'obtenir les pages de niveau supérieur pour le menu, utilisez le code suivant.

<ul class = "navigation">
   {% for page in pages.children %}
      {% if page.visible %}
         <li><a href = "{{ page.url }}">{{ page.menu }}</a></li>
      {% endif %}
   {% endfor %}
</ul>

objet uri

La partie de l'URI actuel est accessible à l'aide de plusieurs méthodes de l'objet Uri.

http://mysite.com/Grav/section/category/page.json/param1:foo/param2:bar/?query1 = baz&query2 = qux:

Le tableau suivant montre les méthodes de l'objet Uri.

N ° Sr. Méthode et description Exemple
1

path()

La partie de l'url actuelle est accessible en utilisant cette méthode.

uri.path = /section/category/page
2

paths()

Le tableau d'éléments de chemin est renvoyé à l'aide de cette méthode.

uri.paths = [section, category, page])
3

route([absolute = false][, domain = false])

Cette méthode renvoie la route avec une URL absolue ou relative.

uri.route(true) = http://mysite.com/Grav/ section/category/page

Ou,

uri.route() = /section/category/page)
4

params()

Cela renverra la partie paramètre dans l'URL.

uri.params = /param1:foo/param2:bar
5

param(id)

Cela renverra la valeur du paramètre.

uri.param('param1') = foo
6

query()

La partie requête de l'URL est accessible à l'aide de cette méthode.

uri.query = query1=bar&query2=qux
sept

query(id)

Grâce à cela, vous pouvez accéder à l'élément de requête spécifique.

uri.query('query1') = bar
8

url([include_host = true])

Cela renvoie l'URL complète qui peut ou non contenir l'hôte.

uri.url(false) = Grav/section/ category/page/param:foo?query = bar
9

extension()

Cela renverra l'extension ou si elle n'est pas fournie, elle renverra le html.

uri.extension = json)
dix

host()

Cela renvoie l'hôte de l'URL.

uri.host = mysite.com
11

base()

Cela renverra la partie de base de l'URL.

uri.base = http://mysite.com
12

rootUrl([include_host = true])

Cela renverra l'URL racine de l'instance Grav.

uri.rootUrl() = http://mysite.com/Grav
13

referrer()

Les informations de référent de la page sont renvoyées par cette méthode.

objet d'en-tête

C'est une alternative pour page.header()de la page originale. Il est plus approprié d'utiliser l'en-tête de page d'origine lorsque vous parcourez les pages enfants.

objet de contenu

C'est une alternative pour page.content() de la page originale.

objet de taxonomie

Toutes les informations de taxonomie du site sont contenues dans l'objet de taxonomie globale.

objet navigateur

Grav détermine par programme la plate-forme, le navigateur et la version de l'utilisateur en utilisant la prise en charge intégrée.

{{ browser.platform}}   # windows
{{ browser.browser}}    # chrome
{{ browser.version}}    # 24

Ajout de variables personnalisées

Les variables personnalisées sont ajoutées de plusieurs manières. Si vous utilisez une variable à l'échelle du site, mettez-la dansuser/config/site.yaml fichier et vous pouvez y accéder comme indiqué ci-dessous.

{{ site.my_variable }}

Si la variable est uniquement pour une page particulière, vous pouvez l'ajouter dans l'interface YAML et y accéder en utilisant le page.header objet.

For example -

title: My Page
author: John

Le nom de l'auteur est accessible sous la forme -

The author of this page is: {{ page.header.author }}

Ajout d'objets personnalisés

En utilisant des plugins, vous pouvez ajouter des objets personnalisés à l'objet Twig. Il s'agit d'un sujet avancé et nous verrons plus d'informations dans le chapitre sur les plugins .