Index: typo3/sysext/rtehtmlarea/pi2/class.tx_rtehtmlarea_pi2.php
===================================================================
--- typo3/sysext/rtehtmlarea/pi2/class.tx_rtehtmlarea_pi2.php (révision 8086)
+++ typo3/sysext/rtehtmlarea/pi2/class.tx_rtehtmlarea_pi2.php (copie de travail)
@@ -51,6 +51,10 @@
public $OutputCharset;
var $specConf;
var $LOCAL_LANG;
+ /**
+ * @var t3lib_PageRenderer
+ */
+ protected $pageRenderer;
/**
* Draws the RTE as an iframe
@@ -202,18 +206,19 @@
* LOAD JS, CSS and more
* =======================================
*/
- $pageRenderer = $GLOBALS['TSFE']->getPageRenderer();
- $pageRenderer->setBackPath(TYPO3_mainDir);
+ $pageRenderer = $this->getPageRenderer();
// Preloading the pageStyle and including RTE skin stylesheets
$this->addPageStyle();
$this->addSkin();
+ // Loading ExtJs JavaScript files and inline code, if not configured in TS setup
+ if (!$GLOBALS['TSFE']->isINTincScript() || !is_array($GLOBALS['TSFE']->pSetup['javascriptLibs.']['ExtJs.'])) {
+ $pageRenderer->loadExtJs();
+ $pageRenderer->enableExtJSQuickTips();
+ if (!$GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->ID]['enableCompressedScripts']) {
+ $pageRenderer->enableExtJsDebug();
+ }
+ }
$pageRenderer->addCssFile($this->siteURL . 't3lib/js/extjs/ux/resize.css');
- // Loading JavaScript files and code
- $pageRenderer->loadExtJs();
- $pageRenderer->enableExtJSQuickTips();
- if (!$GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->ID]['enableCompressedScripts']) {
- $pageRenderer->enableExtJsDebug();
- }
$pageRenderer->addJsFile($this->siteURL . 't3lib/js/extjs/ux/ext.resizable.js');
if ($this->TCEform->RTEcounter == 1) {
$this->TCEform->additionalJS_pre['rtehtmlarea-loadJScode'] = $this->loadJScode($this->TCEform->RTEcounter);
@@ -224,7 +229,9 @@
'textareaMaxHeight' => '600'
);
$pageRenderer->addInlineSettingArray('', $resizableSettings);
-
+ if ($GLOBALS['TSFE']->isINTincScript()) {
+ $GLOBALS['TSFE']->additionalHeaderData['rtehtmlarea'] = $pageRenderer->render();
+ }
/* =======================================
* DRAW THE EDITOR
* =======================================
@@ -268,18 +275,9 @@
* @return void
*/
protected function addStyleSheet($key, $href, $title='', $relation='stylesheet') {
- $pageRenderer = $GLOBALS['TSFE']->getPageRenderer();
- $pageRenderer->addCssFile($href, $relation, 'screen', $title);
+ $this->pageRenderer->addCssFile($href, $relation, 'screen', $title);
}
/**
- * Return true if we are in the FE, but not in the FE editing feature of BE.
- *
- * @return boolean
- */
- function is_FE() {
- return true;
- }
- /**
* Return the JS-Code for copy the HTML-Code from the editor in the hidden input field.
* This is for submit function from the form.
*
@@ -301,6 +299,25 @@
OK = 0;
}';
}
+ /**
+ * Gets instance of PageRenderer
+ *
+ * @return t3lib_PageRenderer
+ */
+ public function getPageRenderer() {
+ if (!isset($this->pageRenderer)) {
+ if ($GLOBALS['TSFE']->isINTincScript()) {
+ // We use an instance of t3lib_PageRenderer to render additional header data
+ // because this script is invoked after header has been rendered by $GLOBALS['TSFE']->getPageRenderer()
+ $this->pageRenderer = t3lib_div::makeInstance('t3lib_PageRenderer');
+ $this->pageRenderer->setTemplateFile($this->extHttpPath . 'templates/rtehtmlarea_pageheader_frontend.html');
+ } else {
+ $this->pageRenderer = $GLOBALS['TSFE']->getPageRenderer();
+ }
+ $this->pageRenderer->setBackPath(TYPO3_mainDir);
+ }
+ return $this->pageRenderer;
+ }
}
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/pi2/class.tx_rtehtmlarea_pi2.php']) {
include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/pi2/class.tx_rtehtmlarea_pi2.php']);
Index: typo3/sysext/rtehtmlarea/templates/rtehtmlarea_pageheader_frontend.html
===================================================================
--- typo3/sysext/rtehtmlarea/templates/rtehtmlarea_pageheader_frontend.html (révision 0)
+++ typo3/sysext/rtehtmlarea/templates/rtehtmlarea_pageheader_frontend.html (révision 0)
@@ -0,0 +1,9 @@
+
+###CSS_INCLUDE###
+###CSS_INLINE###
+
+###JS_LIBS###
+###JS_INCLUDE###
+###JS_INLINE###
+
+###HEADERDATA###