Recent Changes - Search:

PmWiki (deutsch) für die Liste aller Seiten


Englisch:

PmWiki

pmwiki.org

edit SideBar

https://www.jetphotos.com/photographer/598301 https://www.jetphotos.com/photographer/598304 https://www.jetphotos.com/photographer/598305 https://www.jetphotos.com/photographer/598307 https://www.jetphotos.com/photographer/598310 https://www.jetphotos.com/photographer/598312 https://www.jetphotos.com/photographer/598317 https://www.jetphotos.com/photographer/598318 https://www.jetphotos.com/photographer/598320 https://www.jetphotos.com/photographer/598321 https://www.jetphotos.com/photographer/598322 https://www.jetphotos.com/photographer/598324 https://www.jetphotos.com/photographer/598328 https://www.jetphotos.com/photographer/598340 https://www.jetphotos.com/photographer/598341 https://www.jetphotos.com/photographer/598346 https://www.jetphotos.com/photographer/598349 https://www.jetphotos.com/photographer/598357 https://www.jetphotos.com/photographer/598366 https://www.jetphotos.com/photographer/598372 https://www.jetphotos.com/photographer/598374 https://www.jetphotos.com/photographer/598378 https://www.jetphotos.com/photographer/600028 https://www.jetphotos.com/photographer/600031 https://www.jetphotos.com/photographer/600032 https://www.jetphotos.com/photographer/600034 https://www.jetphotos.com/photographer/600036 https://www.jetphotos.com/photographer/600037 https://www.jetphotos.com/photographer/600039 https://www.jetphotos.com/photographer/600041 https://www.jetphotos.com/photographer/600042 https://www.jetphotos.com/photographer/600045 https://www.jetphotos.com/photographer/600046 https://www.jetphotos.com/photographer/600047 https://www.jetphotos.com/photographer/600048 https://www.jetphotos.com/photographer/600050 https://www.jetphotos.com/photographer/600051 https://www.jetphotos.com/photographer/600052 https://www.jetphotos.com/photographer/600053 https://www.jetphotos.com/photographer/600055 https://www.jetphotos.com/photographer/600057 https://www.jetphotos.com/photographer/600641 https://www.jetphotos.com/photographer/600644 https://www.jetphotos.com/photographer/600645 https://www.jetphotos.com/photographer/600646 https://www.jetphotos.com/photographer/602231 https://www.jetphotos.com/photographer/602240 https://www.jetphotos.com/photographer/602244 https://www.jetphotos.com/photographer/602247 https://www.jetphotos.com/photographer/602261 https://www.jetphotos.com/photographer/602265 https://www.jetphotos.com/photographer/602279 https://www.jetphotos.com/photographer/602307 https://www.jetphotos.com/photographer/602315 https://www.jetphotos.com/photographer/602323 https://www.jetphotos.com/photographer/602340 https://www.jetphotos.com/photographer/602346 https://www.jetphotos.com/photographer/602741 https://www.jetphotos.com/photographer/602743 https://www.jetphotos.com/photographer/602744 https://www.jetphotos.com/photographer/602745 https://www.jetphotos.com/photographer/602746 https://www.jetphotos.com/photographer/602748 https://www.jetphotos.com/photographer/602749 https://www.jetphotos.com/photographer/602750 https://www.jetphotos.com/photographer/602757 https://www.jetphotos.com/photographer/602758 https://www.jetphotos.com/photographer/602762 https://www.jetphotos.com/photographer/602763 https://www.jetphotos.com/photographer/602764 https://www.jetphotos.com/photographer/602769 https://www.jetphotos.com/photographer/602770 https://www.jetphotos.com/photographer/602772 https://www.jetphotos.com/photographer/602773 https://www.jetphotos.com/photographer/602774 https://www.jetphotos.com/photographer/602775 https://www.jetphotos.com/photographer/601186 https://www.jetphotos.com/photographer/601188 https://www.jetphotos.com/photographer/601189 https://www.jetphotos.com/photographer/601191 https://www.jetphotos.com/photographer/601192 https://www.jetphotos.com/photographer/601194 https://www.jetphotos.com/photographer/601196 https://www.jetphotos.com/photographer/601197 https://www.jetphotos.com/photographer/601248 https://www.jetphotos.com/photographer/601249 https://www.jetphotos.com/photographer/601250 https://www.jetphotos.com/photographer/601251 https://www.jetphotos.com/photographer/601252 https://www.jetphotos.com/photographer/601254 https://www.jetphotos.com/photographer/601255 https://www.jetphotos.com/photographer/601256 https://www.jetphotos.com/photographer/601258 https://www.jetphotos.com/photographer/601260 https://www.jetphotos.com/photographer/601261 https://www.jetphotos.com/photographer/601263 https://www.jetphotos.com/photographer/601264 https://www.jetphotos.com/photographer/601265 https://www.jetphotos.com/photographer/601266 https://www.jetphotos.com/photographer/601267 https://www.jetphotos.com/photographer/601268 https://www.jetphotos.com/photographer/601269 https://www.jetphotos.com/photographer/601270 https://www.jetphotos.com/photographer/601272 https://www.jetphotos.com/photographer/601273 https://www.jetphotos.com/photographer/602779 https://www.jetphotos.com/photographer/602780 https://www.jetphotos.com/photographer/602781 https://www.jetphotos.com/photographer/602782 https://www.jetphotos.com/photographer/600111 https://www.jetphotos.com/photographer/600112 https://www.jetphotos.com/photographer/600148 https://www.jetphotos.com/photographer/600151 https://www.jetphotos.com/photographer/600155 https://www.jetphotos.com/photographer/600157 https://www.jetphotos.com/photographer/600159 https://www.jetphotos.com/photographer/600161 https://www.jetphotos.com/photographer/600163 https://www.jetphotos.com/photographer/600647 https://www.jetphotos.com/photographer/600648 https://www.jetphotos.com/photographer/600649 https://www.jetphotos.com/photographer/600650 https://www.jetphotos.com/photographer/602889 https://www.jetphotos.com/photographer/602890 https://www.jetphotos.com/photographer/602891 https://www.jetphotos.com/photographer/602895 https://www.jetphotos.com/photographer/602897 https://www.jetphotos.com/photographer/602900 https://www.jetphotos.com/photographer/602904 https://www.jetphotos.com/photographer/602907 https://www.jetphotos.com/photographer/602913 https://www.jetphotos.com/photographer/602916 https://www.jetphotos.com/photographer/602918 https://www.jetphotos.com/photographer/602922 https://www.jetphotos.com/photographer/602923 https://www.jetphotos.com/photographer/602925 https://www.jetphotos.com/photographer/602926 https://www.jetphotos.com/photographer/600534 https://www.jetphotos.com/photographer/600535 https://www.jetphotos.com/photographer/600536 https://www.jetphotos.com/photographer/600538 https://www.jetphotos.com/photographer/600539 https://www.jetphotos.com/photographer/600540 https://www.jetphotos.com/photographer/600542 https://www.jetphotos.com/photographer/600543 https://www.jetphotos.com/photographer/600544 https://www.jetphotos.com/photographer/600547 https://www.jetphotos.com/photographer/600548 https://www.jetphotos.com/photographer/600549 https://www.jetphotos.com/photographer/600550 https://www.jetphotos.com/photographer/600552 https://www.jetphotos.com/photographer/600553 https://www.jetphotos.com/photographer/600555 https://www.jetphotos.com/photographer/600558 https://www.jetphotos.com/photographer/600565 https://www.jetphotos.com/photographer/600566 https://www.jetphotos.com/photographer/600567 https://www.jetphotos.com/photographer/600568 https://www.jetphotos.com/photographer/600571 https://www.jetphotos.com/photographer/600573 https://www.jetphotos.com/photographer/600575 https://www.jetphotos.com/photographer/600576 https://www.jetphotos.com/photographer/600577 https://www.jetphotos.com/photographer/600578 https://www.jetphotos.com/photographer/600666 https://www.jetphotos.com/photographer/600668 https://www.jetphotos.com/photographer/600669 https://www.jetphotos.com/photographer/600670 https://www.jetphotos.com/photographer/602963 https://www.jetphotos.com/photographer/601276 https://www.jetphotos.com/photographer/601280 https://www.jetphotos.com/photographer/601281 https://www.jetphotos.com/photographer/601284 https://www.jetphotos.com/photographer/601285 https://www.jetphotos.com/photographer/601286 https://www.jetphotos.com/photographer/601287 https://www.jetphotos.com/photographer/601288 https://www.jetphotos.com/photographer/601291 https://www.jetphotos.com/photographer/601293 https://www.jetphotos.com/photographer/602776 https://www.jetphotos.com/photographer/602777 https://www.jetphotos.com/photographer/602955 https://www.jetphotos.com/photographer/602956 https://www.jetphotos.com/photographer/602957 https://www.jetphotos.com/photographer/602959 https://www.jetphotos.com/photographer/602960 https://www.jetphotos.com/photographer/602961

Bedingte Auszeichnung

für die Liste aller Seiten

Autoren (Fortgeschrittene) und Administratoren

Die (:if:) Direktive erlaubt es, Teile einer Seite bei der Darstellung zu berücksichtigen oder auszuschließen.

Anwendung der (:if:)-Direktive

Der grundsätzliche Aufbau der (:if:) Direktive ist

(:if Bedingung Parmeter:) body (:ifend:)
(:if Bedingung Parmeter:) body (:else:) body (:ifend:)
(:if Bedingung Parmeter:) body (:elseif Bedingung Parameter:) body (:ifend:)
(:if Bedingung Parmeter:) body (:elseif Bedingung Parameter:) body (:else:) body (:ifend:)

wobei "Bedingung" eine der unten genannten zu testenden Bedingungen bezeichnet und "Parameter" einen Wert oder ein anderes Argument der Bedingung beschreibt.

Beachten Sie, dass (:if:) ohne Parameter und (:ifend:) identisch sind. Beachten Sie auch, dass (:if Bedingung:) automatisch eine vorhergehende Bedingung beendet. Wegen verschachtelter Bedingungen in mehreren Ebenen siehe verschachtelte Bedingungen.

Eingebaute Bedingungen

Die folgenden Bedingungen sind eingebaut:

(:if name SEITENNAME:)
aktueller Seitenname ist "SEITENNAME" oder "GRUPPENNAME.SEITENNAME"
(:if group GRUPPENNAME:)
aktueller Name der Gruppe ist "GRUPPENNAME"
(:if auth LEVEL SEITENNAME:)
Anwenderautorisierung - d. h. "seine Berechtigung" - entspricht einem "LEVEL" wobei der LEVEL : read, edit, upload, attr oder admin sein kann; SEITENNAME ist optional.
Das wird meistens benutzt, um Teile des Quelltextes, die nur für Verfasser oder Administratoren nützlich sind, für diese sichtbar zu machen und vor anderen zu verbergen.
Sicherheitswarnung: Um Inhalte zu sicher verstecken, ist weder diese noch eine andere bedingte Auszeichnung ausreichend. Bedingungte Auszeichnungen können in vielen Fällen einfach umgangen werden, wie in Passwörter beschrieben wird. Siehe auch Sicherheit, PITS:01417. Sie müssen zusätzlich die Seite schützen.
Der Grund ist, dass ein Benutzer, der eine Seite bearbeiten oder den Quellkode ansehen kann, auch den Inhalt innerhalb der bedingten Auszeichnung sehen kann.
(:if auth @readers,@editors:)
Der Aktuelle Besucher ist Mitglied mindestens einer der Gruppen "@readers" oder "@editors". Dies kann mit AuthUser oder durch eigene Rezepte konfiguriert werden (seit PmWiki 2.3.17).
(:if authid:)
aktueller Anwender ist authentifiziert - d. h. er hat sich durch "Login" ausgewiesen - um diese Bedingung anwenden zu können, muss das Wiki die Benutzerautorisierung aktiviert haben oder ein anderes Rezept, das die $AuthId-Variable setzt.
(:if enabled InvalidLogin:)
Username und Passwort nicht authentifiziert. - um diese Bedingung anwenden zu können, muss das Wiki das Cookbook:AuthUser-Rezept eingeschlossen haben.
(:if true:)
den folgenden Text immer auswerten/anzeigen, true klein schreiben(!) ,Groß/Kleinschreibung wird unterschieden
(:if false:)
den folgenden Text nicht auswerten/anzeigen (gleicht einem Kommentar, aber Seiten-Text-Variablen werden gesetzt!), false klein schreiben(!), Groß/Kleinschreibung wird unterschieden
(:if attachments FILENAMES PAGENAME:)
PAGENAME hat einen Anhang oder mehrere Anhänge unter den angegebenen. PAGENAME kann weggelassen werden, dann wird die aktuelle Seite untersucht.
FILENAMES bezeichnen einen Anhang wie "bild1.jpg" oder Anhangsmuster, getrennt durch Kommata, wie "bild*.jpg,*.png", wobei der Stern für eine beliebige Anzahl weiterer Zeichen steht. Fehlt der Parameter, zählt jeglicher Anhang (d. h. "*").
Wenn die Bedingung in einer Sidebar, einem Header oder einem Footer benutzt wird und der Seitenname ist nicht angegeben, wird die Bedingung auf die Hauptseite angewendet.
Beispiel: (:if attachments *.png,*.gif Groupname.PageName:) Beachten Sie: Keine Anführungszeichen um die Dateinamen.

In den folgenden "if date"-Beispielen gilt:

  • DATE kann Jahr-Monat sein. Jahr-Monat-Tag ist optional.
  • VALUE kann ein Datum sein, muss aber mit strtotime() erkannt werden.
  • DATE (oder DATE1 und DATE2 unten) haben ein etwas strengeres Format, das keine Leerzeichen enthalten darf. Jedes Leerzeichen in DATE1 oder DATE2 verursacht unvorhersagbare Ergebnisse.
  • "now" oder "today" wird angenommen, wenn (VALUE) weggelassen wird
  • Daten stehen im Standardformat yyyy-mm-dd oder yyyymmdd oder yyyymmddThhmm (Beachten Sie das "T" zwischen dem Datum und der Uhrzeit, und sehen Sie sich die Anmerkung oben zu VALUE an)
  • das ".." darf keine führenden (zusammen mit DATE1) oder folgenden Leerzeichen (zusammen mit DATE2) haben.
(:if date DATE VALUE:)
wahr, wenn VALUE im Bereich von DATE liegt.
(:if date DATE1.. VALUE:)
wahr, wenn VALUE (oder das aktuelle Datum, wenn VALUE fehlt) gleich DATE1 oder später ist (unbegrenzt)
(:if date ..DATE2 VALUE:)
wahr, wenn VALUE (oder das aktuelle Datum, wenn VALUE fehlt) gleich DATE2 oder früher ist (unbegrenzt)
(:if date DATE1..DATE2 VALUE:)
wahr, wenn VALUE (oder das aktuelle Datum, wenn VALUE fehlt) zwischen DATE1 und DATE2 (inklusive) liegt
(:if enabled VAR:)
wahr, wenn PHP VAR existiert und nicht falsch ist
(:if enabled AuthPw:)
wahr, wenn der Anwender irgend ein Passwort während der aktuellen Browser-Sitzung eingegeben hat.
Das bedeutet nicht, dass der Anwender das korrekte Passwort eingegeben hat, nur dass er eines eingegeben hat.
(:if equal STRING1 STRING2:)
wahr, wenn STRING1 = STRING2; benutzen Sie Anführungszeichen, wenn die Zeichenkette oder Zeichenkettenvariable Leerzeichen enthält, z. B. "MY STRING"
(:if match REG_EXPRESSION:)
wahr, wenn der aktuelle Seitenname dem regulären Ausdruck entspricht
(:if exists PAGENAME:)
wahr, wenn die Seite "pagename" oder "groupname.pagename" existiert (Groß/Kleinschreibung wird nicht unterschieden)
Mehrere Seiten können angegeben werden, z. B. (:if exists p1,p2,meineGruppe.*:) ist wahr, wenn wenigstens eine unter den Seiten "p1" oder "p2" oder unter jenen in der "meineGruppe"-Gruppe existiert.
(:if ontrail WikiTrailPage ThisPage:)
wahr, wenn ThisPage in einer Liste ist, die als trail auf der Seite "WikiTrailPage" benutzt wird

Die "name"- und "group"-Bedingungen arbeiten sogar in einer inkludierten Seite, da "name" und "group" immer die aktuell ausgegebene Seite überprüfen, und nicht die Seite, in der die Auszeichnung enthalten ist (Quelltext).

Beachten Sie: Es gibt keine eingebaute Bedingung, die ?action= testet. Um zu prüfen, ob die aktuell angeforderte Aktion gleich ACTION ist, benutze (:if equal {$Action} ACTION:).

Verknüpfte Bedingungen

In einigen Fällen, wo eingebaute Bedingungen einen Parameter haben, können die Parameter mit Hilfe eines Kommas aufgezählt werden, siehe

  • (:if name Name1,Name2,-Name3:)
  • (:if group -Group1,Group2,Group3:)

Negierte Bedingungen

Negierte Formen der Bedingungen funktionieren ebenfalls:

(:if !attachments:)
diese Seite hat keine Anhänge
(:if ! name PAGENAME:)
(:if name -PAGENAME :)
aktuelle Seite heißt NICHT "PAGENAME"
(:if group -GROUPNAME1,-GROUPNAME2 :)
diese Gruppe heißt weder "GROUPNAME1" noch "GROUPNAME2"

Verschachtelte Bedingungen

Beachten Sie, dass jedes (:if cond:) automatisch das vorhergehende beendet, daher können Auszeichnungen einfach durchgeprüft werden (und sind nicht verschachtelt).

(:if enabled AuthPw:) * Du hast ein Passwort eingegeben
(:if auth read:) * Du darfst lesen
(:if auth read Group.Page:) * Du darfst die Group.Page lesen
(:if auth edit:) * Du darfst bearbeiten
(:if auth upload:) * Du darfst Dateien hochladen
(:ifend:)

Die folgenden beiden Beispiele sind identisch in ihrer Wirkung:

  • (:if cond1:) cond1 ist waht(:if cond2:) cond2 ist wahr (:ifend:)
  • (:if cond1:) cond1 ist wahr (:ifend:)(:if cond2:) cond2 ist wahr (:ifend:)

Bedingungen können seit der Version 2.2.beta66 verschachtelt werden. Für verschachtelte Bedingung müssen Sie die if und die korrespondierenden else/ifend nummerieren.

(:if cond1:)
   cond1 ist wahr
      (:if2 cond2:)
         cond1 und cond2 sind wahr
      (:else2:)
         cond1 ist wahr, cond2 ist falsch
      (:if2end:)
(:else:)
   cond1 ist falsch, Test auf cond2 wurde ignoriert
(:ifend:)

Für eine bessere Lesbarkeit wurden Einrückungen vorgenommen.

Nutzung von Platzhaltern (Wildcard)

Das Zeichen * kann als Platzhalter (Wildcard/Joker) genutzt werden, um jedes beliebige Zeichen keinmal, einmal oder mehrfach zu repräsentieren.
Das Zeichen ? kann als Platzhalter (Wildcard/Joker) genutzt werden, um ein beliebiges Zeichen exakt einmal zu repräsentieren.
Die Platzhalterzeichen (* und ?) können auch mit den name- und group-Bedingungen benutzt werden:

(:if name PmCal.2005* :)
aktuelle Seite gehört in die Gruppe PmCal und beginnt mit 2005
(:if group PmWiki* :)
aktuelle Seite gehört in die Gruppe PmWiki oder in eine Gruppe, die mit PmWiki beginnt
(:if name Profiles.*,-Profiles.Profiles :)
aktuelle Seite gehört in die Gruppe Profiles, ist aber nicht Profiles.Profiles

Anwendung mit PageList-Vorlagen

Die bedingte Auszeichnung ((:if :)-Direktive) wird intensiv mit PageList-Vorlagen genutzt.

Anwendung mit Seiten Variablen:

= aktuelles Element
< voriges Element
> nächstes Element

Bedingungen zur Strukturierung von pagelist Ausgaben:

   (:if equal {<$Group}:)             Am Anfang der Liste
   (:if equal {>$Group}:)             Am Ende der Liste
   (:if ! equal {=$Group} {<$Group}:)   Erstes Element der Gruppe
   (:if ! equal {=$Group} {>$Group}:)   Letztes Element der Gruppe

Gebrauch von Seiten-Text-Variablen, Seitenspezifische Variablen und Formatierungsanweisungen im Ausdruck

Seiten-Text-Variablen (STVs), seitenspezifischen Variablen (SVs) und Markup-Expressions können in Bedingungen verwendet werden. Sie werden zugewiesen und ausgewertet, bevor die Bedingungen ausgewertet werden.

Kombinieren von Bedingungen

Bedingungen (wie vorher definiert) können zu komplexeren bedingten Ausdrücken kombiniert werden, in dem eine der drei folgenden untereinander äquivalenten Formen benutzt werden:

(:if expr EXPRESSION :)
(:if [ EXPRESSION ] :)
(:if ( EXPRESSION ) :)@]

Bedingungen werden mit Booleschen Operatoren und Klammern zu Ausdrücken verbunden. In der folgenden Tabelle sind A und B entweder reguläre Bedingungen oder geklammerte sub-Ausdrücke regulärer Bedingungen:

ExpressionOperatorResult
A and BAndWAHR, wenn sowohl A als auch B WAHR sind.
A or BOrWAHR, wenn entweder A oder B WAHR ist oder beide WAHR sind.
A xor BXorWAHR, wenn entweder A oder B WAHR ist, aber nicht beide.
! ANotWAHR, wenn A nicht WAHR ist.
A && BAndWAHR, wenn sowohl A als auch B WAHR sind.
A || BOrWAHR, wenn A oder B WAHR ist oder beide WAHR sind.

Beispiel

(:if [ name SomePage and group SomeGroup ]:)   
entspricht (:if name SomeGroup.SomePage:)

Wichtige Hinweise:

  • Leerzeichen um Operatoren und Klammern sind erforderlich.
  • Bei unpaariger Klammersetzung gibt es keine spezifischen Fehlerhinweise.
  • Bei verschachtelten Ausdrücken werden runde Klammer (keine eckigen) benutzt.

Das Folgende ist folglich ein möglicher Weg, eine Bedingung zu formulieren, durch die der folgende Inhalt nur angezeigt wird, wenn der Nutzer entweder Administrator ist oder wenn er eingeloggt ist und das angegebene Datum abgelaufen ist.

(:if [ auth admin || ( authid && date 2006-06-01 ) ] :)

Das Verschachteln mit Hilfe eckiger Klammern funktioniert wie erwartet nicht:

(:if [ auth admin || [ authid && date 2006-06-01 ] ] :)    Hinweis: Dies funktioniert nicht!

Ein häufiger Anwendungsfall für komlexere Tests sind Ausdrücke wie

(:if expr auth admin || auth attr || auth edit :)
[[Logout -> {$Name}?action=logout]]
(:ifend:)

wodurch ein Logout-Link genau dann angezeigt wird, wenn admin-, attr- oder edit-Rechte vorhanden sind.

Administratoren (Fortgeschrittene)

Neue Bedingungen kreieren

Siehe das Kochbuch-Rezept Cookbook:ConditionalMarkupSamples (nur auf Englisch verfügbar).

Siehe auch spezielle Verweise für die Benutzung von {*$Variablen}. für die Liste aller Seiten


Übersetzung von PmWiki.ConditionalMarkup,   Originalseite auf PmWikiDe.ConditionalMarkup   —   Backlinks

Zuletzt geändert:   PmWikiDe.ConditionalMarkupam 18.12.2022
 PmWiki.ConditionalMarkupam 17.12.2022
Edit - History - Print - Recent Changes - Search
Page last modified on December 18, 2022, at 09:46 AM