- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Datensatz <-> Seitenreferenz
Hallo,
wie kann man zu einem Datensatz einer Datenquelle die zugehรถrige Seite im Baum finden?
Eine Detailseite X ist im Inhalte- und Strukturbaum angelegt und dieser Seite X ist รผber "CMS_INPUT_OBJECTCHOOSER" ein Datensatz X zugeordnet.
Auf einer anderen Seite gebe ich eine Reihe von Datensรคtzen aus, die mit Datensatz X in Verbindung stehen. Ich mรถchte also direkt auf die Seite X linken, habe aber ja nur den Datensatz X. Wie kann man nun diese Seitenreferenz auslesen, die den Datensatz verwendet? Ist es รผberhaupt mรถglich?
Die Beschreibung ist etwas abstrakt gehalten, ich kann es bei Bedarf auch nch genauer beschreiben.
Vielleicht hat jemand schon eine Idee oder ein รคhnliches Problem gehabt?
Danke im Voraus.
- Labels:
-
Developers
-
Knowledgebase
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Es geht also um die Frage: "Wo wird Datesatz 'x' verwendet?"
Diese bekommt man von der API รผber diese Methode beantwortet:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Wie rufe ich diese Methode in der Vorlage auf?
DB-Abfrage:
{code}
<CMS_HEADER>
<CMS_FUNCTION name="contentSelect" resultname="agenciesresult">
<CMS_PARAM name="schema" value="dbs_jvm" />
<QUERY entityType="agency">
</QUERY>
</CMS_FUNCTION>
</CMS_HEADER>
{code}
Ausgabe von agenciesresult:{code}
$CMS_SET(list, [])$
$CMS_FOR(agency, agenciesresult)$
$CMS_SET(void,list.add(dbs_jvm.getIncomingReferences(agency)))$
$CMS_END_FOR$
{code}
Leider geht es so nicht...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Scheint in diesem Fall wohl nicht anwendbar zu sein, oder?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ich glaube ein CMS_REF folgender Art wรผrde weiterhelfen:
$CMS_REF(pagefolder:"subfolder", contentId:322, template:"products.product_group")$
Hier mit im Teilbaum "subfolder" nach einer Contentprojektion gesucht, die auf der Tabellenvorlage "products.product_group" basiert und den Datensatz mit der Id 322 generiert.
Das ist auch noch mal in der Dokumentation erlรคutert.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Auch das funktioniert leider nicht. Es kommt die Fehlermeldung "No match found in subfolder for template ...".
Handelt es sich denn um eine Content-Projektion, wenn ich per CMS_INPUT_OBJECTCHOOSER einen Datensatz aus der DB auswรคhle? Dann sollte das CMS_REF ja eigentlich funktionieren.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
die entsprechenden Namen mรผssen aus dem Beispiel CMS_REF von oben noch angepasst werden.
Wenn es den Ordner "subfolder" in der Strukturverwaltung nicht gibt, dann sollte ein anderer Ordnername hier angegeben werden. Wenn im Wurzelverzeichnis gesucht werden soll, dann muss z.B. "root" angegeben werden.
Entsprechend sollte der Name der Tabellenvorlage (vorher: "products.product_group") auch dem eigenen Umfeld angepasst werden.
Wenn es nicht hilft bitte mal die komplette Fehlermeldung posten.
Viele Grรผรe
Rouven
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Handelt es sich denn um eine Content-Projektion, wenn ich per CMS_INPUT_OBJECTCHOOSER einen Datensatz aus der DB auswรคhle? Dann sollte das CMS_REF ja eigentlich funktionieren.
Den Satz hatte ich รผberlesen...dann lรคsst sich das so wahrscheinlich nicht lรถsen
So ganz ist mir das Vorgehen auch noch nicht klar.
Sehe ich das richtig, dass im Ausgangspost die Formulierung "Datensatz X" fรผr unterschiedliche Datensรคtze angewandt wird?
Kรถnntest du noch ein Screenshot der Referenzen und eine genauere Beschreibung von welcher Seite auf welche gelinkt werden soll posten, damit das Vorgehen klarer wird?
Viele Grรผรe
Rouven
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Rouven,
von dem obigen Vorschlag bin ich weg, weil ich dort nicht weiterkam (obwohl alle Variablen angepasst waren).
Noch mal das Vorgehen im Detail:
1. Es gibt eine Anzahl an Seiten "Agenturdetail". Jeder Agentur ist per CMS_INPUT_OBJECTCHOOSER ein Datensatz aus der DB zugeordnet.
2. Es gibt eine Anzahl an Seiten "Jobdetail", der ebenfalls einem Datensatz "Job" zugeordnet ist. In der DB besteht zwischen Jobs und Agenturen eine m:n Beziehung.
3. Auf der Jobdetail gebe ich die Agenturen an, die mit dem jeweiligen Job verbunden sind. (Diese Informationen bekomme ich aus der Datenbank)
4.Von der Jobdetailseite aus muss ich auf die Agenturdetailseite verlinken. Also suche ich die "Agenturdetail"-Seitenreferenz zu dem entsprechenden Datensatz. Z.B. Zum Datensatz ID 1281 muss ich auf die Detailseite "jvm_spree" schliessen:
Mein Code in der Jobdetailseite sieht derzeit so aus:
{code}
$CMS_SET(store, #global.project.userService.store("CONTENTSTORE", false))$
$CMS_SET(content, store.getContent2ByName("dbs_jvm.agency"))$
$--CMS_SET(content, store.storeElement(19083))--$
$CMS_SET(schema, content.schema)$
$CMS_SET(entity, content.getEntity(1281))$
$CMS_SET(references, schema.getIncomingReferences(entity))$
$CMS_VALUE(entity)$
references:
$CMS_FOR(r, references)$
ref: $CMS_VALUE(r.getReferenceString)$<br>
$CMS_END_FOR$
{code}
Fehlermeldung hierbei:
19.07.2012 16:20:01.167 INFO (de.espirit.firstspirit.generate.PreviewProduction): generating 'texter' (id=18853, html, DE), content processor de.espirit.firstspirit.generate.EmptyContentProcessor@2d96d4
19.07.2012 16:20:01.167 INFO (de.espirit.firstspirit.store.access.sitestore.PageRefImpl): generating page reference 'texter' (id=18853, html, DE)
19.07.2012 16:20:01.195 INFO ($CMS_SET(entity, content.getEntity(1288))$ at 106, 4): Setting 'entity' to 'null' - Undefined method 'de.espirit.firstspirit.parser.eval.NullEnhancer$Null#getEntity(java.math.BigInteger)'!
Alles spielt sich in Seitenvorlagen ab, nicht im HTML-Kanal der Tabellenvorlagen.
Danke,
Katrin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Laut Logausgaben wird hier keine Datenquelle mit dem Referenznamen "dbs_jvm.agency" gefunden ...
Gruร
Stefan