PmWikiCa /
Inclusió d'altres pàginesautores (intermedi)
La directiva SintaxiLa sintaxi bàsica és
usant NomPagina s'inclou la totalitat d'eixa pàgina (del mateix grup).
La sintaxi completa és
inclou una pàgina d'acord amb els paràmetres proporcionats. Els paràmetres són opcionals.
ParàmetresLa directiva pot tenir múltiples paràmetres NomPagina amb o sense àncores, i múltiples variables. Les pàgines especificades(:include NomPagina:)
(:include Grup.NomPagina:)
(:include Pagina1 Pagina2 Grup1.Pagina3 Grup2.Pagina4:)
Totes tres inclouen a dintre de la pàgina actual el text complet de la pàgina especificada. S'hi poden especificar múltiples pàgines, però només s'inclourà la primera disponible.
Podeu usar la característica citada a dalt per a 'mostrar un missatge d'error en cas de que la inclusió falli. Creeu una pàgina, p.ex. Site.IncludeFailed que contingui el missatge d'error. Podeu usar qualsevol nom per a la pàgina. Després afegiu-la al final de la llista de pàgines de l'include: (:include Pagina1 Pagina2 Pagina3 Site.IncludeFailed:) Una aproximació lleugerament més complicada s'explica a la pàgina de discussió. Àncores
Nota: no s'han de ficar espais entre "#desde" i "#fins".
Nota: el text que és en la mateixa línia que l'ancora [[#fins]] ] NO s'inclourà al text, fins i tot si precedeix l'àncora. Per xemple:
[[#desde]]algunes paraules a la primera línia
algunes paraules més a l'última línia [[#fins]]
Quan s'incloguen les línies de dalt amb (:include NomPagina#desde:) es mostrarà el text de la primera línia però no el de l'última.
(:include Pagina1 Pagina2 #desde#fins:)
Inclou els continguts entre [[#desde]] i [[#fins]] de la primera pàgina disponible, bé sigui Pagina1 o Pagina2.
Nota: cal ficar un espai entre "Pagina2" i "#desde#fins". Les mateixes àncores "#desde#fins" haurien d'estar presents a ambdós pàgines. Si no es troben les àncores indicades a la primera de les pàgines disponibles (bé Pagina1 o bé Pagina2), aleshores s'inclouran tots els continguts de la pàgina.
Açò no funciona correctament ara per ara (versió 2.2.33). Podeu trobar una solució a Cookbook:IncludeSection.
(:include Pagina1#desde1#fins1 Pagina2#desde2#fins2:)
Inclou els continguts de la primera pàgina disponible, bé sigui Pagina1 (entre [[#desde1]] i [[#fins1]] ) o bé sigui Pagina2 (entre [[#desde2]] i [[#fins2]] )
Nota: Les versions anteriors de PmWiki, sense voler, permetien espais en blanc entre les àncores #desde i #fins . Les versions més noves ja no ho permeten. Per a tornar a habilitar aquest comportament "no-desitjat" afegiu açò al fitxer config.php o farmconfig.php:
Markup('includeanchors', '<include', '/(\\(:include.*?#\\w+)\\s+(#\\w+)/', '$1$2');
Lines=(:include NomPagina lines=10:)
(:include NomPagina lines=5..10:)
(:include NomPagina lines=5..:)
Inclou les primeres 10 línies, les línies 5 a 10, o de la línia 5 en avant de NomPagina. Una "línia" es refereix en aquest context a una lína de codi. Per tant, una línia pot ser un paràgraf llarg (en la pantalla s'estén a més d'una línia), o una línia completament en blanc.
(:include Pagina1 Pagina2 Pagina3 lines=1..5:)
Inclou les primeres cinc línies de la primera pàgina disponible entre Pagina1, Pagina2, o Pagina3. Per a incloure text de diverses pàgines, feu servir un (:include:] independent per a cada pàgina.
Self=(:include NomPagina self=0:)
El paràmetre self pot prendre el valor 0 o 1 . Indica si la directiva té permís per incloure la pàgina actual. És útil quan NomPagina és una variable com ara bé {$Name} i voleu evitar que s'inclogui la pàgina actual.
Variables de text d'una pàgina{Grup/NomPagina$:Var}
Inclou valors d'una llista de definicions com a variables de text des d'una pàgina (opcional). Aquestes es defineixen mitjançant una llista de definicions ( :ítem:descripció ), amb un caràcter de dos punts com a delimitador (ítem:descripció ), o la marca especial ((:ítem:descripció:) ).
Basepage=(:include NomPagina basepage=NomPaginaBase:)
Inclou NomPagina, però tractant tots els enllaços relatius i les variables de NomPagina com a relatius a NomPaginaBase.
Per tant, si hom crea Nom: {$:Nom} Adreça: {$:Adreça} aleshores la directiva (:include PlantillaNom basepage=NomPaginaBase:)
recuperarà els continguts de Ús de basepageL'objectiu principal de basepage és permetre la inclusió de pàgines tal i com es feia en les versions 2.1.x, on les variables de pàgina i els enllaços s'interpretaven en relació a la pàgina mostrada. Això s'aconsegueix mitjançant: (:include AlgunaAltraPagina basepage='' :)
-o- (:include AlgunaAltraPagina basepage={*$FullName} :)
També permet que les pàgines GroupHeader i GroupFooter tractin les seues variables i enllaços de forma relativa a la pàgina que es mostra (enlloc de fer-ho en relació a GroupHeader i GroupFooter): ## PmWiki default $GroupHeaderFmt setting $GroupHeaderFmt = '(:include {$Group}.GroupHeader self=0 basepage={*$FullName}:)(:nl:)'; De no ser així, l'ús de la variable IncludeOtherPages dintre de GroupHeader mostraria 'GroupHeader' i no pas el nom de la pàgina mostrada. El paràmetre (:include PaginaPlantilla basepage=PaginaDades :)
I, com sempre, una única PaginaPlantilla pot contenir diverses plantilles delimitades per àncores, de manera que al final acabem amb una sintaxi misteriosament similar[1] a la de les plantilles per als llistats de pàgines: Així que PaginaPlantilla pot usar una sintaxi com: [[#abc]] ...ací van les coses de la plantilla... [[#abcend]] i és possible mostrar PaginaPlantilla com una plantilla sense que s'interpreti... el mateix que fem amb Site.PageListTemplates. [1]D'acord, no és tan misteriós, ja que el codi de la plantilla de llistat de pàgines usa la mateixa funció que (:include:) per obtenir-ne les plantilles. Però tot i això és una comparació útil.
Especificar les variables com a paràmetresPodeu especificar valors per a les variables directament a la sentència d'inclusió, i fer referència a les variables des de la plantilla usant el format (:include PaginaPlantilla variable1="valor" variable2="valor2":)
Amb això assumim que el lloc té habilitat $EnableRelativePageVars, recomanat des de PmWiki 2.2.0 -- però deshabilitat per defecte en les versions 2.2.8 i anteriors. Per exemple, a la pàgina inclosa ("plantilla") puc tenir:
Aleshores, incloent eixa secció de dalt (disponible via
Si el valor conté espais, tanqueu-lo entre cometes:
Vegeu també $EnableUndefinedTemplateVars. Vegeu també
Nota sobre l'ús d'estilsPer defecte, les pàgines o línies incloses no es poden distingir de qualsevol altre text de la pàgina. Per tal d'indicar visualment que aquest text és especial, podeu aplicar-hi Estils wiki. Per exemple:
Referències als paràmetresEs pot accedir a qualsevol paràmetre que se li passa a una sentència d'inclusió des de dintre de la pàgina inclosa com una variable especial Notes
Notes sobre l'ús amb ConditionalMarkup?La directiva (:if alguna condicio:)(:include AlgunaPagina#seccio:)(:ifend:)
Per contra, (:if alguna condicio:)[[#seccio]]...[[#seccioend]](:ifend:)
Quan s'avaluen variables? a les pàgines incloses, el context de la pàgina (font o objectiu) pot resultar útil. Vegeu referències especials? per a més detalls. Quin és el nombre màxim d'inclusions que poden haver a una pàgina? Per defecte, PmWiki estableix un límit de 50 inclusions de pàgina, per tal de prevenir l'aparició de bucles infinits o altres situacions que puguin acaparar els recursos del servidor. (Dos d'aquestes pàgines incloses són GroupHeader i GroupFooter.) Una administradora? pot modificar-lo mitjançant la variable $MaxIncludes. Hi ha alguna manera d'incloure continguts des d'un grup de pàgines sense especificar el nom exacte, p.ex. entre l'àncora X i Y des de totes les pàgines anomenades SiClasse-* ? Es pot fer mitjançant Llistats de pàgines. Sembla que hi ha un problema de visualització quan la pàgina inclosa conté la directiva (:title:). En la instal·lació per defecte, l'últim títol de la pàgina sobreescriu els anteriors, així que podeu col·locar la directiva (:title :) al final de la pàgina, després de totes les inclusions. Vegeu també $EnablePageTitlePriority.
Traducció de PmWiki.IncludeOtherPages -
Pàgina original a PmWikiCa.IncludeOtherPages -
Backlinks |