Wie kann ich Ordner in einer Listview nicht ausgeben?

Fragen zum Erstellen von Templates für webEdition.
Benutzeravatar
e-site
webEdition Partner
webEdition Partner
Beiträge: 75
Registriert: Fr 27. Mai 2016, 09:33
Kontaktdaten:

Wie kann ich Ordner in einer Listview nicht ausgeben?

Beitragvon e-site » Mi 9. Jun 2021, 15:57

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

Benutzeravatar
blickfang
webEdition Partner
webEdition Partner
Beiträge: 812
Registriert: Mo 15. Dez 2003, 16:00
Kontaktdaten:

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

Beitragvon blickfang » Mi 9. Jun 2021, 16:03

Hi,
evtl. auf durchsuchbar "nein" stellen und in der Listview searchable="true"?
Gruß
Timo
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

NilSole
Senior Member
Beiträge: 303
Registriert: Mi 27. Mär 2019, 15:28

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

Beitragvon NilSole » Mi 9. Jun 2021, 19:51

Da könnte man eigentlich auch condition="path NOT LIKE /pfad/zum/ordner%" einsetzen (ist jetzt aus dem Kopf).

Benutzeravatar
e-site
webEdition Partner
webEdition Partner
Beiträge: 75
Registriert: Fr 27. Mai 2016, 09:33
Kontaktdaten:

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

Beitragvon e-site » Do 10. Jun 2021, 12:15

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

Benutzeravatar
blickfang
webEdition Partner
webEdition Partner
Beiträge: 812
Registriert: Mo 15. Dez 2003, 16:00
Kontaktdaten:

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

Beitragvon blickfang » Do 10. Jun 2021, 12:45

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
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

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

Beitragvon mokraemer » Do 10. Jun 2021, 13:08

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.
webEdition-Kern-Entwickler

Benutzeravatar
blickfang
webEdition Partner
webEdition Partner
Beiträge: 812
Registriert: Mo 15. Dez 2003, 16:00
Kontaktdaten:

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

Beitragvon blickfang » Do 10. Jun 2021, 13:22

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 ;-)
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

rudolph
Junior Member
Beiträge: 3
Registriert: Do 13. Jun 2019, 14:26

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

Beitragvon rudolph » Di 15. Jun 2021, 17:20

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

Benutzeravatar
haydi
Senior Member
Beiträge: 645
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Hirschberg
Kontaktdaten:

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

Beitragvon haydi » Do 24. Jun 2021, 06:18

Das ist mal eine super-coole condition!
Könnte super als Beispiel in die Doku kommen, finde ich.

liebe grüße
heidi
Heidi Wetzel
Internet-Applikationen & Webseiten-Erstellung
https://www.heidi-wetzel.de

ThomasGoebe

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

Beitragvon ThomasGoebe » Do 24. Jun 2021, 11:39

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.

NilSole
Senior Member
Beiträge: 303
Registriert: Mi 27. Mär 2019, 15:28

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

Beitragvon NilSole » Do 24. Jun 2021, 11:54

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.

Benutzeravatar
Finn
Senior Member
Beiträge: 285
Registriert: Mo 3. Apr 2017, 13:37
Wohnort: Bremen
Kontaktdaten:

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

Beitragvon Finn » Do 17. Mär 2022, 19:09

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
Finn Thorwarth
WG Werbeagentur
https://www.wg-werbeagentur.de

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

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

Beitragvon mokraemer » Fr 18. Mär 2022, 11:44

Probier mal we_Path
ich hoffe du hast weitere Conditions :)
webEdition-Kern-Entwickler


Zurück zu „webEdition Templates erstellen (we:Tags)“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste