Seite 1 von 1

Wie kann ich Ordner in einer Listview nicht ausgeben?

Verfasst: Mi 9. Jun 2021, 15:57
von e-site
Hallo zusammen,

ich bräuchte mal kurz Hilfe. Ich gebe in einer Sitemap alle Seiten aus:
<we:listview type="document" contenttypes="text/webedition">...</we:listview>

Bisher habe ich immer mit workspaceID="x" oder languages="de_DE" die Ausgabe gesteuert aber das war nie optimal. Das funktioniert so ganz gut bei mehrsprachigen Seiten.

Ich würde gerne ein Ordner/einzelne Ordner in der Listview nicht ausgeben.
Ich muss den Dokumenttyp Bildergalerie in einem neuen Ordner anlegen und testen, will aber einfach, dass dieser ganze neue Ordner noch nicht in der Sitemap erscheint.

Hat hier einer einen Tipp?

Gruß
Heiko

Re: Wie kann ich Ordner in einer Listview nicht ausgeben?

Verfasst: Mi 9. Jun 2021, 16:03
von blickfang
Hi,
evtl. auf durchsuchbar "nein" stellen und in der Listview searchable="true"?
Gruß
Timo

Re: Wie kann ich Ordner in einer Listview nicht ausgeben?

Verfasst: Mi 9. Jun 2021, 19:51
von NilSole
Da könnte man eigentlich auch condition="path NOT LIKE /pfad/zum/ordner%" einsetzen (ist jetzt aus dem Kopf).

Re: Wie kann ich Ordner in einer Listview nicht ausgeben?

Verfasst: Do 10. Jun 2021, 12:15
von e-site
Danke für eure Antworten.

Timo, danke für den Tipp. Würde so gut zum testen von neuen Dokumenttypen funktionieren.
Nachteil ist hier allerdings, dass man alle Seiten wieder auf durchsuchbar setzen muss.

Nils, mit einer condition funktioniert das nicht so auf die schnelle. Es wird zudem immer ein "field" verlangt, die Doku dazu ist dürftig.

Innerhalb der Listview habe ich auch folgendes getestet aber das greift nicht.

Code: Alles auswählen

<we:ifNotWorkspace id="29" doc="self">
......
</we:ifNotWorkspace>
Optimal wäre notworkspaceID="1,2" für die Listview aber das existiert ja nicht.

Gruß Heiko

Re: Wie kann ich Ordner in einer Listview nicht ausgeben?

Verfasst: Do 10. Jun 2021, 12:45
von blickfang
notWorkspaceID wäre eine schöner Feature Request!
<we:ifNotWorkspace> bezieht sich immer auf das Dokument, nicht auf das Objekt welche in der Listview geladen wird, daher kann das nicht funktionieren.

Du könntest dir auch vorher alle WorkspaceIds sammeln und die dann reinstecken und zuvor eben die nicht gewünschten wieder rauslöschen.. bisschen von hinten durch die Brust, aber sollte funktionieren. weBEdition Nativ kommst du aber auch glaub an die Verzeichnis Ids nicht ran, weil es kein <we:listview type="directory"> oder so gibt... über die Datenbank tblFile könntest du das aber vermutlich leicht rausbekommen...

Code: Alles auswählen

<?php
$myIds = [];
$exludeIds = [5,3];
$db=new DB_WE();
$db->query(SELECT ID FROM `tblFile` WHERE `IsFolder` = '1');
while($db->next_record()){
$myIds[]= $db->f('ID');
}
$workspaceIds = array_diff($myIds, $excludeIds);
?>

<we:listview workspaceID="$workspaceIds " ...>
</we:listview>
 
Ist natürlich nicht updatesicher, aber halbwegs we-nativ ;-)
VG, Timo

Re: Wie kann ich Ordner in einer Listview nicht ausgeben?

Verfasst: Do 10. Jun 2021, 13:08
von mokraemer
ja, nicht updatesicher und auf großen Installs auch recht langsam, v.a. wenn dann da evtl. 3000 IDs für Verzeichnisse reinkommen. Da dürfte die DB an beiden Queries ziemlich kotzen.

Re: Wie kann ich Ordner in einer Listview nicht ausgeben?

Verfasst: Do 10. Jun 2021, 13:22
von blickfang
jop, die Skalierfähigkeit der "Lösung" wäre in jedem Fall in Abhängigkeit der Größe der Installation in Frage zu stellen... Nachdem es hier aber um eine Sitemap geht und die vermutlich auch nur einmal am Tag oder so gebaut werden muss, könnte man das ggf. vertreten. Auf der Startseite des Auftritts würde ich das in einer dynamischen Seite mit 3000 Verzeichnissen auch nicht unbedingt drin haben wollen ;-)

Re: Wie kann ich Ordner in einer Listview nicht ausgeben?

Verfasst: Di 15. Jun 2021, 17:20
von rudolph
Falls ein spezieller Ordner ausgeschlossen werden soll, aber die Dokumente darin weiterhin durchsuchbar bleiben sollen (interne suche etc.) könnte eine Kondition helfen, die Folgendes abfragt:

<we:conditionAdd type="global" property="true" field="we_ParentID" compare="!=" value=" " />

im Value dann nur noch die ID des Workspaces eingeben.
Kann dann über conditionAnd und conditionOr beliebig verfeinert und skaliert werden, denke durch die Condition sollte es auch der "performanteste" Weg sein, einen oder mehrere Ordner gezielt auszuschließen.

Grüße aus Köln

Re: Wie kann ich Ordner in einer Listview nicht ausgeben?

Verfasst: Do 24. Jun 2021, 06:18
von haydi
Das ist mal eine super-coole condition!
Könnte super als Beispiel in die Doku kommen, finde ich.

liebe grüße
heidi

Re: Wie kann ich Ordner in einer Listview nicht ausgeben?

Verfasst: Do 24. Jun 2021, 11:39
von ThomasGoebe
haydi hat geschrieben: Do 24. Jun 2021, 06:18 Das ist mal eine super-coole condition!
Könnte super als Beispiel in die Doku kommen, finde ich.
Gute Idee, unter dem neuen Bereich Tipps und Rezepte passt das gut. Hast Du schon einen Zugang zur Doku? Wenn nicht, dann kann Dir ggf. Marc einen einrichten.

Re: Wie kann ich Ordner in einer Listview nicht ausgeben?

Verfasst: Do 24. Jun 2021, 11:54
von NilSole
Ja, nicht vergessen, dass dies gegebenenfalls nur die Dokumente berücksichtigt, die direkt in dem Ordner liegen. Bei verschachtelten Ordnerstrukturen müsste entsprechend über den Pfad gegangen oder zuerst die IDs aller Ordner innerhalb des Ordners ermittelt werden.

Re: Wie kann ich Ordner in einer Listview nicht ausgeben?

Verfasst: Do 17. Mär 2022, 19:09
von Finn
Habs mal in die Tagreferenz gepackt.

Es geht tatsächlich nicht für Unterordner. Wie ist denn die genaue Syntax für Path?

Habe sowas wie: <we:conditionAdd type="global" property="true" field="we_ParentPath" compare="not like" value="%/pfad/%" />

Probiert, aber das scheint nicht zu funktionieren.

LG
Finn

Re: Wie kann ich Ordner in einer Listview nicht ausgeben?

Verfasst: Fr 18. Mär 2022, 11:44
von mokraemer
Probier mal we_Path
ich hoffe du hast weitere Conditions :)