Diff (SP-Tag)
Version vom 24. Februar 2010, 12:55 Uhr von Schleusner (Diskussion | Beiträge) (Hob den Schutz von „Diff (SP-Tag)“ auf)
Name
<sp:diff> - vergleicht zwei Zeichenketten
Syntax
<sp:diff name="result" from="abc" to="abc cde"/>
Beschreibung
Mit diesem Tag können zwei Zeichenketten miteinander verglichen werden. Dazu werden die beiden Zeichenketten in ihre einzelnen Wörter aufgeteilt, die anschließend miteinander verglichen werden. Das Ergebnis des Vergleiches ist eine Liste von Wörtern entsprechend der verglichenen Zeichenketten, die mit 'nicht geändert', 'geändert', 'neu' oder 'gelöscht' gekennzeichnet werden.
Attribute
Name | Type | Required | Default | ab IES Version |
---|---|---|---|---|
name
|
Variable | Ja | None | 1 |
from
|
Text | Ja | None | 1 |
to
|
Text | Ja | None | 1 |
locale
|
Locale | Nein | None | 1 |
lookup
|
Boolean | Nein | true | 1 |
name
- Name der Liste, in die das Ergebnis gespeichert wird. Die Liste enthält DiffChunk-Objekte.
from
- Text der Verglichen werden soll. Wörter die hier enthalten und in to nicht mehr enthalten sind, werden als 'gelöscht' markiert.
to
- Text der Verglichen werden soll. Wörter die hier enthalten und in from nicht enthalten sind werden als 'neu' markiert.
locale
- Dieses Attribut dient zur Auswahl der zu verwendende Sprache bei mehrsprachigen Variablen.
lookup
- Gibt an, ob bei der der Auflösung von mehrsprachigen Variablen mit der, durch locale angegebenen Sprache auch ein Lookup ausgeführt werden soll.
Beispiele
Vergleichen von zwei Texten
Template Quelltext
<sp:diff name="result" from="abc" to="abc cde"/>
<sp:loop collection="result" item="it">
<sp:condition>
<sp:if name="it.isNew">
ist neu:<sp:print name="it.revised"/>,
</sp:if>
<sp:elseif name="it.isChanged">
ist geändert von <sp:print name="it.original"/> nach <sp:print name="it.revised"/>,
</sp:elseif>
<sp:elseif name="is.isDeleted">
ist gelöscht: <sp:print name="it.original"/>,
</sp:elseif>
<sp:else>
ist unverändert: <sp:print name="it.original"/>,
</sp:else>
</sp:condition>
</sp:loop>