alexantr / yii2-tinymce
TinyMCE widget for Yii 2
Installs: 21 866
Dependents: 2
Suggesters: 0
Security: 0
Stars: 5
Watchers: 1
Forks: 1
Open Issues: 3
Type:yii2-extension
Requires
- tinymce/tinymce: ^4.2|^5.0
- yiisoft/yii2: ~2.0.6
Requires (Dev)
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-12-20 23:35:22 UTC
README
This extension renders a TinyMCE widget for Yii framework 2.0.
Installation
Install extension through composer:
composer require alexantr/yii2-tinymce
Note: By default, the latest TinyMCE 5 will be installed. But you can install 4.x version manually:
composer require "tinymce/tinymce:^4.8"
Usage
The following code in a view file would render a TinyMCE widget:
<?= alexantr\tinymce\TinyMCE::widget(['name' => 'attributeName']) ?>
Configuring the TinyMCE options should be done
using the clientOptions
attribute:
<?= alexantr\tinymce\TinyMCE::widget([ 'name' => 'attributeName', 'clientOptions' => [ 'plugins' => [ 'anchor', 'charmap', 'code', 'help', 'hr', 'image', 'link', 'lists', 'media', 'paste', 'searchreplace', 'table', ], 'height' => 500, 'convert_urls' => false, 'element_format' => 'html', // ... ], ]) ?>
If you want to use the TinyMCE widget in an ActiveForm, it can be done like this:
<?= $form->field($model, 'attributeName')->widget(alexantr\tinymce\TinyMCE::className(), [ 'clientOptions' => [ // ... ], ]) ?>
Using presets
To avoid repeating identical configuration in every widget you can create preset in @app/config/tinymce.php
.
Options from widget's clientOptions
will be merged with this configuration.
Preset example:
<?php return [ 'plugins' => [ 'anchor', 'charmap', 'code', 'help', 'hr', 'image', 'link', 'lists', 'media', 'paste', 'searchreplace', 'table', ], 'height' => 500, 'convert_urls' => false, 'element_format' => 'html', 'image_caption' => true, 'keep_styles' => false, 'paste_block_drop' => true, 'table_default_attributes' => new yii\web\JsExpression('{}'), 'table_default_styles' => new yii\web\JsExpression('{}'), 'invalid_elements' => 'acronym,font,center,nobr,strike,noembed,script,noscript', 'extended_valid_elements' => 'strong/b,em/i,table[style]', // elFinder file manager https://github.com/alexantr/yii2-elfinder 'file_picker_callback' => alexantr\elfinder\TinyMCE::getFilePickerCallback(['elfinder/tinymce']), ];
You can change default path with presetPath
attribute:
<?= alexantr\tinymce\TinyMCE::widget([ 'name' => 'attributeName', 'presetPath' => '@backend/config/my-tinymce-config.php', 'clientOptions' => [ 'height' => 1000, ], ]) ?>