Cette page décrit l’utilisation de la directive (:include:)
pour insérer le contenu d’autres pages dans l’affichage de la page wiki courante. Il y a beaucoup de manières astucieuses d’utiliser cette directive.
$MaxIncludes
: Pour empêcher des boucles infinies d’inclusion, seul un nombre limité d’inclusions est effectivement exécuté (contrôlé par la variable de configuration $MaxIncludes
, dont la valeur par défaut est 10). Si vous avez besoin de plus de 10 inclusions de fichier dans une page, contactez l’administrateur du Wiki.
(:include Page1 Page2 Page3 lines=1..5:)
Comment inclure un fichier externe (depuis le même système de fichiers)?
Il y a deux options.
Dans la page wiki elle-même, si vous ne voulez pas donner un accès aux auteurs à n’importe quel fichier du système, créez votre propre balise. En supposant que les fichiers à inclure sont dans un seul répertoire (ou dans un répertoire remplis de liens) pour être un peu plus en sécurité, adaptez ce qui suit:
Markup('includefile', 'directives',
'/\\(:includefile\\s+([-\\w.]+)\\s*:\\)/e',
"Keep(implode('',
file('/home/yourlocalfilesystempath/public_html/inc/$1')))");
Avec ceci, la balise (:includefile something.html:)
incluera le contenu de
/home/yourlocalfilesystempath/public_html/inc/something.html
dans la sortie.
Dans un fichier de modèle .tmpl vous pouvez utiliser <!--file:path/to/template.html-->
.
Il semble que les pages soient insérées en prenant en compte le contexte de la page appelante. Par exemple si j’inclue une page depuis le groupe Test dont le contenu est Ceci est le groupe {$Group}
. Lors de l’affichage de cette page, on lira “Ceci est le groupe Test”, quand j’inclue cette page dans Main/Sandbox, j’obtiens “ceci est le groupe Main”. — Erreur ou fonctionnalité ? Uli?
Je voudrais inclure dans ma page “Donate” un lien Pay Pal?.
Résolu par l’utilisation du module “Balises HTML”, mais avec un trou dans la sécurité.
Résolu de façon plus sûre et plus élégante avec les Balises personnalisées.