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 fonctionInclude(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 correspondantesIl 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