- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ausgabe der Section im Skript
Hallo Zusammen,
ich muss von einem bestimmten Inhaltsbereich die ganzen Absรคtze ausgeben. Dies muss ich in einem Skript tun:
Body body = currentPageRef.getPage().getBodyByName("category_promobox");
Bisher finde ich keine gute Mรถglichkeit dies zu tun. Habt ihr eine Idee? ICh brauche dazu den Inhalt aus dem HTML-Ausgabekanal.
Sowas รคhnliches wie $CMS_VALUE(#global.page.body("category_promobox"))$ Nur eben aufrufbar in einem Skript von einer beliebigen Seite.
Gruร
Daniel Lรผttel
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Daniel,
Was Du noch versuchen kรถnntest wรคre die Ausgabe des kompletten Inhalts, also z.B.
$CMS_VALUE(#global.page.body("category_promobox"))$
zu ersetzen durch eine Iteration per $CMS_FOR$ und dann die einzelnen Absรคtze (aus der Seitenvorlage heraus) auszugeben mit $CMS_VALUE(set_section)$.
Um dieses CMS_VALUE herum kรถnntest Du dann die von Holger beschriebene Sprachumschaltung machen. Die Logik welche Sprache denn nun benutzt werden soll, mรผsste dann natรผrlich in die Seitenvorlage, hier kannst Du ggf. ganz gut mit Lambdas arbeiten.
Viele Grรผรe
Michael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Daniel,
kรถnnte vielleicht das hier dir helfen?
page.getChildren(Section.class, true); // Liefert dir recursiv alle Sections eines Elements vom Typ Page.
(Siehe API ๐ de.espirit.firstspirit.access.store.pagestore.Page
getChildren Listable getChildren(@NotNull Class type,boolean recurse)
Get the element's children that are instances of the given type.
Parameters: type - The type to find instances of.
recurse - If true, recursively collects children.
Returns: A listable on matching children.
Gruร
Fabrice
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Daniel,
von wo und wie wird das Skript denn aufgerufen? Ist das ein Renderskript?
Viele Grรผรe
Michael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Michael,
dass Skript ist in einer Seiten eingebunden und die Seite soll in CC angezeigt werden.
Ich mรถchte halt direkt den HTML-Code aus dem Ausgabekanal ausgeben kรถnnen.
Hintergrund ist der folgende:
Ich hole mir รผber das Skript ein andere Sprache (z.B. EN) als die die gerade aktiv (z.B. DE) ist und mรถchte nun eben den kompletten Inhalt eines bestimmten Inhaltsbereichsausgaben, aber eben nicht in der aktuellen Sprache (z.B. DE), sondern in der anderen Sprache (z.B. EN).
Gruร
Daniel
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Fabrice,
die Liste alle Sections erhalte ich direkt, aber ich mรถchte direkt in Inhalt der Section ausgeben kรถnnen.
In FS kann ich das ja direkt mit machen:
$CMS_VALUE(#global.page.body("category_promobox"))$
In einem Skript gibt es die Funktion body nicht fรผr eine Page.
Gruร
Daniel
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Daniel,
vielleicht hatte ich falsch verstanden.
Wenn du einige Eigenschaften von der Section "category_promobox" ausgeben mรถchte.
Geht es so:
$CMS_VALUE(#global.page.body("category_promobox").name)$ // gibt dir den Name deiner Section aus
$CMS_VALUE(#global.page.body("category_promobox").id)$ // gibt dir die ID der Section aus
usw...usw... Als du geht erstmals รผber die Seite, danach in der Section, wie du es bisher gemacht hat, sobald du deine Section hat, kannst dann dort die Funktionen, die zu einer Section gehรถren verwenden.
Also wenn es um die Ausgabe des Inahltes der Section geht, dann reicht deine definierte Ausgabe schon
$CMS_VALUE(#global.page.body("category_promobox"))$
Dabei musst du achten, dass der tatsรคchtliche Inhalt in zum Beispiel in einem Absatz, die du in "category_promobix" angelegt hast, richtig in der HTML-Ausgabe-Kanal ausgegeben wird...
(Siehe Doku)
Liefert einen Inhaltsbereich zurรผck. Der Ausdruck wird hรคufig genutzt, um die Inhalte der Absรคtze eines Inhaltsbereichs auszugeben. Als BEZEICHNER ist der Bezeichner eines Inhaltsbereichs anzugeben.
Ich hoffe, dass dir weiterhelfen konnte... Sonst kannst du gerne noch kurz beschreiben wie deine Ansatz ist, dann kann ich wieder eine Idee vorschlagen...
Gruร
Fabrice
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Skripting ๐
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
HAllo Fabrice,
vielen dank.
DIe Mรถglichkeit dachte ich mir schon, aber ich wollte ungerne mein HTML mit den Inhalten zusammenbringen, sondern dachte, dass es da eine coole Ftunktion gibt.
So muss ich ja jetzt fรผr jede definierte Absatzvorlage inhalt und Felder zusammen bringen.
so ein direkte Funktion mit Verheirate Inhalt und Feldinhalte suche ich.
GRuร
DAniel
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Daniel,
Hintergrund ist der folgende:
Ich hole mir รผber das Skript ein andere Sprache (z.B. EN) als die die gerade aktiv (z.B. DE) ist und mรถchte nun eben den kompletten Inhalt eines bestimmten Inhaltsbereichsausgaben, aber eben nicht in der aktuellen Sprache (z.B. DE), sondern in der anderen Sprache (z.B. EN).
Funktioniert da nicht einfach das Umschalten der sprache im normalen Template Code und anschlieรendes Ausgaben des Body Bereichs. Man muss nur unbedingt dran denken, danach wieder zurรผckzuschalten
Also zum Beispiel so:
$CMS_SET(currentLanguage,#global.language)$
$CMS_SET(#global.language,#global.project.language("EN"))$
$CMS_VALUE(#global.page.body("category_promobox"))$
$CMS_SET(#global.language,currentLanguage)$
Viele Grรผsse aus Dortmund,
Holger
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Holger,
ich muss das leider direkt in der Absatzvorlage machen. ๐ Weil jede Absatzvorlage theoretisch eine andere Sprache haben kann.
Dieser Absatz soll eigentlich die Sprache NL_NL ausgeben, weil leider passiert das nicht. Sondern wieder nur die aktuelle Sprache die gerade angezeigt wird.
$CMS_SET(currentLanguage,#global.language)$
$CMS_SET(lang_script)$$CMS_RENDER(script:"lang_check", st_inherit:"true")$$CMS_END_SET$
$--Liefert mir als String lang_script=NL_NL zurรผck --$
$-- Sprache holen --$
$CMS_SET(#global.language,#global.project.language(lang_script.toString().toUpperCase()))$
$-- Sprache NL_NL wurde gesetzt--$
$-- Gibt die Sprache NL_NL aus--$
$CMS_VALUE(#global.language)$
$-- Sollte die Sprache von NL ausgeben --$
$CMS_VALUE(st_text)$
$-- Sprache zurรผcksetzen --$
$CMS_SET(#global.language,currentLanguage)$
Gruร
Daniel

