[TYPO3-project-formidable] TINYMCE renderlet adjustments
Jerome Schneider
typo3dev at ameos.com
Wed Feb 25 15:18:46 CET 2009
Hi !
I'm patching the file with your nice suggestions.
I would prefer to define the alternative tinymce path on
/config/tinymce_path instead of /tinymce/path to avoid the creation of
this new /tinymce tag. Would you agree ?
Regards,
Jerome
Jerome Schneider a écrit :
> Hi Hauke,
> I'll implement your proposition :)
>
> Regards,
> Jerome
>
> Hauke Hain a écrit :
>> Hello,
>>
>> liked written in the other posts by me I made a few adjustments to the
>> TINYMCE renderlet.
>>
>> You can choose the path to your tiny_mce integration.
>> This is useful if you use one extension which provides this editor, so
>> you have only one source to update for all implementations of TinyMCE.
>>
>> At the end of this post I added my new class.tx_rdttinymce.php. The
>> changes I made yesterday are included and improved.
>>
>> Since I don't know hat to make a *.patch oder *.diff I cannot post it.
>> Sorry. But you may tell me and I'll post it.
>>
>> In order to set the path to the mce use the following xml inside the
>> tinymce renderlet:
>> <tinymce>
>> <path>typo3conf/ext/tx_tinymce/tiny_mce/</path>
>> </tinymce>
>> It is important that the path end with a slash.
>>
>>
>>
>> <?php
>> /**
>> * Plugin 'rdt_tinymce' for the 'ameos_formidable' extension.
>> *
>> * @author Jerome Schneider <typo3dev at ameos.com>
>> */
>>
>> // FOR CONFIGURATON REFERENCE, SEE
>> // http://wiki.moxiecode.com/index.php/TinyMCE:Configuration
>>
>> class tx_rdttinymce extends formidable_mainrenderlet {
>>
>> function _render() {
>>
>> $sLabel = $this->oForm->_getLLLabel($this->aElement["label"]);
>> $sValue = htmlspecialchars(
>> $this->getValue()
>> );
>>
>> if(is_array($aUserConfig = $this->_navConf("/config")) &&
>> !empty($aUserConfig)) {
>> $sInput = "<textarea name=\"" . $this->_getElementHtmlName() . "\"
>> id=\"" . $this->_getElementHtmlId() . "\" rows='2' cols='20'
>> style=\"width:".$aUserConfig[width]."px;height:".$aUserConfig[height]."px\">"
>> . $sValue . "</textarea>";
>> } else {
>> $sInput = "<textarea name=\"" . $this->_getElementHtmlName() .
>> "\" id=\"" . $this->_getElementHtmlId() . "\" rows='2' cols='20'>" .
>> $sValue . "</textarea>";
>> }
>>
>> $aHtmlBag = array(
>> "__compiled" => $this->_displayLabel($sLabel) . $sInput,
>> "input" => $sInput,
>> );
>>
>> $sPath = $this->_navConf("/tinymce/path");
>>
>> if(empty($sPath)) {
>> $sPath = $this->sExtWebPath ."res/tiny_mce/";
>> }
>>
>> $this->oForm->additionalHeaderData(
>> "<script type='text/javascript' src='" . $sPath .
>> "tiny_mce.js'></script>",
>> "ameosformidable_tx_rdttinymce"
>> );
>>
>>
>> $aConfig = array(
>> "mode" => "exact",
>> "elements" => $this->_getElementHtmlId(),
>> );
>>
>> if(is_array($aUserConfig) && !empty($aUserConfig)) {
>> $aConfig = t3lib_div::array_merge_recursive_overrule($aUserConfig,
>> $aConfig);
>> }
>>
>> if(!array_key_exists("theme", $aConfig)) {
>> $aConfig["theme"] = "simple";
>> }
>>
>> if(array_key_exists("content_css", $aConfig)) {
>> $aConfig["content_css"] =
>> $this->oForm->toWebPath($aConfig["content_css"]);
>> }
>>
>> if(is_array($aAddConfig = $this->_navConf("/addconfig")) &&
>> $this->oForm->isRunneable($aAddConfig)) {
>> $aAddConfig = $this->callRunneable($aAddConfig);
>> if(is_array($aAddConfig) && !empty($aAddConfig)) {
>> $aConfig = t3lib_div::array_merge_recursive_overrule($aConfig,
>> $aAddConfig);
>> }
>> }
>>
>> // FOR CONFIGURATON REFERENCE, SEE
>> // http://wiki.moxiecode.com/index.php/TinyMCE:Configuration
>>
>> $sJson = $this->oForm->array2json($aConfig);
>>
>> $this->oForm->attachInitTask(
>> "tinyMCE.init(" . $sJson . ");",
>> "TinyMCE " . $this->_getElementHtmlId() . " initialization",
>> $this->_getElementHtmlId(),
>> TRUE
>> );
>>
>>
>>
>> return $aHtmlBag;
>> }
>> }
>>
>>
>> if (defined("TYPO3_MODE") &&
>> $TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/ameos_formidable/api/base/rdt_tinymce/api/class.tx_rdttinymce.php"])
>> {
>> include_once($TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/ameos_formidable/api/base/rdt_tinymce/api/class.tx_rdttinymce.php"]);
>>
>> }
>> ?>
More information about the TYPO3-project-formidable
mailing list