ID vom Dokument, wo ein Objekt eingebunden ist

Fragen zum Erstellen von Templates für webEdition.
QJan
Senior Member
Beiträge: 192
Registriert: Mo 10. Nov 2008, 11:39

ID vom Dokument, wo ein Objekt eingebunden ist

Beitragvon QJan » Di 26. Aug 2014, 12:08

Hallo,

bei den Dokumenten kann der Redakteur per we:block Objekte auswählen und somit in die Seite einbinden.

Für eine Suche benutze ich we:ifObject für die Ausgabe der Suchtreffer in den Objekten. In der Ausgabe der Listview werden auch korrekte Treffen von Objekten gezeigt aber es fehlt halt der Link.

Wie bekomme ich heraus, in welches Dokument ein Objekt eingebunden wurde?

Gruß
QJ

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

Re: ID vom Dokument, wo ein Objekt eingebunden ist

Beitragvon mokraemer » Di 26. Aug 2014, 13:48

das geht so einfach nicht und ist auch nicht unaufwändig.
Um das herauszubekommen, muß man ja über alle Dokumente suchen, ob ein eingebundenes Objekt eben mit dem Dokument verknüpft ist. Auf dieser Suche gibt es drart keinen Index, belastet also die DB und damit den Server stark - sollte man also genau überlegen, ob man das wirklich braucht und es auch so realisieren will/muß.
webEdition-Kern-Entwickler

ThomasGoebe

Re: ID vom Dokument, wo ein Objekt eingebunden ist

Beitragvon ThomasGoebe » Di 26. Aug 2014, 18:05

Hallo Qjan

ja, das ist aufwendig. Die richtige Lösung bestünde eigentlich in einer neuen webEdition Suche, die einen besseren Index macht und insbesondere die Blöcke anders abfängt.
Aber das ist noch mal sehr aufwendig.

Eine Zwischenlösung ist:
lege in den Dokumenten ein Textfeld an, das für die Redakteuere versteckt wird. Über einen Hook beim Speichern prüfst Du, ob Objekte in den Blöcken eingebunden sind. Wenn ja, schreibst Du z.B. die IDs oder was auch immer du zum finden brauchst in das versteckte Feld. Nun kannst Du damit ggf. suchen.

Leider sind Dokumente jedoch für conditions nur eingeschränkt nutzbar, daher könnte es besser sein, generell mit Objekten zu arbeiten. Das hängt aber stark vom konkreten Anwendungsfall ab.

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

Re: ID vom Dokument, wo ein Objekt eingebunden ist

Beitragvon mokraemer » Di 26. Aug 2014, 18:30

Das mit den Hooks halte ich auch eher für fragwürdig. Um das in ein Feld zu speichern, sollte eigentlich kein Hook nötig sein. Mir geht es allerdings auch darum die Daten doppelt abzulegen erreicht hier eher nicht den gewünschten Sinn.

Ich glaube auch nicht, daß wir so etwas in einen Index (für die Suche bringen). Denn der Aufwand für die DB ist ja dann auch groß.
Wichtiger wäre es zu erläutern warum genau man diese Abfrage braucht und was man mit den ganzen Dokumenten macht, die dann gefunden wurden. Das macht es einfacher hier eine sinnvolle Lösung zu finden bzw. darüber zu diskutieren, ob es sowas schon gibt oder was wie erweitert werden müßte und wie man das am besten zur Verfügung stellt.

Nur zur Klärung: die Abfrage ist prinzipiell jetzt schon möglich.
webEdition-Kern-Entwickler

ThomasGoebe

Re: ID vom Dokument, wo ein Objekt eingebunden ist

Beitragvon ThomasGoebe » Di 26. Aug 2014, 18:45

@marc

naja, ich habe da auch szenarien:
über we:block werden Ansprechpartner (sind Objekte) einem Dokument zugewiesen. Nun soll eine Übersicht aller Dokumente, bei denen Herr Meier einer der Ansprechpartner ist, erstellt werden. Für jeden Mitarbeiter gibt es eine Detailseite, auf der dann eben eine Liste der Dokumente / Services / was auch immer angezeigt wird, in denen er/sie Ansprechpartner ist.
Wenn man nur Objekte nimmt, geht das über Conditions (auch nicht so leicht, aber das liegt an den serialisierten Arrays), bei Dokumenten gibt es eigentlich keine Chance, das rauszufinden.

Nun wirst Du wieder fragen: warum block? Einfach weil es dort eine beliebige Anzahl gibt, ich die Ansprechpartnerauswahl gut einbinden kann und eben etwas mehr Möglichkeiten habe, als wenn ich die Dokumente komplett als Objekte anlege. Sollte es sich um strukturierte Daten wie Produkte etc. handeln, wären Objekte sinnvoll, bei anderen Daten sind es eher Dokumente

Und klar, in einer idealen Umgebung tritt der Anwendungsfall nicht auf, Realtität ist aber, dass es immer wieder Anforderungen gibt, für die eine Lösung her muss. Und da webEdition nicht ideal erstellt ist, sind die Hooks m.E. schon ein guter Weg, um in dem vorhandenen Problem mit eventuellen vorhanden Einschränkungen für ideale Lösungen einen Option darzustellen.

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

Re: ID vom Dokument, wo ein Objekt eingebunden ist

Beitragvon mokraemer » Mi 27. Aug 2014, 18:03

Das hilft doch schon mal.
und nein, ich hätte nicht nach dem Block gefragt.
Eigentlich ist die Struktur bei den Dokumenten auch besser wie bei den Objekten.
Ich hab jetzt auch mal was für die 6.3.9 geändert - allerdings wirkt sich das dann nur auf manuell neu veröffentlichte Dokumente aus. Denn die Information was ein Objekt-Tag gewesen ist, ist vor 6.3.9 leider verloren gegangen.

Bei den Objekten kenne ich die Abfrage mittels regex - aber auch die ist, bei vielen Objekten für die DB ein echter Albtraum. DAs wird sich dann wohl mit 6.4 ändern - da müssen danach natürlich diese RegEx Abfragen geändert werden.

Ich frage mich eigentlich eher, wie man eine solche Abfrage über das <we:listview type"document"> Tag geschickt zur Verfügung stellt. Denn gerade wenn es ein Block-Element ist, kann man den Namen für das Element schlecht angeben.
Die Abfrage könnte man sich auch bei einem Bild/href etc. vorstellen - nur nicht alle legen bisher ihre Daten sauber offen.
=> Gerade deshalb ist es hilfreich zu wissen wofür es gebraucht wird.
webEdition-Kern-Entwickler

ThomasGoebe

Re: ID vom Dokument, wo ein Objekt eingebunden ist

Beitragvon ThomasGoebe » Mi 27. Aug 2014, 18:50

@marc: ich nutze bei condition der multiobjekte z.B. keinen regex sondern ein like, der den string in dem serialisierten Array findet. Das ist absolut "unsauber", klappt aber recht performant bisher. Da muss aber wirklich mittelfristig etwas anderes her.

Für die Dokumente und speziell für die Blöcke habe ich auch noch keine zündende Idee. Ich denke, dafür sollten wir mal ein Entwicklertreffen mit ein paar NIcht-Entwicklern zusammen machen. Evtl. auch beim Partner und Anwendertag noch einmal genauer miteinander ins Gespräch kommen, um ein paar mehr reale Anwendungsfälle zu erhalten.

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

Re: ID vom Dokument, wo ein Objekt eingebunden ist

Beitragvon mokraemer » Do 28. Aug 2014, 00:28

bei dem Like kommt es darauf an, ob du die Auswahl vorher weit genug einschränken konntest - per se wird daraus ein table-scan.

Wenn man bei einem Dokument nur wissen will, ob ein best. Objekt eingebunden ist, wäre das egal. Nur wen man halt wissen will, ob ein Objekt in einem speziellen Feld eines Blocks ist dann ist die Abfrage weniger das Problem als mehr das Ausdrücken.
webEdition-Kern-Entwickler


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

Wer ist online?

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