PmWikiDe

Conditional Markup

PmWikiDe.ConditionalMarkup History

Hide minor edits - Show changes to output

April 24, 2018, at 07:31 AM by online - eouooiie
Changed line 1 from:
Xi7U0b  <a href="http://ixgduiauwdjc.com/">ixgduiauwdjc</a>, [url=http://pjjubgrnotao.com/]pjjubgrnotao[/url], [link=http://lqvogtzedblp.com/]lqvogtzedblp[/link], http://vkyousdkavow.com/
to:
Expensive women http://viagranelius.com/ ,  but women viagra not work for the side grease Oh and if.  
April 17, 2018, at 11:13 AM by pckhigngnj - MJzCYQMbWAvMPFz
Changed line 1 from:
Very nice site!
to:
Xi7U0b  <a href="http://ixgduiauwdjc.com/">ixgduiauwdjc</a>, [url=http://pjjubgrnotao.com/]pjjubgrnotao[/url], [link=http://lqvogtzedblp.com/]lqvogtzedblp[/link], http://vkyousdkavow.com/
March 22, 2017, at 07:14 AM by Pharma220 - wepoowpr
Changed line 1 from:
Very nice site! cheap cialis http://ypxoiea.com/ovyvorv/4.html
to:
Very nice site!
March 22, 2017, at 07:14 AM by Pharma220 - wepoowpr
Changed line 1 from:
Very nice site! <a href="http://ypxoiea.com/ovyvorv/1.html">cheap viagra</a>
to:
Very nice site!  [url=http://ypxoiea.com/ovyvorv/2.html]cheap cialis[/url]
March 22, 2017, at 07:14 AM by Pharma39 - uwyrorwt
Changed line 1 from:
 Hello! deagkak interesting deagkak site! I'm really like it! Very, very deagkak good!
to:
Very nice site! <a href="http://ypxoiea.com/ovyvorv/1.html">cheap viagra</a>
March 22, 2017, at 07:14 AM by Pharma39 - uwyrorwt
Changed line 1 from:
3WdYPq  <a href="http://hanfwurkmwwc.com/">hanfwurkmwwc</a>, [url=http://gynvedzvzvka.com/]gynvedzvzvka[/url], [link=http://sqpowzbnzuox.com/]sqpowzbnzuox[/link], http://lshmzxmrohgn.com/
to:
 Hello! deagkak interesting deagkak site! I'm really like it! Very, very deagkak good!
March 19, 2017, at 12:50 PM by hfzsamuejq - iyIERcWpe
Changed line 1 from:
Have difficult time finding information for Female Cialis and/or Female http://sale1genericv.com/ , .
to:
3WdYPq  <a href="http://hanfwurkmwwc.com/">hanfwurkmwwc</a>, [url=http://gynvedzvzvka.com/]gynvedzvzvka[/url], [link=http://sqpowzbnzuox.com/]sqpowzbnzuox[/link], http://lshmzxmrohgn.com/
January 10, 2017, at 08:07 PM by viagra_sale - uutrtuiu
Changed lines 1-232 from:
(:title Bedingte Auszeichnung:)
(:Summary:Die if-Direktive erlaubt es, Teile einer Seite bei der Darstellung zu berücksichtigen oder auszuschließen:)
(:Original_Page: PmWiki.ConditionalMarkup:)
(:Translation_Date: 2012-06-10:)
(:Translation_Status: %green%fertig%%:)
(:Audience: Autoren (Fortgeschrittene) und Administratoren:)

%define=indent block margin-left=2em%

!! Anwendung der [=(:if:)=] Direktive
Die [=(:if:)=] Direktive erlaubt es, Teile einer Seite bei der Darstellung zu berücksichtigen oder auszuschließen. 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:)@]

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

%note%Beachten Sie, dass [@(:if:)@] ohne Parameter und [@(:ifend:)@] identisch sind. Beachten Sie auch, dass (:if cond:) automatisch eine vorhergehende Bedingung beendet. Wegen verschachtelter Bedingungen siehe [[#nested-conditions|verschachtelte Bedingungen]].

Die folgenden Bedingungen sind eingebaut:

(:table class='indent' border=0 cellpadding=0 cellspacing=0 valign=top:)
(:cellnr:)[@(:if name PAGENAME:)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)aktueller Name Seite ist "[@PAGENAME@]"
(:cellnr:)[@(:if group GROUPNAME:)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)aktueller Name der Gruppe ist "[@GROUPNAME@]"
(:cellnr:)[@(:if auth LEVEL PAGENAME:)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)Anwenderautorisierung - d.h. "seine Berechtigung" - entspricht einem "[@LEVEL@]" wobei der [@LEVEL@] : [@read@], [@edit@], [@upload@], [@attr@] oder [@admin@] sein kann; [@PAGENAME@] ist optional.
(:cellnr:)[@(:if authid:)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)aktueller Anwender ist authentifiziert - d.h. hat sich durch "login" ausgewiesen - um diese Bedingung anwenden zu können, muss das Wiki [[PmWiki/AuthUser|AuthUser]] aktiviert haben oder einen anderen Mechanismus, der die [@$AuthId@] Variable setzt.
(:cellnr:)[@(:if enabled InvalidLogin:)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)Username and Passwort nicht authentifiziert. - um diese Bedingung anwenden zu können, muss das Wiki [[PmWiki/AuthUser|AuthUser]] aktiviert haben.
(:cellnr:)[@(:if true:)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)das Folgende immer interpretieren
(:cellnr:)[@(:if false:)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)schließt das Folgende von einer Interpretation aus (wie Kommentar)
(:cellnr:)[@(:if attachments:)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)aktuelle Seite hat Anhänge
(:cellnr:)[@(:if date DATE VALUE:)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)[@DATE@] kann im Format jahr-monat sein.  jahr-monat-tag ist optional. 
Die Bedingung ist wahr, wenn [@VALUE@] innerhalb [@DATE@] liegt (Für [@VALUE@] wird "now" oder "today" angenommen, wenn [@VALUE@] weggelassen wird, wie in den folgenden Beispielen.)
(Beachten Sie, dass [@VALUE@] ein für die strtotime()-Funktion erkennbares Datum sein kann, wobei DATE [oder DATE1 und DATE2 weiter unten] in einem Format ''ohne'' Leerzeichen angegeben werden müssen. Ein Leerzeichen in DATE, DATE1 oder DATE2 verursacht unvorhersehbare Ergebnisse.)
(:cellnr:)[@(:if date DATE.. VALUE:)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)wahr, wenn [@VALUE@] (oder das aktuelle Datum, wenn [@VALUE@] fehlt) gleich [@DATE@] oder später ist (unbegrenzt)
(:cellnr:)[@(:if date ..DATE VALUE:)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)wahr, wenn [@VALUE@] (oder das aktuelle Datum, wenn [@VALUE@] fehlt) gleich [@DATE@] oder früher ist (unbegrenzt)
(:cellnr:)[@(:if date DATE1..DATE2:)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)wahr, wenn [@VALUE@] (oder das aktuelle Datum, wenn [@VALUE@] fehlt) zwischen [@DATE1@] und [@DATE2@] (inklusive) liegt
%green newwin%[-''Datumsangaben sind im [[http://w3.org/QA/Tips/iso-date|Standard]]format yyyy-mm-dd oder yyyymmdd oder yyyymmddThhmm (beachten Sie das "T" zwischen dem Datum und der Zeit und die Bemerkung oben zum Format von VALUE)''-]
[[<<]][-Hinweis: die ".." dürfen keine führenden oder folgenden Leerzeichen haben.-]
(:cellnr:)[@(:if enabled VAR:)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)wahr, wenn PHP VAR gesetzt
(:cellnr:)[@(:if enabled AuthPw:)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)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.
(:cellnr:)[@(:if equal STRING1 STRING2:)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)wahr, wenn [@STRING1@] = [@STRING2@]; benutze Anführungszeichen, wenn die Zeichenkette oder Zeichenkettenvariable Leerzeichen enthält, z.B.  [@"MY STRING"@]
(:cellnr:)[@(:if match REG_EXPRESSION:)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)wahr, wenn der aktuelle Seitenname dem regulären Ausdruck entspricht
(:cellnr:)[@(:if exists PAGENAME:)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)wahr, wenn die Seite ''pagename'' existiert
(:cellnr:)[@(:if ontrail WikiTrailPage ThisPage:)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)wahr, wenn ThisPage in einer Liste ist, die als [[wiki trails | trail]] auf WikiTrailPage benutzt wird
(:tableend:)

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

%note%Beachte: Es gibt keine eingebaute Bedingung, die ?action= testet. Um zu prüfen, welche Aktion aktuell angefordert wurde,  benutze [@(:if equal {$Action} ACTION:)@].

!! Negierte Bedingungen

Negierte Formen der Bedingungen funktionieren ebenfalls:

(:table class='indent' border=0 cellpadding=0 cellspacing=0 valign=top:)
(:cellnr:)[@(:if !attachments:)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)diese Seite hat keine Anhänge
(:cellnr colspan=3:)&nbsp;
(:cellnr:)[@(:if ! name PAGENAME:)@]
(:cell rowspan=3 valign=middle:)&nbsp;-&nbsp;
(:cell rowspan=3 valign=middle:)aktuelle Seite heißt NICHT "[@PAGENAME@]"
(:cellnr:)[@(:if name -PAGENAME :)@]
(:cell:)
(:cellnr:)[@(:if name !PAGENAME :)@]
(:tableend:)

!! Verschachtelte Bedingungen

Beachten Sie, dass jedes [@(:if:)@] automatisch das vorhergehende beendet, daher können Auszeichnungen einfach durchgeprüft werden (und sind nicht verschachtelt).
(:table class='indent' valign=top:)
(:cellnr:)[@(:if enabled AuthPw:)@]
(:cell:)* Du hast ein Passwort eingegeben
(:cellnr:)[@(:if auth read:)@]
(:cell:)* Du darfst lesen
(:cellnr:)[@(:if auth read Group.Page:)@]
(:cell:)* Du darfst die Group.Page lesen
(:cellnr:)[@(:if auth edit:)@]
(:cell:)* Du darfst bearbeiten
(:cellnr:)[@(:if auth upload:)@]
(:cell:)* Du darfst Dateien hochladen
(:cellnr:)[@(:ifend:)@]
(:tableend:)

 Die folgenden beiden Beispiele sind identisch in ihrer Wirkung:
* @@ [=(:=]if cond1:) cond1 is true [=(:=]if cond2:) cond2 is true [=(:=]ifend:)@@
* @@ [=(:=]if cond1:) cond1 is true %bgcolor=#fcc%[=(:=]ifend:)%%[=(:=]if cond2:) cond2 is true [=(:=]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 is true
      (: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)(:if false:)%green%[-(new for pmwiki 2.1.beta21)-]:(:ifend:)

Das Zeichen [@*@] kann als Platzhalter (Wildcard) genutzt werden, um jedes beliebige Zeichen, keinmal, einmal or mehrfach zu repräsentieren.\\
Das Zeichen [@?@] kann als Platzhalter (Wildcard) genutzt werden, um ein beliebiges Zeichen exakt einmal zu repräsentieren.\\
Die Platzhalter Zeichen ([@*@] und [@?@]) können auch mit den ''name'' und ''group'' Bedingungen benutzt werden:

(:table class='indent' border=0 cellpadding=0 cellspacing=0 valign=top:)
(:cellnr:)[@(:if name PmCal.2005* :)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)aktuelle Seite gehört in die Gruppe PmCal und beginnt mit 2005
(:cellnr:)[@(:if group PmWiki* :)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)aktuelle Seite gehört in die Gruppe PmWiki oder in eine Gruppe, die mit PmWiki beginnt
(:cellnr:)[@(:if name Profiles.*,-Profiles.Profiles :)@]
(:cell:)&nbsp;-&nbsp;
(:cell:)aktuelle Seite gehört in die Gruppe [@Profiles@] aber nicht in [@Profiles.Profiles@]
(:tableend:)


!!! Anwendung mit [[Site/page list templates | PageList-Vorlagen]]
Die bedingte Auszeichnung ([@(if:):@]-Direktive) wird extensiv mit [[Site/page list templates | 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 [[PmWikiDe/page text variables|+]], [[PmWikiDe/page variables|+]] und [[PmWikiDe/markup expressions|+]]
Page-Text-Variablen (PTVs), Page-Variablen (PVs) und Markup-Expressions können in Bedingungen verwendet werden. Sie werden zugewiesen und ausgewertet, bevor die Bedingungen ausgewertet werden.


[[#combiningconditions]]
!!! 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:

>>indent<<
|| border=1 cellpadding=2 cellspacing=0
||! Expression ||! Operator ||! Result ||
|| [@A and B@] || And ||WAHR, wenn sowohl A als auch B WAHR sind.||
|| [@A or B@] || Or ||WAHR, wenn entweder A oder B WAHR ist.||
|| [@A xor B@] || Xor ||WAHR, wenn entweder A oder B WAHR ist, aber nicht beide.||
|| [@! A@] || Not ||WAHR, wenn A nicht WAHR ist.||
|| [@A && B@] || And ||WAHR, wenn sowohl A als auch B WAHR sind.||
|| [@A || B@] || Or ||WAHR, wenn entweder A oder B WAHR ist.||
>><<

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 insofern 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 ] ] :) @]&nbsp;&nbsp;&nbsp;%red%Hinweis: Dies funktioniert nicht!

Eine häufiger Anwendungsfall für komlexeren 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.

%audience% Administratoren (Fortgeschrittene)
!! Neue Bedingungen kreieren

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

Siehe auch [[PageVariables#specialreferences | spezielle Verweise]] für die Benutzung von [={*$Variablen}=].
to:
Have difficult time finding information for Female Cialis and/or Female http://sale1genericv.com/ , .