Includere altre pagine
autori (intermedio)
La direttiva (:include:)
permette di inserire il contenuto di altre pagine in quella corrente. Tutte le direttive riportate di seguito includono il codice delle pagine, tale e quale. In particolare, tutti i collegamenti nella pagina inclusa vengono riferiti al WikiGroup attuale, se non viene specificato altrimenti.
Sintassi di base
- (:include NomePagina:)
- {Gruppo/NomePagina$:PTVar}
(:if:)
. Perciò, se si include una sezione: (:include OtherPage#section:)
, questa [[#section]]
verrebbe inclusa anche se si trovasse dentro a un costrutto (:if:)...(:ifend:)
.
Quando si controllano variabili? nelle pagine incluse, il contesto, cioè se la pagina include o è inclusa, è importante. Si veda PageVariables per ulteriori dettagli.
Parametri
I parametri che non sono parole chiave, cioè nomi ed etichette, possono essere ripetuti.
Pagine
(:include NomePagina:)
(:include Group.NomePagina:)
(:include NomePagina GroupName.Nomepagina:)
Etichette
(:include PageName#from#to:) | include la parte di PageName compresa tra le etichette [[#from]] e [[#to]] |
(:include PageName#from#:) | include la pagina a partire da [[#from]] fino alla fine |
(:include PageName##to:) | include la pagina dall'inizio fino all'etichetta [[#to]] |
(:include PageName#from:) | include tutto ciò che si trova tra [[#from]] e l'etichetta successiva |
(:include PageName##:) | include la pagina dall'inizio fino alla prima etichetta |
(:include Page1 Page2 #from#to:)
[[#from]]
e [[#to]]
(:include Page1#from1#to1 Page2#from2#to2:)
[[#from1]]
e [[#to1]]
per Page1, o quella tra [[#from2]]
e [[#to2]]
per Page2.
#from
e #to
, benché pm? dicesse che questo non doveva succedere. Le versioni più recenti non permettono più di inserire spazi lì. Il comportamento precedente può essere richiesto aggiungendo nel file config.php o farmconfig.php:
Markup('includeanchors', '<include', '/(\\(:include.*?#\\w+)\\s+(#\\w+)/', '$1$2');
Lines=
(:include PageName lines=10:)
(:include PageName lines=5..10:)
(:include PageName lines=5..:)
(:include Page1 Page2 Page3 lines=1..5:)
Self=
(:include PageName self=0:)
self
può essere impostato a 0
oppure 1
. Indica se la direttiva può includere la pagina corrente. Questo parametro è utile se PageName è una variabile, ad es. {$Name}
, e si vuole evitare di includere la pagina corrente.
Variabili nel testo della pagina?
{Group/PageName$:Var}
:elemento:descrizione
), (elemento:descrizione
), oppure ((:elemento:descrizione:)
).
Basepage=
(:include PageName basepage=BasePageName:)
Se si specifica basepage=
, allora tutti i collegamenti relativi e le variabili di pagina vengono basati sul valore di basepage.
Quindi, se si creasse una pagina TemplateName
che contenga:
Nome: {$:Name} Indirizzo: {$:Address}
allora, la direttiva
(:include TemplateName basepage=PageName:)
mostrerebbe il contenuto di TemplateName
, trattando tutte le variabili di pagina e i collegamenti come relativi a PageName
.
In particolare, i valori di {$:Name}
e {$:Address}
sarebbero presi da PageName
. Questo vale anche per {$Title}
e {$LastModifiedBy}
.
Questo assume che sul sito sia abilitato $EnableRelativePageVars
, che sarà predefinito per PmWiki 2.2.0. Al momento $EnableRelativePageVars
è disabilitato per facilitare l'aggiornamento dalla versione 2.1.x.
Lo scopo primario è di permettere l'inclusione di pagine in un modo che assomigli alla versione 2.1.x, dove le variabili di pagina e i link sono relativi alla pagina visualizzata al momento. Questo si ottiene così:
(:include SomeOtherPage basepage='' :)
oppure
(:include SomeOtherPage basepage={*$FullName} :)
Questo permette anche a GroupHeader and GroupFooter di contenere variabili di pagina e collegamenti relativi alla pagina visualizzata, anziché a se stessi:
## Impostazione di default di$GroupHeaderFmt
$GroupHeaderFmt
= '(:include {$Group}.GroupHeader self=0 basepage={*$FullName}:)(:nl:)';
Altrimenti, l'uso di IncludeOtherPages all'interno di GroupHeader mostrerebbe 'GroupHeader' anziché il nome della pagina visualizzata.
Si è scoperto che il parametro basepage= è abbastanza generale per essere usato in un engine di template. È possibile creare una pagina che contenga variabili, il cui valore venga letto da un'altra pagina:
(:include PaginaTemplate basepage=PaginaConDati :)
Una singola PaginaTemplate può ovviamente contenere più template, separati da etichette. Così si ottiene una sintassi stranamente simile[1] alle pagelist-template:
(:include PaginaTemplate#abc basepage=PaginaDati :)
Quindi TemplatePage può avere una sintassi del tipo:
[[#abc]] ...inserire il template qui... [[#abcend]]
ed è possibile mostrare TemplatePage come un template, senza che essa venga interpretata... così come si fa per Site.PageListTemplates.
Vedere anche
- PageTextVariables Page variables automatically made available through natural or explicit page markup
- Cookbook:IncludeUrl
Nota di stile
Normalmente, le pagine e le righe incluse non possono essere distinte dal resto del testo di una pagina. Si possono usare Stili wiki per sottolineare visivamente che quel testo è "speciale". Per esempio:
%define=leftborder border-left="2px solid #88f" margin-left="2px" padding="1px 0 3px 10px"% Che cos'è PmWiki? >>leftborder<< (:include PmWiki.PmWiki lines=1..4:) >><< ''Buona giornata!'' |
Che cos'è PmWiki? PmWiki is a wiki-based content-management system (CMS) for collaborative creation and maintenance of websites.
PmWiki pages look and act like normal web pages, except they have an "Edit" link that makes it easy to modify existing pages and add new pages into the website, using basic editing rules. You do not need to know or use any HTML or CSS. Page editing can be left open to the public or restricted to small groups of authors. Buona giornata! |
Riferimento ai parametri
Tutti i parametri che vengono passati a una direttiva di inclusione sono accessibili alla pagina inclusa, sotto forma di variabile speciale {$$...}
con lo stesso nome. La pagina inclusa, quindi, può ricevere informazioni da quela che la include.
Note
- È possibile usare
(:include My/Page#myanchor lines=4:)
per iniziare dalla riga[[#myanchor]]
e riportare 4 righe.
<< Direttive per pagine | Indice documentazione | InterMap >>
Qual è il numero massimo di inclusioni che possono coesistere in una pagina? Sembra che il mio sito non vada oltre 48 inclusioni. ($MaxIncludes
)
Per default, PmWiki imposta un limite di 50 inclusioni per qualunque pagina. Questo serve a impedire cicli infiniti e altre situazioni che potrebbero intasare un server. Il limite può essere cambiato dal WikiAdministrator? attraverso la variabile $MaxIncludes
.
Traduzione di PmWiki.IncludeOtherPages -
Pagina originale: PmWikiIt.IncludeOtherPages -
Backlinks
Ultime modifiche:
PmWikiIt.IncludeOtherPages: 10-09-2011, 12:52 da tarde
PmWiki.IncludeOtherPages: 17-03-2022, 01:30 da manhã