6.10. Inclusion de documents

A l'intérieur d'un script vous pouvez demander à Karrigell d'inclure le contenu d'un autre fichier statique ou le résultat d'un autre script par la fonction Include(url), où url est l'url du fichier ou du script (vous pouvez utiliser des alias comme pour les fichiers ordinaires)

Ceci peut servir si vous voulez construire un ensemble de pages avec des composants qui seront présents sur toutes les pages (par exemple un entête ou un pied de page). Votre script sera construit de la façon suivante :

Include("test_authentification.py")    # vérifie si l'utilisateur est authentifié
Include("entete.htm")   # un fichier statique avec un titre, une feuille de style etc
(... le corps de votre script ...)
Include("pied_de_page.py")    # un script qui imprime la date courante par exemple

A l'exécution, Karrigell déclenche une RecursionError en cas de boucle infinie (des scripts qui s'incluent eux-mêmes, ou le script 1 qui inclut le script 2 qui inclut le script 1)

6.10.1 Espace de noms

Un script inclus est exécuté dans le même espace de noms que le script qui l'appelle, y compris les variables définies dans ce script : si le script appelant est

nom="Brian"
print "La vie de "
Include("quelNom.py")

et que quelNom.py est

print nom

vous verrez que la variable nom est disponible dans le script inclus

6.10.2 Passage de paramètres

Il peut être utile de passer des paramètres au script inclus : voir par exemple le script de menu dans la démo de portail. Ce script prend comme paramètres une liste d'éléments de menu et la liste des urls correspondantes

Il sera inclus de cette façon :

Labels=[...]
Urls=[...]
Include("k_menu.hip",
    labels=Labels,
    urls=Urls,
    targetUrl="index.pih")

Les paramètres peuvent aussi être passés par la chaîne de requête (query string) ajoutée à l'url du script : avec Include("/monchemin/unScript.pih?data=machpro") la variable data sera disponible dans l'espace de noms de unScript.pih