Iframe, ContentCreator
Author: dluettel
Publication Date: 8/11/2016 8:26
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
-
Author: pavone - 8/16/2016 10:31
Hallo Daniel,
Frames werden in der Vorschau im ContentCreator leider nicht unterstützt, weshalb weder Highlighting noch EasyEdit funktioniert.
Viele Grüße
Tim
0
Vous devez vous connecter pour laisser un commentaire.
Commentaires
1 commentaire