Mit diesem Element können Iframes einfach in Content-Bereiche eingebunden werden. Es stehen die nötigen Einstellungsmöglichkeiten zur Verfügung.
bh
Einbindung von iframes
HTML-Template: Resources/Private/Partials/Iframe.html
HTML
{namespace bh=TYPO3\Bh\ViewHelpers}
<bh:tmpl.element object="{cObj}">
<iframe name="{cObj.settings.frm-name}" {f:if(condition:'{cObj.settings.thirdcountrycontent}
!=1',then:'src="{cObj.link.url}"',else:'
data-thirdcountry-src="{cObj.link.url}"')} width="{cObj.settings.frm-width}" height="{cObj.settings.frm-height}" frameborder="0" scrolling="{cObj.settings.frm-scrolling}" {f:if(condition:'
{cObj.settings.frm-allowfullscreen}==1',then:'allowfullscreen',else:'')}
{f:if(condition:'{cObj.settings.sandbox}==1',then:'sandbox="allow-forms allow-scripts allow-presentation"',else:'')}></iframe>
</bh:tmpl.element>
Settings-HTML: Configuration/BheForms/Iframe.html
HTML
{namespace bh=TYPO3\Bh\ViewHelpers}
<bh:form.settingsform content="{cObj}">
<div class="bhe-formsettings-option">
Inhalte von Iframes müssen der Datenschutzverordnung entsprechen (zB Cookie-Popup). Das Bakehouse kann auf
Inhalte von Iframes nicht zugreifen.
</div>
<div class="bhe-formsettings-option">
<label>Iframe-Name</label>
<f:form.textfield name="frm-name" value="{cObj.settings.frm-name}" />
</div>
<div class="bhe-formsettings-option">
<label>Breite</label>
<f:form.textfield name="frm-width" value="{cObj.settings.frm-width}" />
</div>
<div class="bhe-formsettings-option">
<label>Höhe</label>
<f:form.textfield name="frm-height" value="{cObj.settings.frm-height}" />
</div>
<div class="bhe-formsettings-option">
<label>Scrollbars zulassen</label>
<f:form.select name="frm-scrolling" value="{cObj.allSettings.frm-scrolling}"
options="{cObj.allSettings.frm-scrolling-opt}" />
</div>
<div class="bhe-formsettings-option">
<label
data-tooltip="Erlaubt es den Inhalt des Iframes im Vollbild zu öffnen (muss von der eingebundenen Seite untersützt werden)"
data-tooltip-view="extended">Fullscreen zulassen</label>
<f:form.checkbox name="frm-allowfullscreen" value="1" checked="{cObj.allSettings.frm-allowfullscreen}" />
</div>
<div class="bhe-formsettings-option">
<label
data-tooltip="Seite die im Iframe geladen wird, darf keine Cookies von Dritten setzen und wird von der Hauptseite abgeschottet. Verbessert die Kompatibilität mit der DSGVO. Funktionen im Iframe können aber eingeschränkt sein."
data-tooltip-view="extended">Sandboxed</label>
<f:form.checkbox name="sandbox" value="1" checked="{cObj.allSettings.sandbox}" />
</div>
<div class="bhe-formsettings-option">
<label
data-tooltip="Inhalt kommt aus Drittland. Darf nur geladen werden, wenn Cookies aus Drittländern akzeptiert werden."
data-tooltip-view="extended">Inhalt aus Drittland (zB USA, Google Maps usw...)</label>
<f:form.checkbox name="thirdcountrycontent" value="1" checked="{cObj.allSettings.thirdcountrycontent}" />
</div>
<f:if condition="{cObj.allSettings.styleOptions.classes}">
<div class="bhe-formsettings-option">
<label>Styles</label>
<f:form.select multiple="true" name="style[options]" value="{cObj.allSettings.style.options}"
options="{cObj.allSettings.styleOptions.classes}" />
</div>
</f:if>
<bh:form.dynamicFields item="{cObj}" settings="{cObj.allSettings.settingsGlobalFields}" />
<f:form.submit value="Speichern" />
</bh:form.settingsform>