Index: typo3/sysext/rtehtmlarea/class.tx_rtehtmlarea_base.php =================================================================== --- typo3/sysext/rtehtmlarea/class.tx_rtehtmlarea_base.php (révision 7269) +++ typo3/sysext/rtehtmlarea/class.tx_rtehtmlarea_base.php (copie de travail) @@ -79,19 +79,20 @@ var $pluginButton = array(); var $pluginLabel = array(); - - // External: - var $RTEdivStyle; // Alternative style for RTE
tag. - public $httpTypo3Path; - var $extHttpPath; // full Path to this extension for http (so no Server path). It ends with "/" - var $siteURL; // TYPO3 site url - var $hostURL; // TYPO3 host url - var $typoVersion; // Typo3 version - - // Internal, static: - var $ID = 'rtehtmlarea'; // Identifies the RTE as being the one from the "rte" extension if any external code needs to know... - var $debugMode = FALSE; // If set, the content goes into a regular TEXT area field - for developing testing of transformations. (Also any browser will load the field!) - + // Alternative style for RTE
tag. + public $RTEdivStyle; + // Relative path to this extension. It ends with "/" + public $extHttpPath; + // TYPO3 site url + public $siteURL; + // TYPO3 host url + public $hostURL; + // Typo3 version + public $typoVersion; + // Identifies the RTE as being the one from the "rtehtmlarea" extension if any external code needs to know + var $ID = 'rtehtmlarea'; + // If set, the content goes into a regular TEXT area field - for developing testing of transformations. + var $debugMode = FALSE; // For the editor var $client; @@ -120,6 +121,7 @@ var $toolbarOrderArray = array(); protected $pluginEnabledArray = array(); // Array of plugin id's enabled in the current RTE editing area protected $pluginEnabledCumulativeArray = array(); // Cumulative array of plugin id's enabled so far in any of the RTE editing areas of the form + protected $cumulativeScripts = array(); public $registeredPlugins = array(); // Array of registered plugins indexed by their plugin Id's protected $fullScreen = false; @@ -207,25 +209,15 @@ * INIT THE EDITOR-SETTINGS * ======================================= */ - - // first get the http-path to typo3: - $this->httpTypo3Path = substr( substr( t3lib_div::getIndpEnv('TYPO3_SITE_URL'), strlen( t3lib_div::getIndpEnv('TYPO3_REQUEST_HOST') ) ), 0, -1 ); - if (strlen($this->httpTypo3Path) == 1) { - $this->httpTypo3Path = '/'; - } else { - $this->httpTypo3Path .= '/'; - } // Get the path to this extension: - $this->extHttpPath = $this->httpTypo3Path . t3lib_extMgm::siteRelPath($this->ID); + $this->extHttpPath = t3lib_extMgm::extRelPath($this->ID); // Get the site URL $this->siteURL = t3lib_div::getIndpEnv('TYPO3_SITE_URL'); // Get the host URL - $this->hostURL = t3lib_div::getIndpEnv('TYPO3_REQUEST_HOST'); - + $this->hostURL = $this->siteURL . TYPO3_mainDir; // Element ID + pid $this->elementId = $PA['itemFormElName']; // Form element name $this->elementParts = explode('][',preg_replace('/\]$/','',preg_replace('/^(TSFE_EDIT\[data\]\[|data\[)/','',$this->elementId))); - // Find the page PIDs: list($this->tscPID,$this->thePid) = t3lib_BEfunc::getTSCpid(trim($this->elementParts[0]),trim($this->elementParts[1]),$thePidValue); @@ -241,7 +233,6 @@ $this->specConf = $specConf; if ($this->thisConfig['forceHTTPS']) { - $this->httpTypo3Path = preg_replace('/^(http|https)/', 'https', $this->httpTypo3Path); $this->extHttpPath = preg_replace('/^(http|https)/', 'https', $this->extHttpPath); $this->siteURL = preg_replace('/^(http|https)/', 'https', $this->siteURL); $this->hostURL = preg_replace('/^(http|https)/', 'https', $this->hostURL); @@ -421,12 +412,12 @@ list($extKey,$local) = explode('/',substr($skinFilename,4),2); $skinFilename=''; if (strcmp($extKey,'') && t3lib_extMgm::isLoaded($extKey) && strcmp($local,'')) { - $skinFilename = $this->httpTypo3Path . t3lib_extMgm::siteRelPath($extKey) . $local; - $skinDir = $this->siteURL . t3lib_extMgm::siteRelPath($extKey) . dirname($local); + $skinFilename = ($this->is_FE() ? t3lib_extMgm::siteRelPath($extKey) : t3lib_extMgm::extRelPath($extKey)) . $local; + $skinDir = ($this->is_FE() ? t3lib_extMgm::siteRelPath($extKey) : t3lib_extMgm::extRelPath($extKey)) . dirname($local); } } elseif (substr($skinFilename,0,1) != '/') { - $skinDir = $this->siteURL.dirname($skinFilename); - $skinFilename = $this->siteURL . $skinFilename; + $skinDir = dirname($skinFilename); + $skinFilename = $skinFilename; } else { $skinDir = substr($this->siteURL,0,-1) . dirname($skinFilename); } @@ -449,7 +440,7 @@ if ($pathToSkin) { $this->addStyleSheet( 'rtehtmlarea-plugin-' . $pluginId . '-skin', - $this->httpTypo3Path . t3lib_extMgm::siteRelPath($this->registeredPlugins[$pluginId]->getExtensionKey()) . $pathToSkin + ($this->is_FE() ? t3lib_extMgm::siteRelPath($key) : t3lib_extMgm::extRelPath($key)) . $pathToSkin ); } } @@ -711,57 +702,50 @@ * @return string the html code for loading the Javascript Files */ function loadJSfiles($RTEcounter) { - global $TYPO3_CONF_VARS; - - $loadPluginCode = ' - HTMLArea_plugins = new Array();'; + $this->buildJSMainLangFile($RTEcounter); + $this->writeTemporaryFile('EXT:' . $this->ID . '/htmlarea/htmlarea.js', 'htmlarea', 'js', '', TRUE); + if ($this->client['BROWSER'] == 'msie') { + $this->writeTemporaryFile('EXT:' . $this->ID . '/htmlarea/htmlarea-ie.js', 'htmlarea-ie', 'js', '', TRUE); + } else { + $this->writeTemporaryFile('EXT:' . $this->ID . '/htmlarea/htmlarea-gecko.js', 'htmlarea-gecko', 'js', '', TRUE); + } foreach ($this->pluginEnabledCumulativeArray[$RTEcounter] as $pluginId) { $extensionKey = is_object($this->registeredPlugins[$pluginId]) ? $this->registeredPlugins[$pluginId]->getExtensionKey() : $this->ID; - $loadPluginCode .= ' - HTMLArea_plugins.push({url : "' . $this->writeTemporaryFile('EXT:' . $extensionKey . '/htmlarea/plugins/' . $pluginId . '/' . strtolower(preg_replace('/([a-z])([A-Z])([a-z])/', "$1".'-'."$2"."$3", $pluginId)) . '.js', $pluginId) . '", asynchronous : ' . ($this->registeredPlugins[$pluginId]->requiresSynchronousLoad() ? 'false' : 'true'). ' });'; + $this->writeTemporaryFile('EXT:' . $extensionKey . '/htmlarea/plugins/' . $pluginId . '/' . strtolower(preg_replace('/([a-z])([A-Z])([a-z])/', "$1".'-'."$2"."$3", $pluginId)) . '.js', $pluginId, 'js', '', TRUE); } // Avoid re-initialization on AJax call when RTEarea object was already initialized $loadJavascriptCode = ' + '; - $loadJavascriptCode .= ' - - - '; return $loadJavascriptCode; } @@ -791,7 +775,6 @@ * @return string the Javascript code for configuring the RTE */ function registerRTEinJS($RTEcounter, $table='', $uid='', $field='', $textAreaId = '') { - global $TYPO3_CONF_VARS; $configureRTEInJavascriptString = (!$this->is_FE() ? '' : ' ' . '/*fullScreen ? 'true' : 'false') . '; RTEarea[editornumber].showStatusBar = ' . (trim($this->thisConfig['showStatusBar'])?'true':'false') . '; RTEarea[editornumber].enableWordClean = ' . (trim($this->thisConfig['enableWordClean'])?'true':'false') . '; - RTEarea[editornumber]["htmlRemoveComments"] = ' . (trim($this->thisConfig['removeComments'])?'true':'false') . '; + RTEarea[editornumber].htmlRemoveComments = ' . (trim($this->thisConfig['removeComments'])?'true':'false') . '; RTEarea[editornumber].disableEnterParagraphs = ' . (trim($this->thisConfig['disableEnterParagraphs'])?'true':'false') . '; RTEarea[editornumber].disableObjectResizing = ' . (trim($this->thisConfig['disableObjectResizing'])?'true':'false') . '; - RTEarea[editornumber]["removeTrailingBR"] = ' . (trim($this->thisConfig['removeTrailingBR'])?'true':'false') . '; - RTEarea[editornumber]["useCSS"] = ' . (trim($this->thisConfig['useCSS'])?'true':'false') . '; - RTEarea[editornumber]["keepButtonGroupTogether"] = ' . (trim($this->thisConfig['keepButtonGroupTogether'])?'true':'false') . '; - RTEarea[editornumber]["disablePCexamples"] = ' . (trim($this->thisConfig['disablePCexamples'])?'true':'false') . '; - RTEarea[editornumber]["showTagFreeClasses"] = ' . (trim($this->thisConfig['showTagFreeClasses'])?'true':'false') . '; - RTEarea[editornumber]["useHTTPS"] = ' . ((trim(stristr($this->siteURL, 'https')) || $this->thisConfig['forceHTTPS'])?'true':'false') . '; + RTEarea[editornumber].removeTrailingBR = ' . (trim($this->thisConfig['removeTrailingBR'])?'true':'false') . '; + RTEarea[editornumber].useCSS = ' . (trim($this->thisConfig['useCSS'])?'true':'false') . '; + RTEarea[editornumber].keepButtonGroupTogether = ' . (trim($this->thisConfig['keepButtonGroupTogether'])?'true':'false') . '; + RTEarea[editornumber].disablePCexamples = ' . (trim($this->thisConfig['disablePCexamples'])?'true':'false') . '; + RTEarea[editornumber].showTagFreeClasses = ' . (trim($this->thisConfig['showTagFreeClasses'])?'true':'false') . '; + RTEarea[editornumber].useHTTPS = ' . ((trim(stristr($this->siteURL, 'https')) || $this->thisConfig['forceHTTPS'])?'true':'false') . '; RTEarea[editornumber].tceformsNested = ' . (is_object($this->TCEform) && method_exists($this->TCEform, 'getDynNestedStack') ? $this->TCEform->getDynNestedStack(true) : '[]') . '; RTEarea[editornumber].dialogueWindows = new Object(); RTEarea[editornumber].dialogueWindows.defaultPositionFromTop = ' . (isset($this->thisConfig['dialogueWindows.']['defaultPositionFromTop'])? intval($this->thisConfig['dialogueWindows.']['defaultPositionFromTop']) : '100') . '; @@ -871,24 +854,21 @@ // Setting the list of tags to be removed if specified in the RTE config if (trim($this->thisConfig['removeTags'])) { $configureRTEInJavascriptString .= ' - RTEarea[editornumber]["htmlRemoveTags"] = /^(' . implode('|', t3lib_div::trimExplode(',', $this->thisConfig['removeTags'], 1)) . ')$/i;'; + RTEarea[editornumber].htmlRemoveTags = /^(' . implode('|', t3lib_div::trimExplode(',', $this->thisConfig['removeTags'], 1)) . ')$/i;'; } // Setting the list of tags to be removed with their contents if specified in the RTE config if (trim($this->thisConfig['removeTagsAndContents'])) { $configureRTEInJavascriptString .= ' - RTEarea[editornumber]["htmlRemoveTagsAndContents"] = /^(' . implode('|', t3lib_div::trimExplode(',', $this->thisConfig['removeTagsAndContents'], 1)) . ')$/i;'; + RTEarea[editornumber].htmlRemoveTagsAndContents = /^(' . implode('|', t3lib_div::trimExplode(',', $this->thisConfig['removeTagsAndContents'], 1)) . ')$/i;'; } - // Process default style configuration $configureRTEInJavascriptString .= ' - RTEarea[editornumber].defaultPageStyle = "' . $this->hostURL . $this->writeTemporaryFile('', 'defaultPageStyle', 'css', $this->buildStyleSheet()) . '";'; - + RTEarea[editornumber].defaultPageStyle = "' . $this->writeTemporaryFile('', 'defaultPageStyle', 'css', $this->buildStyleSheet()) . '";'; // Setting the pageStyle $filename = trim($this->thisConfig['contentCSS']) ? trim($this->thisConfig['contentCSS']) : 'EXT:' . $this->ID . '/res/contentcss/default.css'; $configureRTEInJavascriptString .= ' RTEarea[editornumber].pageStyle = "' . $this->getFullFileName($filename) .'";'; - // Process classes configuration $classesConfigurationRequired = false; foreach ($this->registeredPlugins as $pluginId => $plugin) { @@ -899,7 +879,6 @@ if ($classesConfigurationRequired) { $configureRTEInJavascriptString .= $this->buildJSClassesConfig($RTEcounter); } - // Add Javascript configuration for registered plugins foreach ($this->registeredPlugins as $pluginId => $plugin) { if ($this->isPluginEnabled($pluginId)) { @@ -990,17 +969,15 @@ $classesTagConvert = array( 'classesCharacter' => 'span', 'classesParagraph' => 'div', 'classesImage' => 'img', 'classesTable' => 'table', 'classesLinks' => 'a', 'classesTD' => 'td'); $classesTagArray = t3lib_div::trimExplode(',' , $classesTagList); $configureRTEInJavascriptString = ' - RTEarea[editornumber]["classesTag"] = new Object();'; + RTEarea[editornumber].classesTag = new Object();'; foreach ($classesTagArray as $classesTagName) { $HTMLAreaJSClasses = ($this->thisConfig[$classesTagName])?('"' . $this->cleanList($this->thisConfig[$classesTagName]) . '";'):'null;'; $configureRTEInJavascriptString .= ' - RTEarea[editornumber]["classesTag"]["'. $classesTagConvert[$classesTagName] .'"] = '. $HTMLAreaJSClasses; + RTEarea[editornumber].classesTag.'. $classesTagConvert[$classesTagName] .' = '. $HTMLAreaJSClasses; } - // Include JS arrays of configured classes $configureRTEInJavascriptString .= ' - RTEarea[editornumber]["classesUrl"] = "' . $this->hostURL . $this->writeTemporaryFile('', 'classes_'.$LANG->lang, 'js', $this->buildJSClassesArray()) . '";'; - + RTEarea[editornumber].classesUrl = "' . $this->writeTemporaryFile('', 'classes_'.$LANG->lang, 'js', $this->buildJSClassesArray()) . '";'; return $configureRTEInJavascriptString; } @@ -1101,7 +1078,7 @@ * * @return string The name of the file writtten to typo3temp/rtehtmlarea */ - public function writeTemporaryFile($sourceFileName='', $label, $fileExtension='js', $contents='') { + public function writeTemporaryFile($sourceFileName='', $label, $fileExtension='js', $contents='', $concatenate = FALSE) { global $TYPO3_CONF_VARS; if ($sourceFileName) { @@ -1112,7 +1089,7 @@ $output = $contents; } $compress = $TYPO3_CONF_VARS['EXTCONF'][$this->ID]['enableCompressedScripts'] && ($fileExtension == 'js') && ($output != ''); - $relativeFilename = 'typo3temp/' . $this->ID . '/' . str_replace('-','_',$label) . '_' . t3lib_div::shortMD5(($TYPO3_CONF_VARS['EXTCONF'][$this->ID]['version'] . ($sourceFileName?$sourceFileName:$output)), 20) . ($compress ? '_compressed' : '') . '.' . $fileExtension; + $relativeFilename = 'typo3temp/' . $this->ID . '/' . str_replace('-','_',$label) . '_' . t3lib_div::shortMD5(($TYPO3_CONF_VARS['EXTCONF'][$this->ID]['version'] . ($sourceFileName ? $sourceFileName : $output)), 20) . ($compress ? '_compressed' : '') . '.' . $fileExtension; $destination = PATH_site . $relativeFilename; if(!file_exists($destination)) { $compressedJavaScript = ''; @@ -1124,8 +1101,40 @@ die($failure); } } - return ($this->thisConfig['forceHTTPS']?$this->siteURL:$this->httpTypo3Path) . $relativeFilename; + if ($concatenate) { + $this->cumulativeScripts[] = $destination; + } + return (($this->is_FE() && $GLOBALS['TSFE']->absRefPrefix) ? $GLOBALS['TSFE']->absRefPrefix : '../' ) . $relativeFilename; } + /** + * Concatenates all accumulated scripts in a file in typo3temp/rtehtmlarea directory and returns the file name + * + * @return string The name of the file writtten to typo3temp/rtehtmlarea + */ + protected function doConcatenate() { + $fileExtension = 'js'; + $compress = $GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->ID]['enableCompressedScripts']; + $token = implode('|', $this->cumulativeScripts); + $relativeFilename = 'typo3temp/' . $this->ID . '/' . 'htmlarea_cumulative' . '_' . t3lib_div::shortMD5(($TYPO3_CONF_VARS['EXTCONF'][$this->ID]['version'] . $token ), 20) . ($compress ? '_compressed' : '') . '.' . $fileExtension; + $destination = PATH_site . $relativeFilename; + if (!file_exists($destination)) { + foreach ($this->cumulativeScripts as $fileName) { + $contents = file_get_contents($fileName); + if (!file_exists($destination)) { + $failure = t3lib_div::writeFileToTypo3tempDir($destination, $contents); + if ($failure) { + die($failure); + } + } else { + $success = file_put_contents($destination, $contents, FILE_APPEND); + if (!$success) { + die('Could not append script' + $fileName); + } + } + } + } + return (($this->is_FE() && $GLOBALS['TSFE']->absRefPrefix) ? $GLOBALS['TSFE']->absRefPrefix : '../' ) . $relativeFilename; + } /** * Return a file name containing the main JS language array for HTMLArea @@ -1134,13 +1143,12 @@ * * @return string filename */ - function buildJSMainLangFile($RTEcounter) { $contents = $this->buildJSMainLangArray() . chr(10); foreach ($this->pluginEnabledCumulativeArray[$RTEcounter] as $pluginId) { $contents .= $this->buildJSLangArray($pluginId) . chr(10); } - return $this->writeTemporaryFile('', $this->language.'_'.$this->OutputCharset, 'js', $contents); + return $this->writeTemporaryFile('', $this->language.'_'.$this->OutputCharset, 'js', $contents, TRUE); } /** @@ -1278,14 +1286,14 @@ list($extKey,$local) = explode('/',substr($filename,4),2); $newFilename = ''; if (strcmp($extKey,'') && t3lib_extMgm::isLoaded($extKey) && strcmp($local,'')) { - $newFilename = $this->siteURL . t3lib_extMgm::siteRelPath($extKey) . $local; + $newFilename = ($this->is_FE() ? t3lib_extMgm::siteRelPath($extKey) : t3lib_extMgm::extRelPath($extKey)) . $local; } } elseif (substr($filename,0,1) != '/') { - $newFilename = $this->siteURL . $filename; + $newFilename = ($this->is_FE() ? '' : '../') . $filename; } else { - $newFilename = $this->siteURL . substr($filename,1); + $newFilename = ($this->is_FE() ? '' : '../') . substr($filename, 1); } - return $newFilename; + return $newFilename; } /** @@ -1457,9 +1465,7 @@ "; } } - if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/class.tx_rtehtmlarea_base.php']) { include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/class.tx_rtehtmlarea_base.php']); } - ?> \ No newline at end of file Index: typo3/sysext/rtehtmlarea/extensions/SpellChecker/class.tx_rtehtmlarea_spellchecker.php =================================================================== --- typo3/sysext/rtehtmlarea/extensions/SpellChecker/class.tx_rtehtmlarea_spellchecker.php (révision 7269) +++ typo3/sysext/rtehtmlarea/extensions/SpellChecker/class.tx_rtehtmlarea_spellchecker.php (copie de travail) @@ -2,7 +2,7 @@ /*************************************************************** * Copyright notice * -* (c) 2008-2209 Stanislas Rolland +* (c) 2008-2010 Stanislas Rolland * All rights reserved * * This script is part of the Typo3 project. The Typo3 project is @@ -96,15 +96,12 @@ RTEarea['.$RTEcounter.'].buttons.'. $button .'.spellCheckerMode = "' . $spellCheckerMode .'"; RTEarea['.$RTEcounter.'].buttons.'. $button .'.enablePersonalDicts = ' . ($enablePersonalDicts ? 'true' : 'false') .';'; $registerRTEinJavascriptString .= ' - RTEarea['.$RTEcounter.'].buttons.'. $button .'.path = "' . ($this->htmlAreaRTE->is_FE() ? t3lib_div::getIndpEnv('TYPO3_SITE_URL') . '/index.php?eID=rtehtmlarea_spellchecker' : substr(t3lib_div::getIndpEnv('TYPO3_SITE_URL'), strlen(t3lib_div::getIndpEnv('TYPO3_REQUEST_HOST'))) . TYPO3_mainDir . 'ajax.php?ajaxID=rtehtmlarea::spellchecker') . '";'; + RTEarea['.$RTEcounter.'].buttons.'. $button .'.path = "' . ($this->htmlAreaRTE->is_FE() ? ($GLOBALS['TSFE']->absRefPrefix ? $GLOBALS['TSFE']->absRefPrefix : '') . 'index.php?eID=rtehtmlarea_spellchecker' : 'ajax.php?ajaxID=rtehtmlarea::spellchecker') . '";'; } return $registerRTEinJavascriptString; } - -} // end of class - +} if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/extensions/SpellChecker/class.tx_rtehtmlarea_spellchecker.php']) { include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/extensions/SpellChecker/class.tx_rtehtmlarea_spellchecker.php']); } - ?> \ No newline at end of file Index: typo3/sysext/rtehtmlarea/extensions/TYPO3HtmlParser/class.tx_rtehtmlarea_typo3htmlparser.php =================================================================== --- typo3/sysext/rtehtmlarea/extensions/TYPO3HtmlParser/class.tx_rtehtmlarea_typo3htmlparser.php (révision 7269) +++ typo3/sysext/rtehtmlarea/extensions/TYPO3HtmlParser/class.tx_rtehtmlarea_typo3htmlparser.php (copie de travail) @@ -2,7 +2,7 @@ /*************************************************************** * Copyright notice * -* (c) 2008-2009 Stanislas Rolland +* (c) 2008-2010 Stanislas Rolland * All rights reserved * * This script is part of the Typo3 project. The Typo3 project is @@ -90,11 +90,8 @@ public function applyToolbarConstraints($show) { return array_unique(array_merge($show, t3lib_div::trimExplode(',', $this->pluginButtons))); } - -} // end of class - +} if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/extensions/TYPO3HtmlParser/class.tx_rtehtmlarea_typo3htmlparser.php']) { include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/extensions/TYPO3HtmlParser/class.tx_rtehtmlarea_typo3htmlparser.php']); } - ?> \ No newline at end of file Index: typo3/sysext/rtehtmlarea/extensions/TYPO3Image/class.tx_rtehtmlarea_typo3image.php =================================================================== --- typo3/sysext/rtehtmlarea/extensions/TYPO3Image/class.tx_rtehtmlarea_typo3image.php (révision 7269) +++ typo3/sysext/rtehtmlarea/extensions/TYPO3Image/class.tx_rtehtmlarea_typo3image.php (copie de travail) @@ -75,16 +75,12 @@ RTEarea['.$RTEcounter.']["buttons"]["'. $button .'"] = new Object();'; } $registerRTEinJavascriptString .= ' - RTEarea['.$RTEcounter.'].buttons.'. $button .'.pathImageModule = "../../mod4/select_image.php";'; + RTEarea['.$RTEcounter.'].buttons.'. $button .'.pathImageModule = "' . $this->htmlAreaRTE->extHttpPath . 'mod4/select_image.php";'; } - return $registerRTEinJavascriptString; } - -} // end of class - +} if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/extensions/TYPO3Image/class.tx_rtehtmlarea_typo3image.php']) { include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/extensions/TYPO3Image/class.tx_rtehtmlarea_typo3image.php']); } - ?> \ No newline at end of file Index: typo3/sysext/rtehtmlarea/extensions/TYPO3Link/class.tx_rtehtmlarea_typo3link.php =================================================================== --- typo3/sysext/rtehtmlarea/extensions/TYPO3Link/class.tx_rtehtmlarea_typo3link.php (révision 7269) +++ typo3/sysext/rtehtmlarea/extensions/TYPO3Link/class.tx_rtehtmlarea_typo3link.php (copie de travail) @@ -2,7 +2,7 @@ /*************************************************************** * Copyright notice * -* (c) 2008-2009 Stanislas Rolland +* (c) 2008-2010 Stanislas Rolland * All rights reserved * * This script is part of the Typo3 project. The Typo3 project is @@ -76,7 +76,7 @@ RTEarea['.$RTEcounter.'].buttons.'. $button .' = new Object();'; } $registerRTEinJavascriptString .= ' - RTEarea['.$RTEcounter.'].buttons.'. $button .'.pathLinkModule = "../../mod3/browse_links.php";'; + RTEarea['.$RTEcounter.'].buttons.'. $button .'.pathLinkModule = "' . $this->htmlAreaRTE->extHttpPath . 'mod3/browse_links.php";'; if ($this->htmlAreaRTE->is_FE()) { $RTEProperties = $this->htmlAreaRTE->RTEsetup; @@ -149,11 +149,8 @@ return $show; } } - -} // end of class - +} if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/extensions/TYPO3Link/class.tx_rtehtmlarea_typo3link.php']) { include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/extensions/TYPO3Link/class.tx_rtehtmlarea_typo3link.php']); } - ?> \ No newline at end of file Index: typo3/sysext/rtehtmlarea/extensions/UserElements/class.tx_rtehtmlarea_userelements.php =================================================================== --- typo3/sysext/rtehtmlarea/extensions/UserElements/class.tx_rtehtmlarea_userelements.php (révision 7269) +++ typo3/sysext/rtehtmlarea/extensions/UserElements/class.tx_rtehtmlarea_userelements.php (copie de travail) @@ -2,7 +2,7 @@ /*************************************************************** * Copyright notice * -* (c) 2008-2009 Stanislas Rolland +* (c) 2008-2010 Stanislas Rolland * All rights reserved * * This script is part of the Typo3 project. The Typo3 project is @@ -24,7 +24,7 @@ /** * User Elements extension for htmlArea RTE * - * @author Stanislas Rolland + * @author Stanislas Rolland * * TYPO3 SVN ID: $Id$ * @@ -69,16 +69,12 @@ RTEarea['.$RTEcounter.'].buttons.'. $button .' = new Object();'; } $registerRTEinJavascriptString .= ' - RTEarea['.$RTEcounter.'].buttons.'. $button .'.pathUserModule = "../../mod5/user.php";'; + RTEarea['.$RTEcounter.'].buttons.'. $button .'.pathUserModule = "' . $this->htmlAreaRTE->extHttpPath . 'mod5/user.php";'; } - return $registerRTEinJavascriptString; } - -} // end of class - +} if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/extensions/UserElements/class.tx_rtehtmlarea_userelements.php']) { include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/extensions/UserElements/class.tx_rtehtmlarea_userelements.php']); } - ?> \ No newline at end of file Index: typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js =================================================================== --- typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js (révision 7269) +++ typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js (copie de travail) @@ -33,214 +33,126 @@ * * TYPO3 SVN ID: $Id$ */ - // Avoid re-starting on Ajax request + // Avoid re-initialization on AJax call when HTMLArea object was already initialized if (typeof(HTMLArea) == 'undefined') { // Establish HTMLArea name space Ext.namespace('HTMLArea.util.TYPO3', 'HTMLArea.util.Tips', 'HTMLArea.util.Color', 'Ext.ux.form', 'Ext.ux.menu', 'Ext.ux.Toolbar'); + // Establish some constants +Ext.apply(HTMLArea, { + // Browser identification + is_gecko : Ext.isGecko || Ext.isOpera || Ext.isWebKit, + is_ff2 : Ext.isGecko2, + is_ie : Ext.isIE, + is_safari : Ext.isWebKit, + is_chrome : Ext.isChrome, + is_opera : Ext.isOpera, + // Some operations require bug fixes provided by Opera 10 (Presto 2.2) + is_opera9 : Ext.isOpera && navigator.userAgent.toLowerCase().indexOf('presto/2.1') != -1, + // Compile some regular expressions + RE_tagName : /(<\/|<)\s*([^ \t\n>]+)/ig, + RE_head : /((.|\n)*?)<\/head>/i, + RE_body : /((.|\n)*?)<\/body>/i, + Reg_body : new RegExp('<\/?(body)[^>]*>', 'gi'), + reservedClassNames : /htmlarea/, + RE_email : /([0-9a-z]+([a-z0-9_-]*[0-9a-z])*){1}(\.[0-9a-z]+([a-z0-9_-]*[0-9a-z])*)*@([0-9a-z]+([a-z0-9_-]*[0-9a-z])*\.)+[a-z]{2,9}/i, + RE_url : /(([^:/?#]+):\/\/)?(([a-z0-9_]+:[a-z0-9_]+@)?[a-z0-9_-]{2,}(\.[a-z0-9_-]{2,})+\.[a-z]{2,5}(:[0-9]+)?(\/\S+)*)/i, + RE_blockTags : /^(body|p|h1|h2|h3|h4|h5|h6|ul|ol|pre|dl|dt|dd|div|noscript|blockquote|form|hr|table|caption|fieldset|address|td|tr|th|li|tbody|thead|tfoot|iframe)$/, + RE_closingTags : /^(p|blockquote|a|li|ol|ul|dl|dt|td|th|tr|tbody|thead|tfoot|caption|colgroup|table|div|b|bdo|big|cite|code|del|dfn|em|i|ins|kbd|label|q|samp|small|span|strike|strong|sub|sup|tt|u|var|abbr|acronym|font|center|object|embed|style|script|title|head)$/, + RE_noClosingTag : /^(img|br|hr|col|input|area|base|link|meta|param)$/ +}); /*************************************************** - * BROWSER IDENTIFICATION + * TROUBLESHOOTING ***************************************************/ -HTMLArea.agt = navigator.userAgent.toLowerCase(); -HTMLArea.is_opera = Ext.isOpera; -// Some operations require bug fixes provided by Opera 10 (Presto 2.2) -HTMLArea.is_opera9 = Ext.isOpera && HTMLArea.agt.indexOf("Presto/2.1") != -1; -HTMLArea.is_ie = Ext.isIE; -HTMLArea.is_safari = Ext.isWebKit; -HTMLArea.is_gecko = Ext.isGecko || Ext.isOpera || Ext.isWebKit; -HTMLArea.is_ff2 = Ext.isGecko2; -HTMLArea.is_chrome = Ext.isChrome; - -/* - * A log for troubleshooting - */ HTMLArea._appendToLog = function(str){ - if(HTMLArea._debugMode) { - var log = document.getElementById("HTMLAreaLog"); + if (HTMLArea.enableDebugMode) { + var log = document.getElementById('HTMLAreaLog'); if(log) { log.appendChild(document.createTextNode(str)); - log.appendChild(document.createElement("br")); + log.appendChild(document.createElement('br')); } } }; /*************************************************** - * SCRIPTS LOADING PROCESS + * HTMLArea INITIALIZATION ***************************************************/ -/* - * Build stack of scripts to be loaded - */ -HTMLArea.loadScript = function(url, pluginName, asynchronous) { - if (typeof(pluginName) == "undefined") { - var pluginName = ""; +HTMLArea.init = function() { + // Apply global configuration settings + Ext.apply(HTMLArea, RTEarea[0]); + Ext.applyIf(HTMLArea, { + editorSkin : HTMLArea.editorUrl + 'skins/default/', + editorCSS : HTMLArea.editorUrl + 'skins/default/htmlarea.css' + }); + if (!Ext.isString(HTMLArea.editedContentCSS)) { + HTMLArea.editedContentCSS = HTMLArea.editorSkin + 'htmlarea-edited-content.css'; } - if (typeof(asynchronous) == "undefined") { - var asynchronous = true; - } - if (Ext.isOpera) url = _typo3_host_url + url; - if (HTMLArea._compressedScripts && url.indexOf("compressed") == -1) url = url.replace(/\.js$/gi, "_compressed.js"); - var scriptInfo = { - pluginName : pluginName, - url : url, - asynchronous : asynchronous - }; - HTMLArea._scripts.push(scriptInfo); + // Initialize pending request flag for Opera + HTMLArea.pendingSynchronousXMLHttpRequest = false; + // Localization of core script + HTMLArea.I18N = HTMLArea_langArray; + HTMLArea.isReady = true; + HTMLArea._appendToLog("[HTMLArea::init]: Editor url set to: " + HTMLArea.editorUrl); + HTMLArea._appendToLog("[HTMLArea::init]: Editor skin CSS set to: " + HTMLArea.editorCSS); + HTMLArea._appendToLog("[HTMLArea::init]: Editor content skin CSS set to: " + HTMLArea.editedContentCSS); }; - +/*************************************************** + * SCRIPT LOADING + ***************************************************/ /* * Get a script using asynchronous XMLHttpRequest */ -HTMLArea.MSXML_XMLHTTP_PROGIDS = new Array("Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"); -HTMLArea.XMLHTTPResponseHandler = function (i) { +HTMLArea.MSXML_XMLHTTP_PROGIDS = new Array('Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP'); +HTMLArea.XMLHTTPResponseHandler = function (request, url) { return (function() { - var url = HTMLArea._scripts[i].url; - if (HTMLArea._request[i].readyState != 4) return; - if (HTMLArea._request[i].status == 200) { - try { - eval(HTMLArea._request[i].responseText); - HTMLArea._scriptLoaded[i] = true; - i = null; - } catch (e) { - HTMLArea._appendToLog("ERROR [HTMLArea::getScript]: Unable to get script " + url + ": " + e); + if (request.readyState == 4) { + if (request.status == 200) { + try { + eval(request.responseText); + } catch (e) { + HTMLArea._appendToLog('ERROR [HTMLArea::getScript]: Unable to get script ' + url + ': ' + e); + } + } else { + HTMLArea._appendToLog('ERROR [HTMLArea::getScript]: Unable to get ' + url + ' . Server reported ' + request.status); } - } else { - HTMLArea._appendToLog("ERROR [HTMLArea::getScript]: Unable to get " + url + " . Server reported " + HTMLArea._request[i].status); } }); }; HTMLArea._getScript = function (i,asynchronous,url) { - if (typeof(url) == "undefined") var url = HTMLArea._scripts[i].url; - if (typeof(asynchronous) == "undefined") var asynchronous = HTMLArea._scripts[i].asynchronous; - if (window.XMLHttpRequest) HTMLArea._request[i] = new XMLHttpRequest(); - else if (window.ActiveXObject) { - var success = false; - for (var k = 0; k < HTMLArea.MSXML_XMLHTTP_PROGIDS.length && !success; k++) { - try { - HTMLArea._request[i] = new ActiveXObject(HTMLArea.MSXML_XMLHTTP_PROGIDS[k]); - success = true; - } catch (e) { } - } - if (!success) return false; + if (typeof(asynchronous) == 'undefined') { + var asynchronous = true; + } + if (window.XMLHttpRequest) { + var request = new XMLHttpRequest(); + } else if (window.ActiveXObject) { + var success = false; + for (var k = 0; k < HTMLArea.MSXML_XMLHTTP_PROGIDS.length && !success; k++) { + try { + var request = new ActiveXObject(HTMLArea.MSXML_XMLHTTP_PROGIDS[k]); + success = true; + } catch (e) { } } - var request = HTMLArea._request[i]; + if (!success) { + return false; + } + } if (request) { - HTMLArea._appendToLog("[HTMLArea::getScript]: Requesting script " + url); - request.open("GET", url, asynchronous); - if (asynchronous) request.onreadystatechange = HTMLArea.XMLHTTPResponseHandler(i); - if (window.XMLHttpRequest) request.send(null); - else if (window.ActiveXObject) request.send(); + HTMLArea._appendToLog('[HTMLArea::getScript]: Requesting script ' + url); + request.open('GET', url, asynchronous); + if (asynchronous) { + request.onreadystatechange = HTMLArea.XMLHTTPResponseHandler(request, url); + } + if (window.XMLHttpRequest) { + request.send(null); + } else if (window.ActiveXObject) { + request.send(); + } if (!asynchronous) { - if (request.status == 200) return request.responseText; - else return ''; + return (request.status == 200 ? request.responseText : ''); } return true; } else { return false; } }; - -/* - * Wait for the loading process to complete - */ -HTMLArea.checkInitialLoad = function() { - var scriptsLoaded = true; - for (var i = HTMLArea._scripts.length; --i >= 0;) { - scriptsLoaded = scriptsLoaded && HTMLArea._scriptLoaded[i]; - } - if(HTMLArea.loadTimer) window.clearTimeout(HTMLArea.loadTimer); - if (scriptsLoaded) { - HTMLArea.is_loaded = true; - HTMLArea._appendToLog("[HTMLArea::init]: All scripts successfully loaded."); - HTMLArea._appendToLog("[HTMLArea::init]: Editor url set to: " + _editor_url); - HTMLArea._appendToLog("[HTMLArea::init]: Editor skin CSS set to: " + _editor_CSS); - HTMLArea._appendToLog("[HTMLArea::init]: Editor content skin CSS set to: " + _editor_edited_content_CSS); - if (window.ActiveXObject) { - for (var i = HTMLArea._scripts.length; --i >= 0;) { - HTMLArea._request[i].onreadystatechange = new Function(); - HTMLArea._request[i] = null; - } - } - } else { - HTMLArea.loadTimer = window.setTimeout("HTMLArea.checkInitialLoad();", 200); - return false; - } -}; - -/* - * Initial load - */ -HTMLArea.init = function() { - if (typeof(_editor_url) != "string") { - window.setTimeout("HTMLArea.init();", 50); - } else { - // Set some basic paths - // Leave exactly one backslash at the end of _editor_url - _editor_url = _editor_url.replace(/\x2f*$/, '/'); - if (typeof(_editor_skin) == "string") _editor_skin = _editor_skin.replace(/\x2f*$/, '/'); - else _editor_skin = _editor_url + "skins/default/"; - if (typeof(_editor_CSS) != "string") _editor_CSS = _editor_url + "skins/default/htmlarea.css"; - if (typeof(_editor_edited_content_CSS) != "string") _editor_edited_content_CSS = _editor_skin + "htmlarea-edited-content.css"; - if (typeof(_editor_lang) == "string") _editor_lang = _editor_lang ? _editor_lang.toLowerCase() : "en"; - HTMLArea.editorCSS = _editor_CSS; - // Initialize pending request flag - HTMLArea.pendingSynchronousXMLHttpRequest = false; - // Set troubleshooting mode - HTMLArea._debugMode = false; - if (typeof(_editor_debug_mode) != "undefined") HTMLArea._debugMode = _editor_debug_mode; - // Using compressed scripts - HTMLArea._compressedScripts = false; - if (typeof(_editor_compressed_scripts) != "undefined") HTMLArea._compressedScripts = _editor_compressed_scripts; - // Localization of core script - HTMLArea.I18N = HTMLArea_langArray; - // Build array of scripts to be loaded - HTMLArea.is_loaded = false; - HTMLArea.loadTimer; - HTMLArea._scripts = []; - HTMLArea._scriptLoaded = []; - HTMLArea._request = []; - if (!Ext.isIE) HTMLArea.loadScript(RTEarea[0]["htmlarea-gecko"] ? RTEarea[0]["htmlarea-gecko"] : _editor_url + "htmlarea-gecko.js"); - if (Ext.isIE) HTMLArea.loadScript(RTEarea[0]["htmlarea-ie"] ? RTEarea[0]["htmlarea-ie"] : _editor_url + "htmlarea-ie.js"); - for (var i = 0, n = HTMLArea_plugins.length; i < n; i++) { - HTMLArea.loadScript(HTMLArea_plugins[i].url, "", HTMLArea_plugins[i].asynchronous); - } - // Get all the scripts - if (window.XMLHttpRequest || window.ActiveXObject) { - try { - var success = true; - for (var i = 0, n = HTMLArea._scripts.length; i < n && success; i++) { - if (HTMLArea._scripts[i].asynchronous) { - success = success && HTMLArea._getScript(i); - } else { - try { - eval(HTMLArea._getScript(i)); - HTMLArea._scriptLoaded[i] = true; - } catch (e) { - HTMLArea._appendToLog("ERROR [HTMLArea::getScript]: Unable to get script " + url + ": " + e); - } - } - } - } catch (e) { - HTMLArea._appendToLog("ERROR [HTMLArea::init]: Unable to use XMLHttpRequest: "+ e); - } - if (success) { - HTMLArea.checkInitialLoad(); - } else { - if (Ext.isIE) window.setTimeout('alert(HTMLArea.I18N.msg["ActiveX-required"]);', 200); - } - } else { - if (Ext.isIE) alert(HTMLArea.I18N.msg["ActiveX-required"]); - } - } -}; - -/* - * Compile some regular expressions - */ -HTMLArea.RE_tagName = /(<\/|<)\s*([^ \t\n>]+)/ig; -HTMLArea.RE_head = /((.|\n)*?)<\/head>/i; -HTMLArea.RE_body = /((.|\n)*?)<\/body>/i; -HTMLArea.Reg_body = new RegExp("<\/?(body)[^>]*>", "gi"); -HTMLArea.reservedClassNames = /htmlarea/; -HTMLArea.RE_email = /([0-9a-z]+([a-z0-9_-]*[0-9a-z])*){1}(\.[0-9a-z]+([a-z0-9_-]*[0-9a-z])*)*@([0-9a-z]+([a-z0-9_-]*[0-9a-z])*\.)+[a-z]{2,9}/i; -HTMLArea.RE_url = /(([^:/?#]+):\/\/)?(([a-z0-9_]+:[a-z0-9_]+@)?[a-z0-9_-]{2,}(\.[a-z0-9_-]{2,})+\.[a-z]{2,5}(:[0-9]+)?(\/\S+)*)/i; /*************************************************** * EDITOR CONFIGURATION ***************************************************/ @@ -255,7 +167,7 @@ this.disableObjectResizing = false; this.removeTrailingBR = false; // style included in the iframe document - this.editedContentStyle = _editor_edited_content_CSS; + this.editedContentStyle = HTMLArea.editedContentCSS; // content style this.pageStyle = ""; // remove tags (these have to be a regexp, or null if this functionality is not desired) @@ -272,7 +184,6 @@ this.baseURL = RegExp.$1 + "/"; } // URL-s - this.imgURL = "images/"; this.popupURL = "popups/"; // DocumentType this.documentType = ':o', title: this.localize('mozilla_yell')}, - { file: this.editor_url + 'plugins/InsertSmiley/smileys/' + 'mozilla_cool' + '.png', alt: '8-)', title: this.localize('mozilla_cool')}, - { file: this.editor_url + 'plugins/InsertSmiley/smileys/' + 'mozilla_moneyinmouth' + '.png', alt: ':-$', title: this.localize('mozilla_moneyinmouth')}, - { file: this.editor_url + 'plugins/InsertSmiley/smileys/' + 'mozilla_footinmouth' + '.png', alt: ':-!', title: this.localize('mozilla_footinmouth')}, - { file: this.editor_url + 'plugins/InsertSmiley/smileys/' + 'mozilla_innocent' + '.png', alt: 'O:-)', title: this.localize('mozilla_innocent')}, - { file: this.editor_url + 'plugins/InsertSmiley/smileys/' + 'mozilla_cry' + '.png', alt: ':\'(', title: this.localize('mozilla_cry')}, - { file: this.editor_url + 'plugins/InsertSmiley/smileys/' + 'mozilla_sealed' + '.png', alt: ':-X', title: this.localize('mozilla_sealed')} + { file: HTMLArea.editorUrl + 'plugins/InsertSmiley/smileys/' + 'mozilla_smile' + '.png', alt: ':-)', title: this.localize('mozilla_smile')}, + { file: HTMLArea.editorUrl + 'plugins/InsertSmiley/smileys/' + 'mozilla_frown' + '.png', alt: ':-(', title: this.localize('mozilla_frown')}, + { file: HTMLArea.editorUrl + 'plugins/InsertSmiley/smileys/' + 'mozilla_wink' + '.png', alt: ';-)', title: this.localize('mozilla_wink')}, + { file: HTMLArea.editorUrl + 'plugins/InsertSmiley/smileys/' + 'mozilla_tongueout' + '.png', alt: ':-P', title: this.localize('mozilla_tongueout')}, + { file: HTMLArea.editorUrl + 'plugins/InsertSmiley/smileys/' + 'mozilla_laughing' + '.png', alt: ':-D', title: this.localize('mozilla_laughing')}, + { file: HTMLArea.editorUrl + 'plugins/InsertSmiley/smileys/' + 'mozilla_embarassed' + '.png', alt: ':-[', title: this.localize('mozilla_embarassed')}, + { file: HTMLArea.editorUrl + 'plugins/InsertSmiley/smileys/' + 'mozilla_undecided' + '.png', alt: ':-\\', title: this.localize('mozilla_undecided')}, + { file: HTMLArea.editorUrl + 'plugins/InsertSmiley/smileys/' + 'mozilla_surprised' + '.png', alt: '=-O', title: this.localize('mozilla_surprised')}, + { file: HTMLArea.editorUrl + 'plugins/InsertSmiley/smileys/' + 'mozilla_kiss' + '.png', alt: ':-*', title: this.localize('mozilla_kiss')}, + { file: HTMLArea.editorUrl + 'plugins/InsertSmiley/smileys/' + 'mozilla_yell' + '.png', alt: '>:o', title: this.localize('mozilla_yell')}, + { file: HTMLArea.editorUrl + 'plugins/InsertSmiley/smileys/' + 'mozilla_cool' + '.png', alt: '8-)', title: this.localize('mozilla_cool')}, + { file: HTMLArea.editorUrl + 'plugins/InsertSmiley/smileys/' + 'mozilla_moneyinmouth' + '.png', alt: ':-$', title: this.localize('mozilla_moneyinmouth')}, + { file: HTMLArea.editorUrl + 'plugins/InsertSmiley/smileys/' + 'mozilla_footinmouth' + '.png', alt: ':-!', title: this.localize('mozilla_footinmouth')}, + { file: HTMLArea.editorUrl + 'plugins/InsertSmiley/smileys/' + 'mozilla_innocent' + '.png', alt: 'O:-)', title: this.localize('mozilla_innocent')}, + { file: HTMLArea.editorUrl + 'plugins/InsertSmiley/smileys/' + 'mozilla_cry' + '.png', alt: ':\'(', title: this.localize('mozilla_cry')}, + { file: HTMLArea.editorUrl + 'plugins/InsertSmiley/smileys/' + 'mozilla_sealed' + '.png', alt: ':-X', title: this.localize('mozilla_sealed')} ]; /* * Registering plugin "About" information Index: typo3/sysext/rtehtmlarea/htmlarea/plugins/SpellChecker/spell-checker.js =================================================================== --- typo3/sysext/rtehtmlarea/htmlarea/plugins/SpellChecker/spell-checker.js (révision 7269) +++ typo3/sysext/rtehtmlarea/htmlarea/plugins/SpellChecker/spell-checker.js (copie de travail) @@ -109,7 +109,7 @@ 'Spell Checker', this.getWindowDimensions( { - width: 710, + width: 740, height: 600 }, buttonId @@ -207,7 +207,7 @@ name: 'contentframe', tag: 'iframe', cls: 'contentframe', - src: Ext.isGecko ? 'javascript:void(0);' : (Ext.isOpera ? _typo3_host_url : '') + _editor_url + 'popups/blank.html' + src: Ext.isGecko ? 'javascript:void(0);' : HTMLArea.editorUrl + 'popups/blank.html' } },{ // The original word @@ -654,7 +654,7 @@ select.setValue(store.getAt(0).get('value')); select.fireEvent('select', select, store.getAt(0), 0); } else { - this.dialog.find('itemId', 'replacement')[0].setVvalue(this.currentElement.innerHTML); + this.dialog.find('itemId', 'replacement')[0].setValue(this.currentElement.innerHTML); } return false; }, Index: typo3/sysext/rtehtmlarea/mod6/class.tx_rtehtmlarea_parse_html.php =================================================================== --- typo3/sysext/rtehtmlarea/mod6/class.tx_rtehtmlarea_parse_html.php (révision 7269) +++ typo3/sysext/rtehtmlarea/mod6/class.tx_rtehtmlarea_parse_html.php (copie de travail) @@ -2,7 +2,7 @@ /*************************************************************** * Copyright notice * -* (c) 2005-2009 Stanislas Rolland +* (c) 2005-2010 Stanislas Rolland * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is @@ -27,7 +27,7 @@ /** * Content parsing for htmlArea RTE * - * @author Stanislas Rolland + * @author Stanislas Rolland * * $Id$ * */ @@ -138,14 +138,10 @@ } } } - return $html; } - } - if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/mod6/class.tx_rtehtmlarea_parse_html.php']) { include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/mod6/class.tx_rtehtmlarea_parse_html.php']); } - ?> \ No newline at end of file Index: typo3/sysext/rtehtmlarea/pi2/class.tx_rtehtmlarea_pi2.php =================================================================== --- typo3/sysext/rtehtmlarea/pi2/class.tx_rtehtmlarea_pi2.php (révision 7269) +++ typo3/sysext/rtehtmlarea/pi2/class.tx_rtehtmlarea_pi2.php (copie de travail) @@ -31,16 +31,12 @@ * * $Id$ * */ - require_once(t3lib_extMgm::extPath('rtehtmlarea').'class.tx_rtehtmlarea_base.php'); - class tx_rtehtmlarea_pi2 extends tx_rtehtmlarea_base { // External: - var $RTEWrapStyle = ''; // Alternative style for RTE wrapper
tag. - var $RTEdivStyle = ''; // Alternative style for RTE
tag. - var $extHttpPath; // full Path to this extension for http (so no Server path). It ends with "/" - public $httpTypo3Path; + public $RTEWrapStyle = ''; // Alternative style for RTE wrapper
tag. + public $RTEdivStyle = ''; // Alternative style for RTE
tag. // For the editor var $elementId; @@ -82,21 +78,12 @@ * INIT THE EDITOR-SETTINGS * ======================================= */ - - // first get the http-path to typo3: - $this->httpTypo3Path = substr( substr( t3lib_div::getIndpEnv('TYPO3_SITE_URL'), strlen( t3lib_div::getIndpEnv('TYPO3_REQUEST_HOST') ) ), 0, -1 ); - if (strlen($this->httpTypo3Path) == 1) { - $this->httpTypo3Path = '/'; - } else { - $this->httpTypo3Path .= '/'; - } // Get the path to this extension: - $this->extHttpPath = $this->httpTypo3Path.t3lib_extMgm::siteRelPath($this->ID); + $this->extHttpPath = t3lib_extMgm::siteRelPath($this->ID); // Get the site URL $this->siteURL = t3lib_div::getIndpEnv('TYPO3_SITE_URL'); // Get the host URL - $this->hostURL = t3lib_div::getIndpEnv('TYPO3_REQUEST_HOST'); - + $this->hostURL = ''; // Element ID + pid $this->elementId = $PA['itemFormElName']; $this->elementParts[0] = $table; @@ -123,12 +110,10 @@ $this->specConf = $specConf; if ($this->thisConfig['forceHTTPS']) { - $this->httpTypo3Path = preg_replace('/^(http|https)/', 'https', $this->httpTypo3Path); $this->extHttpPath = preg_replace('/^(http|https)/', 'https', $this->extHttpPath); $this->siteURL = preg_replace('/^(http|https)/', 'https', $this->siteURL); $this->hostURL = preg_replace('/^(http|https)/', 'https', $this->hostURL); } - /* ======================================= * LANGUAGES & CHARACTER SETS * ======================================= @@ -312,9 +297,7 @@ }'; } } - -if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/pi2/class.tx_rtehtmlarea_pi2.php']) { +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']); } - ?> \ No newline at end of file