So filtern Sie die aufrufende Listendatei aus einer Liste

Dieser Artikel beschreibt, wie Sie in einer Weblication® Liste die aufrufende Listendatei selber in der Liste anzeigen bzw. verbergen können.

Eine Weblication® Liste kann so umgesetzt werden, dass die aufrufende Listendatei nicht in der Liste angezeigt wird, sofern diese sich im auszulesenden Verzeichnis befinden sollte. Dies kann im Zeilentemplate der Liste (z.b. xxx.wFilelist.php) über eine xsl:if Abfrage geregelt werden, siehe folgend:

Beispiel: Auszug aus xxx.wFilelist.php zum Filtern der aufrufenden Listendatei

...
<xsl:if test="$wDocumentPath != @path">
...
<!-- Definierte Struktur des Zeilentemplates (z.B. li-Punkte) -->
...
</xsl:if>

Falls gewünscht ist, dass die Listendatei (sofern im auszulesenden Verzeichnis abliegend, z.B. /de/aktuelles/meldungen/index.php) auch mit in der Liste angezeigt werden soll, muss hierzu im verknüpften Zeilentemplate die if-Abfrage (siehe oben) rausgenommen werden.
Weiterhin muss in der Listendatei innerhalb der Listenoptionen der Parameter "allowSelf" aktiviert werden (Wert: 1), was nachfolgend angeführt wird. Damit dieser Parameter wirksam ist, müssen Sie das verwendete Listenelement (z.B. core.list.wItem.php) um diesen Parameter erweitern (siehe weiter unten). Sollte dieser Parameter zudem pflegbar sein, definieren Sie dies auch im Listenelement.

Hinweis:
Seit CMS 6.x Versionen können Sie über die Listenoptionen definieren, ob die aktuelle Seite mit in der Liste angezeigt wird oder nicht (siehe weiterführende Links unten).

Beispiel: Auszug aus der Listendatei (z.B. /de/aktuelles/meldungen/index.php) mit allowSelf-Angabe

...
    <wd:item id="list" icon="/demoCore/wGlobal/layout/images/element-icons/element_list.gif" name="Liste" type="core.list" refresh="1" wPathTemplate="/demoCore/wGlobal/mastertemplates/items/core.list.wItemMastertemplate.php">
      ...
      <wd:fragment id="allowSelf" type="char.text">1</wd:fragment>
      ...
    </wd:item>
...

Beispiel: Auszug aus dem Listenelement (z.B. core.list.wItem.php)

...
$listParameters['allowSelf']        = '<xsl:value-of select="php:functionString('wStringconverter::maskApos', wd:fragment[@id='allowSelf']/text())"/>';
...
FAQs
Wie kann ich in einer Weblication® Liste die aufrufende Listendatei in der Liste anzeigen oder verbergen?
Eine Weblication® Liste kann so umgesetzt werden, dass die aufrufende Listendatei nicht angezeigt wird, sofern sie sich im auszulesenden Verzeichnis befindet. Dies wird im Zeilentemplate der Liste (z.B. <code class="codeInline">xxx.wFilelist.php</code>) über eine <code class="codeInline">xsl:if</code>-Abfrage geregelt.
Welche Bedingung wird verwendet, um die aufrufende Listendatei aus der Liste zu filtern?
Im Zeilentemplate kann geprüft werden, ob sich die aktuelle Listendatei von der aufgerufenen Dokument-/Pfadangabe unterscheidet. Beispiel (sinngemäß): <code class="codeInline">xsl:if test="$wDocumentPath != @path"</code> – innerhalb dieses Blocks wird die Listenstruktur ausgegeben.
Wie kann ich erreichen, dass die Listendatei auch dann in der Liste angezeigt wird, wenn sie im auszulesenden Verzeichnis liegt?
Wenn gewünscht ist, dass die Listendatei (z.B. <code class="codeInline">.../index.php</code>) mit in der Liste erscheint, muss die <code class="codeInline">if</code>-Abfrage im verknüpften Zeilentemplate entfernt werden.
Welche Einstellung sorgt dafür, dass die Listendatei trotz Filter angezeigt werden kann?
In der Listendatei müssen in den Listenoptionen der Parameter <code class="codeInline">allowSelf</code> aktiviert werden (Wert: <code class="codeInline">1</code>). Damit der Parameter wirksam ist, muss zusätzlich das verwendete Listenelement (z.B. <code class="codeInline">core.list.wItem.php</code>) um diesen Parameter erweitert werden. Optional sollte auch gepflegt werden, ob der Parameter pflegbar ist.
Wie sieht ein Beispiel für <code class="codeInline">allowSelf</code> in der Listendatei aus?
Beispielauszug in der Listendatei (z.B. <code class="codeInline">/de/aktuelles/meldungen/index.php</code>): - In den Listenoptionen/Fragments wird ein <code class="codeInline">allowSelf</code> Fragment mit dem Wert <code class="codeInline">1</code> hinterlegt (z.B. <code class="codeInline"><wd:fragment id="allowSelf" type="char.text">1</wd:fragment></code>).
Wie sieht ein Beispiel aus, um <code class="codeInline">allowSelf</code> im Listenelement (z.B. <code class="codeInline">core.list.wItem.php</code>) zu berücksichtigen?
Im Listenelement muss der Parameter übernommen werden, z.B. in Form einer Zuweisung wie: <code class="codeInline">$listParameters['allowSelf'] = '<xsl:value-of select="php:functionString('wStringconverter::maskApos', wd:fragment[@id='allowSelf']/text())"/>';</code>
Gibt es eine Alternative ab CMS 6.x, um das Anzeigen der aktuellen Seite zu steuern?
Ja. Seit CMS 6.x können Sie über die Listenoptionen definieren, ob die aktuelle Seite mit in der Liste angezeigt wird oder nicht. Dafür gibt es weiterführende Links im Artikel.