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.

Inclusions

(:include PageName:)
(:include GroupName.PageName:)

Inclut le texte d'une autre page wiki dans celle-ci. Les liens MotsWiki dans les pages d'autres groupes seront considérées comme faisant partie du groupe courant si elle ne sont pas qualifiées autrement (c'est à dire comme si le texte était inséré dans la page courante). Notez qu'il n'y a pas d'espace entre ":" et le nom de la page.

$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 PageName#from:)
Inclut seulement la ligne de PageName contenant l'ancre [[#from]].
(:include PageName#from#to:)
Inclut PageName en commençant par la ligne contenant [[#from]] et jusqu'à la ligne contenant [[#to]].
(:include PageName#from#:)
Inclut tout de PageName après l'ancre [[#from]].
(:include PageName##to:)
Inclut tout de PageName avant l'ancre [[#to]].

(:include:PageName lines=10 :)
Inclut les dix premières lignes de PageName.
(:include:PageName lines=5..10 :)
Inclut les lignes 5 à 10 de PageName.
(:include:PageName lines=5.. :)
Inclut PageName de la ligne 5 à la fin.

(:include Page1 Page2 Page3 lines=1..5:)
Inclut les 5 premières lignes de la première Page possible : Page1 ou Page2 ou Page3 (pour inclure les lignes de toutes les pages, écrire une include pour chaque page).

Contributeurs


Question

Comment inclure un fichier externe (depuis le même système de fichiers)?

Réponse

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-->.

Voir aussi

Cookbook:IncludeUrl


Question

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?


Question

Je voudrais inclure dans ma page "Donate" un lien PayPal?.

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.


Traduction de IncludeOtherPages - Page originale sur PmWiki:PmWikiFr.InclureDautresPages