Aktuelle Änderungen - Suchen:

PmWiki (deutsch) für die Liste aller Seiten


Englisch:

PmWiki

pmwiki.org

edit SideBar

https://dados.ufrn.br/sv/user/xanax874 https://dados.ufrn.br/sv/user/xanor358 https://dados.ufrn.br/sv/user/valium924 https://dados.ufrn.br/sv/user/stesolid354 https://dados.ufrn.br/sv/user/ativan844 https://dados.ufrn.br/sv/user/stilnoct978 https://dados.ufrn.br/sv/user/ambien352 https://dados.ufrn.br/sv/user/tramadol326 https://dados.ufrn.br/sv/user/ritalin838 https://dados.ufrn.br/sv/user/adderall235 https://dados.ufrn.br/sv/user/concerta663 https://dados.ufrn.br/sv/user/elvanse932 https://dados.ufrn.br/sv/user/sonata824 https://dados.ufrn.br/sv/user/lunesta729 https://dados.ufrn.br/sv/user/modafinil390 https://dados.ufrn.br/sv/user/karisoprodol132 https://dados.ufrn.br/sv/user/midazolam325 https://dados.ufrn.br/sv/user/triazolam340 https://dados.ufrn.br/sv/user/temazepam392 https://dados.ufrn.br/sv/user/etizolam353 https://dados.ufrn.br/es/user/xanax875 https://dados.ufrn.br/es/user/trankimazin942 https://dados.ufrn.br/es/user/valium844 https://dados.ufrn.br/es/user/ativan323 https://dados.ufrn.br/es/user/orfidal388 https://dados.ufrn.br/es/user/stilnox748 https://dados.ufrn.br/es/user/ambien923 https://dados.ufrn.br/es/user/imovane530 https://dados.ufrn.br/es/user/tramadol284 https://dados.ufrn.br/es/user/adipex947 https://dados.ufrn.br/es/user/rivotril902 https://dados.ufrn.br/es/user/lexatin923 https://dados.ufrn.br/es/user/lexotan913 https://dados.ufrn.br/es/user/lyrica348 https://dados.ufrn.br/es/user/tapentadol240 https://dados.ufrn.br/es/user/ritalin737 https://dados.ufrn.br/es/user/adderall320 https://dados.ufrn.br/es/user/cytotec823 https://dados.ufrn.br/es/user/concerta552 https://dados.ufrn.br/es/user/rubifen325 https://dados.ufrn.br/es/user/elvanse934 https://dados.ufrn.br/es/user/sonata663 https://dados.ufrn.br/es/user/lunesta728 https://dados.ufrn.br/es/user/modafinilo492 https://dados.ufrn.br/es/user/carisoprodol249 https://dados.ufrn.br/es/user/midazolam349 https://dados.ufrn.br/es/user/triazolam934 https://dados.ufrn.br/es/user/temazepam234 https://dados.ufrn.br/es/user/etizolam428 https://dados.ufrn.br/it/user/xanax578 https://dados.ufrn.br/it/user/valium342 https://dados.ufrn.br/it/user/ativan991 https://dados.ufrn.br/it/user/tavor922 https://dados.ufrn.br/it/user/stilnox882 https://dados.ufrn.br/it/user/ambien576 https://dados.ufrn.br/it/user/imovane663 https://dados.ufrn.br/it/user/tramadolo249 https://dados.ufrn.br/it/user/adipex924 https://dados.ufrn.br/it/user/rivotril539 https://dados.ufrn.br/it/user/lexotan924 https://dados.ufrn.br/it/user/lyrica667 https://dados.ufrn.br/it/user/tapentadolo935 https://dados.ufrn.br/it/user/ritalin367 https://dados.ufrn.br/it/user/adderall848 https://dados.ufrn.br/it/user/cytotec892 https://dados.ufrn.br/it/user/concerta349 https://dados.ufrn.br/it/user/elvanse874 https://dados.ufrn.br/it/user/sonata842 https://dados.ufrn.br/it/user/lunesta922 https://dados.ufrn.br/it/user/modafinil220 https://dados.ufrn.br/it/user/carisoprodolo290 https://dados.ufrn.br/it/user/midazolam488 https://dados.ufrn.br/it/user/triazolam377 https://dados.ufrn.br/it/user/temazepam233 https://dados.ufrn.br/it/user/etizolam582 https://dados.ufrn.br/nl/user/xanax773 https://dados.ufrn.br/nl/user/valium928 https://dados.ufrn.br/nl/user/ativan327 https://dados.ufrn.br/nl/user/temesta684 https://dados.ufrn.br/nl/user/stilnoct934 https://dados.ufrn.br/nl/user/ambien750 https://dados.ufrn.br/nl/user/imovane569 https://dados.ufrn.br/nl/user/tramadol531 https://dados.ufrn.br/nl/user/tapentadol663 https://dados.ufrn.br/nl/user/rivotril437 https://dados.ufrn.br/nl/user/lexotanil495 https://dados.ufrn.br/nl/user/lyrica982 https://dados.ufrn.br/nl/user/adipex920 https://dados.ufrn.br/nl/user/cytotec847 https://dados.ufrn.br/nl/user/ritalin748 https://dados.ufrn.br/nl/user/adderall774 https://dados.ufrn.br/nl/user/concerta551 https://dados.ufrn.br/nl/user/elvanse982 https://dados.ufrn.br/nl/user/sonata628 https://dados.ufrn.br/nl/user/lunesta620 https://dados.ufrn.br/nl/user/modafinil538 https://dados.ufrn.br/nl/user/carisoprodol889 https://dados.ufrn.br/nl/user/midazolam235 https://dados.ufrn.br/nl/user/triazolam824 https://dados.ufrn.br/nl/user/temazepam302 https://dados.ufrn.br/nl/user/etizolam537 https://dados.ufrn.br/de/user/xanax573 https://dados.ufrn.br/de/user/valium139 https://dados.ufrn.br/de/user/ativan348 https://dados.ufrn.br/de/user/tavor563 https://dados.ufrn.br/de/user/stilnox890 https://dados.ufrn.br/de/user/ambien875 https://dados.ufrn.br/de/user/imovane738 https://dados.ufrn.br/de/user/tramadol982 https://dados.ufrn.br/de/user/tapentadol955 https://dados.ufrn.br/de/user/rivotril499 https://dados.ufrn.br/de/user/lexotanil942 https://dados.ufrn.br/de/user/lyrica981 https://dados.ufrn.br/de/user/adipex987 https://dados.ufrn.br/de/user/cytotec944 https://dados.ufrn.br/de/user/ritalin895 https://dados.ufrn.br/de/user/adderall903 https://dados.ufrn.br/de/user/xanax357 https://dados.ufrn.br/de/user/alprazolam130 https://dados.ufrn.br/de/user/valium847 https://dados.ufrn.br/de/user/diazepam299 https://dados.ufrn.br/de/user/ativan771 https://dados.ufrn.br/de/user/tavor135 https://dados.ufrn.br/de/user/lorazepam583 https://dados.ufrn.br/de/user/ambien532 https://dados.ufrn.br/de/user/stilnox350 https://dados.ufrn.br/de/user/zolpidem577 https://dados.ufrn.br/de/user/imovane883 https://dados.ufrn.br/de/user/zopiclon964 https://dados.ufrn.br/de/user/tramadol638 https://dados.ufrn.br/de/user/tapentadol236 https://dados.ufrn.br/de/user/rivotril368 https://dados.ufrn.br/de/user/clonazepam647 https://dados.ufrn.br/de/user/lexotanil445 https://dados.ufrn.br/de/user/bromazepam730 https://dados.ufrn.br/de/user/lyrica331 https://dados.ufrn.br/de/user/pregabalin682 https://dados.ufrn.br/de/user/adipex489 https://dados.ufrn.br/de/user/phentermin537 https://dados.ufrn.br/de/user/cytotec228 https://dados.ufrn.br/de/user/misoprostol355 https://dados.ufrn.br/de/user/ritalin325 https://dados.ufrn.br/de/user/concerta554 https://dados.ufrn.br/de/user/medikinet364 https://dados.ufrn.br/de/user/adderall605 https://dados.ufrn.br/de/user/elvanse356 https://dados.ufrn.br/de/user/modafinil479 https://dados.ufrn.br/fi/user/xanax588 https://dados.ufrn.br/fi/user/valium840 https://dados.ufrn.br/fi/user/ativan942 https://dados.ufrn.br/fi/user/temesta789 https://dados.ufrn.br/fi/user/rativor663 https://dados.ufrn.br/fi/user/stilnoct920 https://dados.ufrn.br/fi/user/ambien982 https://dados.ufrn.br/fi/user/imovane953 https://dados.ufrn.br/fi/user/tramadoli358 https://dados.ufrn.br/fi/user/tapentadoli532 https://dados.ufrn.br/fi/user/rivotril935 https://dados.ufrn.br/fi/user/rivatril942 https://dados.ufrn.br/fi/user/lexotanil955 https://dados.ufrn.br/fi/user/lyrica093 https://dados.ufrn.br/fi/user/adipex984 https://dados.ufrn.br/fi/user/cytotec354 https://dados.ufrn.br/fi/user/ritalin882 https://dados.ufrn.br/fi/user/adderall490 https://dados.ufrn.br/fi/user/concerta562 https://dados.ufrn.br/fi/user/elvanse856 https://dados.ufrn.br/fi/user/sonata782 https://dados.ufrn.br/fi/user/lunesta682 https://dados.ufrn.br/fi/user/modafiniili253 https://dados.ufrn.br/fi/user/karisoprodoli538 https://dados.ufrn.br/fi/user/midatsolaami835 https://dados.ufrn.br/fi/user/triatsolaami783 https://dados.ufrn.br/fi/user/tematsepaami856 https://dados.ufrn.br/fi/user/etitsolaami753 https://dados.ufrn.br/da_DK/user/xanax775 https://dados.ufrn.br/da_DK/user/valium858 https://dados.ufrn.br/da_DK/user/stesolid151 https://dados.ufrn.br/da_DK/user/ativan779 https://dados.ufrn.br/da_DK/user/stilnoct894 https://dados.ufrn.br/da_DK/user/ambien799 https://dados.ufrn.br/da_DK/user/imovane562 https://dados.ufrn.br/da_DK/user/tramadol559 https://dados.ufrn.br/da_DK/user/tapentadol537 https://dados.ufrn.br/da_DK/user/rivotril953 https://dados.ufrn.br/da_DK/user/lexotanil535 https://dados.ufrn.br/da_DK/user/bromam994 https://dados.ufrn.br/da_DK/user/lyrica944 https://dados.ufrn.br/da_DK/user/adipex995 https://dados.ufrn.br/da_DK/user/cytotec437 https://dados.ufrn.br/da_DK/user/ritalin746 https://dados.ufrn.br/da_DK/user/adderall538 https://dados.ufrn.br/da_DK/user/concerta527 https://dados.ufrn.br/da_DK/user/elvanse549 https://dados.ufrn.br/da_DK/user/sonata783 https://dados.ufrn.br/da_DK/user/lunesta268 https://dados.ufrn.br/da_DK/user/modafinil946 https://dados.ufrn.br/da_DK/user/carisoprodol122 https://dados.ufrn.br/da_DK/user/midazolam340 https://dados.ufrn.br/da_DK/user/triazolam942 https://dados.ufrn.br/da_DK/user/temazepam734 https://dados.ufrn.br/da_DK/user/etizolam520 https://dados.ufrn.br/pl/user/xanax548 https://dados.ufrn.br/pl/user/valium347 https://dados.ufrn.br/pl/user/ativan664 https://dados.ufrn.br/pl/user/tavor674 https://dados.ufrn.br/pl/user/stilnox883 https://dados.ufrn.br/pl/user/ambine732 https://dados.ufrn.br/pl/user/imovane240 https://dados.ufrn.br/pl/user/zimovane523 https://dados.ufrn.br/pl/user/tramadol984 https://dados.ufrn.br/pl/user/tapentadol249 https://dados.ufrn.br/pl/user/rivotril428 https://dados.ufrn.br/pl/user/lexotanil981 https://dados.ufrn.br/pl/user/lexotan426 https://dados.ufrn.br/pl/user/bromox924 https://dados.ufrn.br/pl/user/lyrica922 https://dados.ufrn.br/pl/user/adipex902 https://dados.ufrn.br/pl/user/cytotec872 https://dados.ufrn.br/pl/user/ritalin247 https://dados.ufrn.br/pl/user/adderall359 https://dados.ufrn.br/pl/user/concerta924 https://dados.ufrn.br/pl/user/elvanse952 https://dados.ufrn.br/pl/user/sonata539 https://dados.ufrn.br/pl/user/lunesta552 https://dados.ufrn.br/pl/user/modafinil357 https://dados.ufrn.br/pl/user/karizoprodol235 https://dados.ufrn.br/pl/user/midazolam110 https://dados.ufrn.br/pl/user/triazolam284 https://dados.ufrn.br/pl/user/temazepam357 https://dados.ufrn.br/pl/user/etizolam377 https://dados.ufrn.br/cs_CZ/user/xanax377 https://dados.ufrn.br/cs_CZ/user/valium859 https://dados.ufrn.br/cs_CZ/user/ativan462 https://dados.ufrn.br/cs_CZ/user/stilnox824 https://dados.ufrn.br/cs_CZ/user/stilnoct843 https://dados.ufrn.br/cs_CZ/user/ambien134 https://dados.ufrn.br/cs_CZ/user/imovane504 https://dados.ufrn.br/cs_CZ/user/tramadol359 https://dados.ufrn.br/cs_CZ/user/tapentadol935 https://dados.ufrn.br/cs_CZ/user/rivotril834 https://dados.ufrn.br/cs_CZ/user/lexotanil358 https://dados.ufrn.br/cs_CZ/user/lyrica943 https://dados.ufrn.br/cs_CZ/user/adipex955 https://dados.ufrn.br/cs_CZ/user/cytotec940 https://dados.ufrn.br/cs_CZ/user/ritalin788 https://dados.ufrn.br/cs_CZ/user/adderall326 https://dados.ufrn.br/cs_CZ/user/concerta873 https://dados.ufrn.br/cs_CZ/user/elvanse523 https://dados.ufrn.br/cs_CZ/user/sonata642 https://dados.ufrn.br/cs_CZ/user/lunesta593 https://dados.ufrn.br/cs_CZ/user/modafinil359 https://dados.ufrn.br/cs_CZ/user/carisoprodol158 https://dados.ufrn.br/cs_CZ/user/midazolam105 https://dados.ufrn.br/cs_CZ/user/triazolam924 https://dados.ufrn.br/cs_CZ/user/temazepam942 https://dados.ufrn.br/cs_CZ/user/etizolam829 https://dados.ufrn.br/pt_BR/user/xanax358 https://dados.ufrn.br/pt_BR/user/valium548 https://dados.ufrn.br/pt_BR/user/ativan842 https://dados.ufrn.br/pt_BR/user/lorenin358 https://dados.ufrn.br/pt_BR/user/ambien359 https://dados.ufrn.br/pt_BR/user/stilnox627 https://dados.ufrn.br/pt_BR/user/cymerion325 https://dados.ufrn.br/pt_BR/user/imovane552 https://dados.ufrn.br/pt_BR/user/tramadol239 https://dados.ufrn.br/pt_BR/user/tapentadol358 https://dados.ufrn.br/pt_BR/user/rivotril478 https://dados.ufrn.br/pt_BR/user/lexotan823 https://dados.ufrn.br/pt_BR/user/bromalex932 https://dados.ufrn.br/pt_BR/user/lyrica920 https://dados.ufrn.br/pt_BR/user/adipex929 https://dados.ufrn.br/pt_BR/user/cytotec828 https://dados.ufrn.br/pt_BR/user/ritalin881 https://dados.ufrn.br/pt_BR/user/adderall298 https://dados.ufrn.br/fr/user/alprazolam753 https://dados.ufrn.br/fr/user/diazepam744 https://dados.ufrn.br/fr/user/lorazepam239 https://dados.ufrn.br/fr/user/zolpidem482 https://dados.ufrn.br/fr/user/tramadol389 https://dados.ufrn.br/fr/user/bromazepam845 https://dados.ufrn.br/de/user/alprazolam667 https://dados.ufrn.br/de/user/diazepam993 https://dados.ufrn.br/de/user/lorazepam538 https://dados.ufrn.br/de/user/zolpidem313 https://dados.ufrn.br/de/user/tramadol235 https://dados.ufrn.br/de/user/bromazepam359 https://dados.ufrn.br/es/user/alprazolam539 https://dados.ufrn.br/es/user/diazepam352 https://dados.ufrn.br/es/user/lorazepam464 https://dados.ufrn.br/es/user/tramadol694 https://dados.ufrn.br/es/user/bromazepam834 https://dados.ufrn.br/it/user/alprazolam745 https://dados.ufrn.br/it/user/diazepam538 https://dados.ufrn.br/it/user/lorazepam350 https://dados.ufrn.br/it/user/zolpidem883 https://dados.ufrn.br/it/user/tramadolo771 https://dados.ufrn.br/it/user/bromazepam839 https://dados.ufrn.br/nl/user/alprazolam388 https://dados.ufrn.br/nl/user/diazepam667 https://dados.ufrn.br/nl/user/lorazepam358 https://dados.ufrn.br/nl/user/zolpidem119 https://dados.ufrn.br/nl/user/tramadol992 https://dados.ufrn.br/nl/user/bromazepam450 https://dados.ufrn.br/fi/user/alpratsolaami352 https://dados.ufrn.br/fi/user/diatsepaami889 https://dados.ufrn.br/fi/user/lorasepaami774 https://dados.ufrn.br/fi/user/tsolpideemi880 https://dados.ufrn.br/fi/user/tramadoli257 https://dados.ufrn.br/fi/user/bromatsepaami350 https://dados.ufrn.br/da_DK/user/alprazolam557 https://dados.ufrn.br/da_DK/user/diazepam429 https://dados.ufrn.br/da_DK/user/lorazepam248 https://dados.ufrn.br/da_DK/user/zolpidem250 https://dados.ufrn.br/da_DK/user/tramadol536 https://dados.ufrn.br/da_DK/user/bromazepam753 https://dados.ufrn.br/pt_BR/user/alprazolam724 https://dados.ufrn.br/pt_BR/user/diazepam428 https://dados.ufrn.br/pt_BR/user/lorazepam537 https://dados.ufrn.br/pt_BR/user/zolpidem166 https://dados.ufrn.br/pt_BR/user/tramadol592 https://dados.ufrn.br/pt_BR/user/bromazepam953 https://dados.ufrn.br/pl/user/alprazolam935 https://dados.ufrn.br/pl/user/diazepam530 https://dados.ufrn.br/pl/user/lorazepam359 https://dados.ufrn.br/pl/user/zolpidem554 https://dados.ufrn.br/pl/user/tramadol588 https://dados.ufrn.br/pl/user/bromazepam247 https://dados.ufrn.br/cs_CZ/user/alprazolam357 https://dados.ufrn.br/cs_CZ/user/diazepam635 https://dados.ufrn.br/cs_CZ/user/lorazepam188 https://dados.ufrn.br/cs_CZ/user/zolpidem350 https://dados.ufrn.br/cs_CZ/user/tramadol135 https://dados.ufrn.br/cs_CZ/user/bromazepam349 https://dados.ufrn.br/sv/user/oxycontin935 https://dados.ufrn.br/sv/user/oxynorm892 https://dados.ufrn.br/sv/user/piracetam420 https://dados.ufrn.br/sv/user/hydrokodon135 https://dados.ufrn.br/fr/user/oxycontin315 https://dados.ufrn.br/fr/user/oxynorm924 https://dados.ufrn.br/fr/user/piracetam913 https://dados.ufrn.br/fr/user/hydrocodone246 https://dados.ufrn.br/de/user/oxycontin913 https://dados.ufrn.br/de/user/oxygesic248 https://dados.ufrn.br/de/user/piracetam035 https://dados.ufrn.br/de/user/hydrocodon136 https://dados.ufrn.br/it/user/oxycontin591 https://dados.ufrn.br/it/user/oxynorm913 https://dados.ufrn.br/it/user/piracetam952 https://dados.ufrn.br/it/user/idrocodone335 https://dados.ufrn.br/es/user/oxycontin981 https://dados.ufrn.br/es/user/oxynorm518 https://dados.ufrn.br/es/user/piracetam843 https://dados.ufrn.br/es/user/hidrocodona527 https://dados.ufrn.br/nl/user/oxycontin357 https://dados.ufrn.br/nl/user/oxynorm752 https://dados.ufrn.br/nl/user/oxycodon428 https://dados.ufrn.br/nl/user/piracetam951 https://dados.ufrn.br/nl/user/hydrocodon362

Skinvorlagen

für die Liste aller Seiten

Administratoren (FTP)

Diese Seite beschreibt die Skinvorlagendateien (.tmpl), die benutzt werden, um PmWikis Skins (Oberflächen) zu erstellen und wie PmWiki sie benutzt. Wie in der Skins-Seite beschrieben, ist ein Skin eine Sammlung von Dateien, die das Layout von PmWiki-Seiten beschreiben. Jedes Skin muss eine Vorlagendatei enthalten, die das Skelett für die Anzeige einer PmWiki-Seite liefert. (→ Layout anpassen)

Vorlagen finden und behandeln

Wenn Sie den Wert von $Skin in einer Konfigurationsdatei wie local/config.php wie hier setzen,

## Benutze das 'Foo'-Skin.
$Skin = 'foo';

dann weisen Sie PmWiki an, nach einem Skin mit diesem Namen zu suchen und es zu benutzen. Das Ergebnis der Suche mündet gewöhnlich darin, dass PmWiki eine Vorlagendatei aus dem zugehörigen Skin-Verzeichnis dieses Namens lädt. In diesem Beispiel würde es wahrscheinlich die Datei pub/skins/foo/foo.tmpl sein.

Der wirkliche Weg, den PmWiki beschreitet, wenn es eine Vorlage sucht, ist wichtig für jene, die ein komplexes Skin entwickeln, deshalb beschreiben wir hier, welche Schritte das sind:

Anmerkung zur Sicherheit

Der Standardwert für $SkinLibDirs lässt server-seitig und client-seitig Dateien in dem gleichen öffentlich zugänglichen Verzeichnis speichern. Das heißt, $SkinDir und $SkinDirUrl weisen auf das gleiche Verzeichnis. Das ist für die Bequemlichkeit sowohl der Entwickler der Skins als auch die der Nutzer der Skins so gemacht, aber das muss nicht so sein.

Es hat den Seiteneffekt, dass es möglich ist, einen URL zu konstruieren (wie diesen hier), der Ihnen gestattet, den Inhalt der .tmpl- oder der .php-Dateien anzusehen, die ein Skin benutzt. Das ist gewöhnlich kein Problem, da Skin-Dateien eigentlich keine sensitiven Daten enthalten.

Doch ein Purist möchte vielleicht seine .tmpl- und seine .php-Dateien aus den Verzeichnissen verschieben, die als URL erreichbar sind, und ändert sein $SkinLibDirs-Array, um das zu berücksichtigen.

  1. Wenn $PageTemplateFmt leer ist (was es sein sollte), sammelt PmWiki die Namen aller Kandidaten für den Skin. Es startet mit den aktions-spezifischen Skins, die in $ActionSkin[$action] festgelegt sind. Dadurch wird PmWiki nach einem Skin namens 'Bar' sehen, wenn die aktuelle Aktion 'login' ist und $ActionSkin['login'] = 'Bar' ist.
  2. Wenn bis dahin noch kein Skin gefunden wurde, sucht es nach dem/den Skin(s), die in der $Skins-Variablen genannt sind ($Skins darf ein Array sein). Wenn das Ende der Liste erreicht ist, ohne dass ein Skin gefunden wird, meldet es einen Fehler.
  3. Beim Versuch, ein Skin zu finden, konsultiert PmWiki zuerst die $SkinLibDirs-Variable, wo es suchen muss. Skins bestehen aus server-seitigen Dateien (wie .php- und .tmpl-Dateien), die von PmWiki geladen werden und client-seitigen Dateien (wie .css-Dateien und Bildern), die vom Browser der Benutzer angefragt werden, wenn sie eine enthäutete PmWiki-Seite ansehen.
 $SkinLibDirs ist ein Array aus Schlüssel/Wert-Paaren. Der Schlüssel ist ein Verzeichnis, in dem nach server-seitigen Dateien gesehen wird, der zugehörige Wert ist ein URL, der auf die öffentlichen, client-seitigen Recourcen weist, die vom Skin benutzt werden. Der Standardwert von $SkinLibDirs ist:

 ->
$SkinLibDirs = array(
   "./pub/skins/\$Skin"      => "$PubDirUrl/skins/\$Skin",
   "$FarmD/pub/skins/\$Skin" => "$FarmPubDirUrl/skins/\$Skin");
PmWiki würde mit der obigen Definition also das Skin 'foo' zu finden versuchen, indem es nach einem Verzeichnis mit dem Namen ./pub/skins/foo und dann nach $FarmD/pub/skins/foo sieht (wobei der Server $FarmD durch das Root-Server-Verzeichnis für die Farm-Dateien ersetzt). Von dem ersten dieser Verzeichnisse, das gefunden wird, wird angenommen, dass es das gesuchte Skin enthält. Dann wird $SkinDir auf den Namen des Verzeichnisses gesetzt und $SkinDirUrl auf den zugehörigen URL.
  1. Wenn erst einmal ein gültiges Skin-Verzeichnis gefunden wurde, beginnt PmWiki die Dateien in diesem Verzeichnis abzuarbeiten, indem es nach einer .php-Skin-Datei sucht, die es ausführen kann. Zuerst sucht es nach einer mit dem gleichen Namen wie das Skin. Bei dem Skin 'foo' sucht es also nach foo.php. Wenn es eine solche Datei nicht findet, prüft es die Datei skin.php. Ist eine dieser beiden Dateien gefunden, lädt PmWiki sie und führt sie aus. Das erlaubt einem Skin, eigene Markups oder eigene Konfigurationsparameter zu definieren. Es erlaubt dem Skin auch, zwischen verschiedenen .tmpl-Dateien eine zum Laden auszusuchen.
    Um festzulegen, welche .tmpl-Datei geladen werden soll, ruft man schlicht LoadPageTemplate() innerhalb der skin.php-Datei mit dem Namen der .tmpl-Datei auf, die man laden will.
    LoadPageTemplate($pagename, "$SkinDir/xyz.tmpl");
    Ein Skin möchte zum Beispiel eine spezielle Vorlage benutzt sehen, wenn die Aktion 'print' ausgeführt wird:
    if ($GLOBALS['action'] == 'print')
      LoadPageTemplate($pagename, "$SkinDir/print.tmpl");
    
    Wenn es irgend eine der anderen Aktionen ist, fällt PmWiki auf das Laden der Standard-.tmpl-Datei zurück.
  2. Wenn keine passende .php-Datei gefunden wurde, oder wenn diese Datei keine Vorlage lädt, dann fällt PmWiki zurück auf die Suche nach einer Vorlage mit dem selben Namen wie das Skin oder, wenn das scheitert, irgend eine .tmpl-Datei, so lange es die einzige in dem Verzeichnis ist. Wenn es eine findet, wird diese geladen und ausgeführt. Wenn nicht, wird ein Fehler gemeldet.

Vorlagendateiformat

Eine Vorlagendatei ist im Grunde genommen eine HTML-Datei, die auch Variablenersetzungen enthält (erkennbar am '$') und spezielle Direktiven, eingebettet in HTML-Kommentare. Die folgenden Direktiven sind notwendig in der Vorlagendatei:

  1. Die Direktive <!--PageText--> gehört zum <body>-Abschnitt des HTML-Dokuments und weist PmWiki an, wohin der Hauptinhalt der Wikiseiten gehört.
  2. Die Direktive <!--HTMLHeader-->, die in den <head>-Abschnitt des HTML-Dokuments gehört.
  3. Die Direktive <!--HTMLFooter-->, die typischerweise kurz vor dem schließenden </body-Tag steht und von einigen Rezepten benutzt wird, um Dinge am Ende des HTML-Dokuments einzufügen. Vor PmWiki 2.2.0 war die <!--HTMLFooter-->-Direktive optional.

Wenn PmWiki eine Seite anzeigt, ersetzt es die Direktiven und Variablenersetzungen mit den zu dieser aktuellen Seite gehörenden Werten. Zum Beispiel wird die <"--PageText-->-Direktive durch den Seiteninhalt ersetzt, während alle Vorkommen von $PageUrl durch den URL (die Adresse) der aktuellen Seite ersetzt werden.

Anmerkung: Ihre Skinvorlage sollte kein <meta />-Tag enthalten, das den Zeichensatz (encoding) festlegt, da PmWiki dieses Tag hinzufügt, wenn es nötig ist.

Es gibt eine lange Liste von Variablen, die für die Ersetzungen in Seiten zur Verfügung stehen, zu den gebräuchlichsten gehören:

$PageUrl         der URL der aktuellen Seite
$ScriptUrl       der Basis-Url zum PHP-Skript
$Title           der Seitentitel (z. B. "SkinTemplates")
$Titlespaced     der Seitentitel mit Leerzeichen (e.g., "Skin Templates")
$Group           der Name der aktuellen Gruppe (e.g., "PmWiki")
$FullName        der volle Name der Seite (e.g., "PmWiki.SkinTemplates")
$LastModified    die letzte Änderungszeit der Seite
$PageLogoUrl     der URL des Logo der Site
$WikiTitle       der Titel der Site
$SkinDirUrl      der URL des Skin-Verzeichnisses

Diese letzte Variable, $SkinDirUrl, ist in Vorlagen besonders nützlich, da sie den Skindesignern erlaubt, auf andere Dateien (wie Bilder oder Stylesheets) im Skinverzeichnis zu verweisen, ohne den genauen URL zu kennen.

Die Vorlage ist nicht auf die Variablen beschränkt, die hier aufgelistet sind, nahezu jede globale PHP-Variable, die mit einem Großbuchstaben beginnt, kann in einer Skin-Vorlage eingesetzt werden. Auch Seitenspezifische Variablen können in einer Vorlage benutzt werden.

Skin-Direktiven

Neben den notwendigen <!--PageText-->- und <!--HTMLHeader-->-Direktiven stellt PmWiki andere eingebaute Direktiven zum Erzeugen der Ausgabe zur Verfügung. Es ist nicht notwendig, auch nur eine davon einzusetzen, aber sie können oft die Möglichkeiten der Skins erweitern.

<!--wiki:Main.EineSeite-->
<!--page:Main.EineSeite-->
Die <!--wiki:Main.EineSeite-->-Direktive gibt den Inhalt der Seite Main.EineSeite aus. $-Ersetzungen sind in Direktiven erlaubt, also wird eine Direktive wie <!--wiki:$Gruppe.EineSeite--> "EineSeite" aus der aktuellen Gruppe einfügen.
Wenn mehrere Seiten in der Direktive aufgelistet sind, wird diejenige benutzt, die zuerst gefunden wird. Also wird <!--wiki:$Gruppe.EineSeite Site.EineSeite--> EineSeite aus der aktuellen Gruppe ausgeben, wenn die Seite existiert, andernfalls Site.EineSeite. Wenn Site.EineSeite immer ausgegeben werden soll, sogar, wenn $Gruppe.EineSeite existiert, muss man zwei aufeinanderfolgende <!--wiki:...-->-Direktive, für jede Seite eine, einsetzen.
Die <!--wiki:...-->-Direktive zeigt nur Seiten an, für die der Browser Leserechte hat, die <!--page:...-->-Direktive zeigt die Seite auch dann an, wenn der Browser kein Leserecht für diese Seite hat.
<!--file:einedatei.txt-->
Die <!--file:einedatei.txt-->-Direktive gibt den Inhalt einer anderen Datei aus (aus dem lokalen Dateisystem des Servers) an der Stelle, an der die Direktive steht. Wenn die einzufügende Datei ein .php-Skript ist, wird das PHP-Skript ausgeführt und seine Ausgabe an den Browser geschickt.
Wie in der <!--wiki:...-->-Direktive oben machen es $-Ersetzungen möglich, Dateien auf der Basis der aktuellen Gruppe oder des Namens der aktuellen Datei auszugeben.
<!--markup:...-->
Die Markup-Direktive bearbeitet jeden Text, der auf den Doppelpunkt folgt, als Wikiquelltext und zeigt das Ergebnis der Bearbeitung an.
<!--function:EineFunktion args-->
Diese Direktive ruft eine PHP-Funktion namens "EineFunktion" auf und übergibt den Namen der aktuellen Seite als erstes Argument und den optionalen Text hinter dem Funktionsnamen als zweites Argument. PHP-Funktionen, die auf diese Weise aufgerufen werden, sind typischerweise in einer lokalen Anpassungsdatei definiert. Args erlaubt nur ein Argument, das dann in Ihrer Funktion zerlegt werden muss. <!--function:EineFunktion arg1 arg2 arg3--> ruft EineFunktion($pagename, "arg1 arg2 arg3") auf, wenn die Vorlage abgearbeitet wird. Indes können dabei auch Variablen (wie $LastModifiedBy) eingesetzt werden.
<!--IncludeTemplate: header.tmpl-->
<!--IncludeTemplate: {$Group}.tmpl default.tmpl-->
Diese Direktive erlaubt das Einschließen einer weiteren Vorlagendatei. Die Argumente sind Dateinamen im Verzeichnis 'skins', die erste gefundene Datei wird dann in die Hauptvorlage eingefügt. Dieses Feature gibt es seit der Version 2.2.114, es ist aber per Voreinstellung deaktiviert; es muss in Ihrer Skinvorlagedatei pub/skins/mein-skin/mein-skin.php durch die Zeile SDV($GLOBALS['SkinTemplateIncludeLevel'], 1); aktiviert werden, wobei 1 die Anzahl der erlaubten Level ist, d. h. wenn eine eingeschlossene Vorlage ebenfalls eine IncludeTemplate-Direktive enthält, setzen Sie diese Zahl auf 2, bis zu einem Maximum von 10.

Seitenabschnitte

Eine Vorlagendatei kann "Abschnitte" enthalten, die in die Ausgabe eingeschlossen oder von ihr ausgeschlossen werden auf der Basis von Seitendirektiven oder anderen Kriterien. Ein Abschnitt beginnt immer mit <!--Page...Fmt--> und geht bis zum nächsten Abschnitt, dem Ende der Vorlagendatei oder <!--/Page...Fmt-->. Eine Vorlage kann zum Beispiel einen <!--PageLeftFmt-->-Abschnitt angeben, der immer dann von der Ausgabe ausgeschlossen wird, wenn die (:noleft:)-Direktive in dem Seiteninhalt auftaucht. PmWikis vordefinierte Abschnitte (und ihre zugehörigen Seitendirektiven) sind:

<!--PageHeaderFmt-->          (:noheader:)
<!--PageFooterFmt-->          (:nofooter:)
<!--PageTitleFmt-->           (:notitle:)
<!--PageLeftFmt-->            (:noleft:)
<!--PageRightFmt-->           (:noright:)
<!--PageActionFmt-->          (:noaction:)

Skindesigner können eigene Abschnitte und Markups definieren, aber zur Zeit müssen alle Abschnittnamen mit 'Page' beginnen und auf 'Fmt' enden. Wie erwähnt müssen Sie dazu auch ein entsprechendes Markup (zum Beispiel in der config.php) definieren:

Markup('noxyz', 'directives',  '/\\(:noxyz:\\)/ei',
    "SetTmplDisplay('PageXYZFmt',0)");

Und, besser, kompatibel mit PHP Version 5.5, für PmWiki 2.2.58+ :

Markup('noxyz', 'directives',  '/\\(:noxyz:\\)/i',
  "HideXYZ");
function HideXYZ() {
  SetTmplDisplay('PageXYZFmt',0);
}

Hinweis: Das Rezept Skins:TestPageDirectives kann Ihnen helfen, Ihre Skins mit einer Kombination der obigen Direktiven zu testen.

Internationalisierung (i18n)

Skins können Sie auch internationalisieren, indem Sie $[...]-Ersetzungen benutzen. Jeder String, der innerhalb von $[...] geschrieben wird, wird als übersetzbare Wendung behandelt. Die Wendung wird in der aktuellen Übersetzungstabelle nachgesehen und ggf. durch den passenden Ausgabetext ersetzt. Gibt es keine Übersetzung, wird die Originalwendung unverändert übernommen.

Beispielsweise wird die Ersetzung $[Edit] durch die vorhandene Übersetzung von "Edit" ersetzt, wenn eine bekannt ist, sonst wird "Edit" ausgegeben. So kann die gleiche Vorlage für verschiedene Sprachen benutzt werden, weil z. B. an der Stelle "Editer" angezeigt wird, wenn eine französische Übersetzungstabelle vorliegt, "Bearbeiten" bei einer deutschen und "Edit", wenn es keine Übersetzung gibt.

FAQ

Wie passe ich die CSS-Stile für mein PmWiki-Layout an.

Sehen Sie unter Skins nach, wie Sie das Standardwikiskin verändern können. Siehe auch unter Skins, wo weitere vorgefertigte Skins zu finden sind, die man benutzen kann, um das Aussehen der eigenen Site seinem eigenen Geschmack anzupassen. Sie können auch eine Datei local.css im pub/css-Verzeichnis erstellen, um die CSS-Selektoren dort hinzuzufügen (diese Datei wird automatisch eingebunden, wenn sie existiert). Oder Sie fügen Stile direkt in Ihrer lokalen Anpassungsdatei hinzu, indem Sie etwas Folgendes schreiben:

$HTMLStylesFmt[] = '.foo { color:blue; }';

Wo findet man die erwähnte Übersetzungstabelle, so dass man Übersetzungswendungen hinzufügen kann?

Siehe unter Internationalisierungen.

Ist es möglich, ein Bearbeiten-Formular über die ganze Fensterbreite zu bekommen ohne die SideBar?

Wenn die SideBar mit <!--PageLeftFmt--> markiert ist, fügt man (:noleft:) in die Seite Site.EditForm ein. Das versteckt die SideBar beim Bearbeiten.

Kann man den Titel der Startseite ("HomePage") einfach von der Startseite entfernen/verbergen?

Ja, man kann in der Wikiseite den Titel auf (:title Ein besserer Titel:) ändern oder mit (:notitle:) unterdrücken.

Ist es möglich, die Search-Bar in dem Standardskin von PmWiki zu verbergen?

Ja, siehe bitte unter Cookbook:HideSearchBar.

für die Liste aller Seiten


Übersetzung von PmWiki.SkinTemplates,   Originalseite auf PmWikiDe.SkinTemplates   —   Rückverweise

Zuletzt geändert:   PmWikiDe.SkinTemplatesam 03.09.2019
 PmWiki.SkinTemplatesam 30.08.2019
Bearbeiten - Versionen - Druckansicht - Aktuelle Änderungen - Suchen
Zuletzt geändert am 03.09.2019 07:04 Uhr