dluettel
Elite Observer

Iframe, ContentCreator

Jump to solution

Hallo Zusammen,

ich habe ein Problem mit dem ContentCreator. Bindet man Inhalte mittels iFrame in eine Seite ein, so scheint die Funktion $CMS_VALUE(editorId())$ nicht mehr zu funktionieren.

Warum die Lösung? Die Lösung haben wir deshalb gewält, weil Inhalte von einem Live-System holen und nur verschiedene Platzhalter (z.B. data-fs5) ersetzen möchten.

Dazu rufen wir ein Script (debug) auf, welches die Seite lädt und und anschließend die Platzhalter durch die definierten Absätze ersetzen soll. Dieses vorgehen funktioniert auch ohne Probleme wenn der Inhalt nicht in ein iFrame geladen wird.

Wir müssen dies aber in ein iFrame laden, weil wir sonst Sourcen (z.B: body oder head) eventuell doppelt hätten.

Seitenvorlage:

$CMS_SET(webApp)$$CMS_RENDER(script: "debug", url: "http://luettel.org/test.html", ang: false, isFile: false )$$CMS_END_SET$

$CMS_SET(webApp,webApp.toString)$

[..]

<body>

          <div id="webApp">

                    <iframe id="webAppFrame" style="position: absolute; height: 100%; border: none" width="100%" height="100%" srcdoc="$CMS_VALUE(webApp.convert2)$"></iframe>

          </div>

          <div id="angApp">

                    <iframe id="angAppFrame" style="position: absolute; height: 100%; border: none" width="100%" height="100%" srcdoc="$CMS_VALUE(angApp)$"></iframe>

          </div>

</body>

Das dazugehörige Script sieht wie folgt aus:

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.nodes.*;

import org.jsoup.nodes.Element;

import org.jsoup.select.Elements;

if(ang == true){

          shopTemplate = Jsoup.connect(url).userAgent("Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36").get();

} else {

          shopTemplate = Jsoup.connect(url).get();

}

shopTemplate.getElementsByAttribute("data-fs5").empty();

Elements elements = shopTemplate.getElementsByAttribute("data-fs5");

char dollarSign = 36;

for (Element element : elements) {

          String editArea = dollarSign + "CMS_VALUE(#global.page.body(\"" + element.attr("data-fs5") + "\"))" + dollarSign;

          element.text(editArea);

}

return (shopTemplate.html());

Eine Absatzvorlage:

<CMS_HEADER>

</CMS_HEADER>

<div class="exampleContent" $CMS_VALUE(editorId())$>

<span$CMS_VALUE(editorId(editorName: "text"))$>$CMS_VALUE(text)$</span>

</div>

Wird die oben genannte Absatzvorlage in die Seite eingebunden, so werden auch die Attribute für Edit-Funktionen von FirstSpirit an das DIV-Element gehangen. Jedoch funktionieren die Funktion leider nicht. Ich kann keine Absatzvorlage im ContentCreator bearbeiten.

FIrstSpirit 5.2.422 (aktuelle Version)

Habt ihr eine Lösung?

Gruß

Daniel

0 Kudos
1 Solution

Accepted Solutions
pavone
I'm new here

Hallo Daniel,

Frames werden in der Vorschau im ContentCreator leider nicht unterstützt, weshalb weder Highlighting noch EasyEdit funktioniert.

Viele Grüße

Tim

View solution in original post

0 Kudos
5 Replies
marza
I'm new here

Hallo Daniel,

Der FirstSpirit-Code, den Du da injezierst, muss ja auch von FirstSpirit geparst werden. Einfach ausgeben reicht nicht. Überprüfen kannst Du das, in dem Du Dir den Quellcode ansiehst. Wenn in einer aus FirstSpirit generierten Seite noch FirstSpirit-Code drinsteht, ist was schief gelaufen, weil das eigentlich nicht passieren kann, wenn man FirstSpirit normal verwendet.

Eine solche Funktion Evaluate-Funktion gibt es in FirstSpirit nicht.

Grüße Marian

0 Kudos

Hallo Marian,

es werden die FS Attribute rausgeschrieben bei der Iframe variante und bei der ohne iFrame Variante. Es werden keine CMS_*** ohne ähnlich rausgeschrieben, sondern das fertig gerenderte HTML. Die DIV wo von der Absatzvorlage sehen in beiden Varianten gleich aus. aber leider Funktion das Hightlight nicht.

Also irgendwas muss das iFrame verhindern.

GRuß

Daniel

0 Kudos

Hallo Marian,

hier der Code für den Absatz mit IFrame:

<div id="webApp">

<iframe id="webAppFrame" style="position: absolute; height: 100%; border: none" width="100%" height="100%" srcdoc="$CMS_VALUE(webApp.convert2)$"></iframe>

</div>

geparster Code:

<div class="exampleContent" data-fs-inline-editable="false" data-fs-attrs="eyJsYW5ndWFnZUFiYnJldmlhdGlvbiI6IkRFIiwiaW5saW5lRWRpdGFibGUiOmZhbHNlLCJyZWxlYXNlIjpmYWxzZSwiaGFzQWN0aW9ucyI6dHJ1ZSwiY2hhbm5lbCI6Mjg5Mn0=" data-fs-editor-type="CMS_MODULE" data-fs-has-actions="true" data-fs-id="eyJpZCI6MzA2NSwic3RvcmUiOiJQQUdFU1RPUkUifQ==" data-fs-type="Section" data-fs-sorting-group="2970,2971,2972,2973" data-fs-display-store="PAGE" data-fs-release="false" data-fs-reload-preview="false" data-fs-meta="false" data-fs-revision="-1">

<span data-fs-has-actions="false" data-fs-transfer-types="2243933507" data-fs-id="eyJub2RlcyI6WyJ0ZXh0Il0sImlkIjozMDY1LCJzdG9yZSI6IlBBR0VTVE9SRSJ9" data-fs-display-store="PAGE" data-fs-reload-preview="false" data-fs-revision="-1" data-fs-transfer-constraint="allow=&amp;mpicture=false&amp;txt=true&amp;hide=&amp;stype=&amp;mfile=false&amp;etype=&amp;up=false&amp;multi=false" data-fs-inline-editable="true" data-fs-attrs="eyJsYW5ndWFnZUFiYnJldmlhdGlvbiI6IkRFIiwiaW5saW5lRWRpdGFibGUiOnRydWUsInJlbGVhc2UiOmZhbHNlLCJoYXNBY3Rpb25zIjpmYWxzZSwiY2hhbm5lbCI6Mjg5Mn0=" data-fs-editor-type="CMS_INPUT_TEXT" data-fs-type="GADGET" data-fs-release="false" data-fs-meta="false">mainteaser2</span>

</div>

Hier der Code für den Absatz ohne iFrame:

<div id="webApp">

$CMS_VALUE(webApp)$

</div>

parster Code:

<div class="exampleContent" data-fs-inline-editable="false" data-fs-attrs="eyJsYW5ndWFnZUFiYnJldmlhdGlvbiI6IkRFIiwiaW5saW5lRWRpdGFibGUiOmZhbHNlLCJyZWxlYXNlIjpmYWxzZSwiaGFzQWN0aW9ucyI6dHJ1ZSwiY2hhbm5lbCI6Mjg5Mn0=" data-fs-editor-type="CMS_MODULE" data-fs-has-actions="true" data-fs-id="eyJpZCI6MzA2NSwic3RvcmUiOiJQQUdFU1RPUkUifQ==" data-fs-type="Section" data-fs-sorting-group="2970,2971,2972,2973" data-fs-display-store="PAGE" data-fs-release="false" data-fs-reload-preview="false" data-fs-meta="false" data-fs-revision="-1">

<span data-fs-has-actions="false" data-fs-transfer-types="2243933507" data-fs-id="eyJub2RlcyI6WyJ0ZXh0Il0sImlkIjozMDY1LCJzdG9yZSI6IlBBR0VTVE9SRSJ9" data-fs-display-store="PAGE" data-fs-reload-preview="false" data-fs-revision="-1" data-fs-transfer-constraint="allow=&amp;mpicture=false&amp;txt=true&amp;hide=&amp;stype=&amp;mfile=false&amp;etype=&amp;up=false&amp;multi=false" data-fs-inline-editable="true" data-fs-attrs="eyJsYW5ndWFnZUFiYnJldmlhdGlvbiI6IkRFIiwiaW5saW5lRWRpdGFibGUiOnRydWUsInJlbGVhc2UiOmZhbHNlLCJoYXNBY3Rpb25zIjpmYWxzZSwiY2hhbm5lbCI6Mjg5Mn0=" data-fs-editor-type="CMS_INPUT_TEXT" data-fs-type="GADGET" data-fs-release="false" data-fs-meta="false">mainteaser2</span>

</div>

Für mich sehen beide gleich aus.

Als wenn kein Handler oder ähnlich funktioniert.

Gruß

Daniel Lüttel

0 Kudos
pavone
I'm new here

Hallo Daniel,

Frames werden in der Vorschau im ContentCreator leider nicht unterstützt, weshalb weder Highlighting noch EasyEdit funktioniert.

Viele Grüße

Tim

0 Kudos

Hallo Tim,

dass dachte ich mir schon.

Wir haben jetzt eine andere Lösung verwendet.

Beste Grüße

Daniel Lüttel

0 Kudos