Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vova07/yii2-imperavi-widget
Imperavi Redactor widget for Yii 2
https://github.com/vova07/yii2-imperavi-widget
editor imperavi imperavi-redactor redactor-editor widget yii2 yii2-widgets
Last synced: 5 days ago
JSON representation
Imperavi Redactor widget for Yii 2
- Host: GitHub
- URL: https://github.com/vova07/yii2-imperavi-widget
- Owner: vova07
- License: other
- Created: 2014-06-04T14:56:43.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2022-05-29T04:05:43.000Z (over 2 years ago)
- Last Synced: 2024-12-22T08:05:42.896Z (12 days ago)
- Topics: editor, imperavi, imperavi-redactor, redactor-editor, widget, yii2, yii2-widgets
- Language: JavaScript
- Size: 1.24 MB
- Stars: 247
- Watchers: 24
- Forks: 99
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Imperavi Redactor Widget for Yii 2
[![Latest Version](https://img.shields.io/github/tag/vova07/yii2-imperavi-widget.svg?style=flat-square&label=release)](https://github.com/vova07/yii2-imperavi-widget/releases)
[![Software License](https://img.shields.io/badge/license-BSD-brightgreen.svg?style=flat-square)](LICENSE.md)
[![Build Status](https://img.shields.io/travis/vova07/yii2-imperavi-widget/master.svg?style=flat-square)](https://travis-ci.org/vova07/yii2-imperavi-widget)
[![Coverage Status](https://img.shields.io/scrutinizer/coverage/g/vova07/yii2-imperavi-widget.svg?style=flat-square)](https://scrutinizer-ci.com/g/vova07/yii2-imperavi-widget/code-structure)
[![Quality Score](https://img.shields.io/scrutinizer/g/vova07/yii2-imperavi-widget.svg?style=flat-square)](https://scrutinizer-ci.com/g/vova07/yii2-imperavi-widget)
[![Total Downloads](https://img.shields.io/packagist/dt/vova07/yii2-imperavi-widget.svg?style=flat-square)](https://packagist.org/packages/vova07/yii2-imperavi-widget)`Imperavi Redactor Widget` is a wrapper for [Imperavi Redactor 10.2.5](https://imperavi.com/assets/pdf/redactor-documentation-10.pdf),
a high quality WYSIWYG editor.**Note that Imperavi Redactor itself is a proprietary commercial copyrighted software
but since Yii community bought OEM license you can use it for free with Yii.**## Install
The preferred way to install this extension is through [composer](http://getcomposer.org/download/).
Either run
```bash
$ php composer.phar require --prefer-dist vova07/yii2-imperavi-widget "*"
```or add
```json
"vova07/yii2-imperavi-widget": "*"
```to the `require` section of your `composer.json` file.
## Usage
Once the extension is installed, simply use it in your code:
### Like a widget
```php
echo \vova07\imperavi\Widget::widget([
'name' => 'redactor',
'settings' => [
'lang' => 'ru',
'minHeight' => 200,
'plugins' => [
'clips',
'fullscreen',
],
'clips' => [
['Lorem ipsum...', 'Lorem...'],
['red', 'red'],
['green', 'green'],
['blue', 'blue'],
],
],
]);
```### Like an ActiveForm widget
```php
use vova07\imperavi\Widget;echo $form->field($model, 'content')->widget(Widget::className(), [
'settings' => [
'lang' => 'ru',
'minHeight' => 200,
'plugins' => [
'clips',
'fullscreen',
],
'clips' => [
['Lorem ipsum...', 'Lorem...'],
['red', 'red'],
['green', 'green'],
['blue', 'blue'],
],
],
]);
```### Like a widget for a predefined textarea
```php
echo \vova07\imperavi\Widget::widget([
'selector' => '#my-textarea-id',
'settings' => [
'lang' => 'ru',
'minHeight' => 200,
'plugins' => [
'clips',
'fullscreen',
],
'clips' => [
['Lorem ipsum...', 'Lorem...'],
['red', 'red'],
['green', 'green'],
['blue', 'blue'],
],
],
]);
```### Add images that have already been uploaded
```php
// DefaultController.php
public function actions()
{
return [
'images-get' => [
'class' => 'vova07\imperavi\actions\GetImagesAction',
'url' => 'http://my-site.com/images/', // Directory URL address, where files are stored.
'path' => '@alias/to/my/path', // Or absolute path to directory where files are stored.
'options' => ['only' => ['*.jpg', '*.jpeg', '*.png', '*.gif', '*.ico']], // These options are by default.
],
];
}// View.php
echo \vova07\imperavi\Widget::widget([
'selector' => '#my-textarea-id',
'settings' => [
'lang' => 'ru',
'minHeight' => 200,
'imageUpload' => Url::to(['default/image-upload']),
'imageManagerJson' => Url::to(['/default/images-get']),
'plugins' => [
'imagemanager',
],
],
]);
```### Add files that have already been uploaded
```php
// DefaultController.php
public function actions()
{
return [
'files-get' => [
'class' => 'vova07\imperavi\actions\GetFilesAction',
'url' => 'http://my-site.com/files/', // Directory URL address, where files are stored.
'path' => '@alias/to/my/path', // Or absolute path to directory where files are stored.
'options' => ['only' => ['*.txt', '*.md']], // These options are by default.
],
];
}// View.php
echo \vova07\imperavi\Widget::widget([
'selector' => '#my-textarea-id',
'settings' => [
'lang' => 'ru',
'minHeight' => 200,
'fileUpload' => Url::to(['default/file-upload']),
'fileManagerJson' => Url::to(['/default/files-get']),
'plugins' => [
'filemanager',
],
],
]);
```### Upload image
```php
// DefaultController.php
public function actions()
{
return [
'image-upload' => [
'class' => 'vova07\imperavi\actions\UploadFileAction',
'url' => 'http://my-site.com/images/', // Directory URL address, where files are stored.
'path' => '@alias/to/my/path', // Or absolute path to directory where files are stored.
],
];
}// View.php
echo \vova07\imperavi\Widget::widget([
'selector' => '#my-textarea-id',
'settings' => [
'lang' => 'ru',
'minHeight' => 200,
'imageUpload' => Url::to(['/default/image-upload']),
'plugins' => [
'imagemanager',
],
],
]);
```### Upload file
```php
// DefaultController.php
public function actions()
{
return [
'file-upload' => [
'class' => 'vova07\imperavi\actions\UploadFileAction',
'url' => 'http://my-site.com/files/', // Directory URL address, where files are stored.
'path' => '@alias/to/my/path', // Or absolute path to directory where files are stored.
'uploadOnlyImage' => false, // For any kind of files uploading.
],
];
}// View.php
echo \vova07\imperavi\Widget::widget([
'selector' => '#my-textarea-id',
'settings' => [
'lang' => 'ru',
'minHeight' => 200,
'fileUpload' => Url::to(['/default/file-upload']),
'plugins' => [
'filemanager',
],
],
]);
```### Upload and replace a file with the same name
```php
// DefaultController.php
public function actions()
{
return [
'file-upload' => [
'class' => 'vova07\imperavi\actions\UploadFileAction',
'url' => 'http://my-site.com/files/', // Directory URL address, where files are stored.
'path' => '@alias/to/my/path', // Or absolute path to directory where files are stored.
'uploadOnlyImage' => false, // For any kind of files uploading.
'unique' => false,
'replace' => true, // By default it throw an excepiton instead.
],
];
}// View.php
echo \vova07\imperavi\Widget::widget([
'selector' => '#my-textarea-id',
'settings' => [
'lang' => 'ru',
'minHeight' => 200,
'fileUpload' => Url::to(['/default/file-upload']),
'plugins' => [
'filemanager',
],
],
]);
```### Upload file and *translit* its name
```php
// DefaultController.php
public function actions()
{
return [
'file-upload' => [
'class' => 'vova07\imperavi\actions\UploadFileAction',
'url' => 'http://my-site.com/files/', // Directory URL address, where files are stored.
'path' => '@alias/to/my/path', // Or absolute path to directory where files are stored.
'uploadOnlyImage' => false, // For any kind of files uploading.
'unique' => false,
'translit' => true,
],
];
}// View.php
echo \vova07\imperavi\Widget::widget([
'selector' => '#my-textarea-id',
'settings' => [
'lang' => 'ru',
'minHeight' => 200,
'fileUpload' => Url::to(['/default/file-upload']),
'plugins' => [
'filemanager',
],
]
]);
```### Add custom plugins
```php
echo \vova07\imperavi\Widget::widget([
'selector' => '#my-textarea-id',
'settings' => [
'lang' => 'ru',
'minHeight' => 200,
'plugins' => [
'clips',
'fullscreen'
]
],
'plugins' => [
'my-custom-plugin' => 'app\assets\MyPluginBundle',
],
]);
```### Enable custom image manager with delete functionality
```php
// DefaultController.php
public function actions()
{
return [
'images-get' => [
'class' => 'vova07\imperavi\actions\GetImagesAction',
'url' => 'http://my-site.com/images/', // Directory URL address, where files are stored.
'path' => '@alias/to/my/path', // Or absolute path to directory where files are stored.
],
'image-upload' => [
'class' => 'vova07\imperavi\actions\UploadFileAction',
'url' => 'http://my-site.com/images/', // Directory URL address, where files are stored.
'path' => '@alias/to/my/path', // Or absolute path to directory where files are stored.
],
'file-delete' => [
'class' => 'vova07\imperavi\actions\DeleteFileAction',
'url' => 'http://my-site.com/statics/', // Directory URL address, where files are stored.
'path' => '/var/www/my-site.com/web/statics', // Or absolute path to directory where files are stored.
],
];
}// View.php
echo \vova07\imperavi\Widget::widget([
'selector' => '#my-textarea-id',
'settings' => [
'lang' => 'ru',
'minHeight' => 200,
'imageUpload' => Url::to(['/default/image-upload']),
'imageDelete' => Url::to(['/default/file-delete']),
'imageManagerJson' => Url::to(['/default/images-get']),
],
'plugins' => [
'imagemanager' => 'vova07\imperavi\bundles\ImageManagerAsset',
],
]);
```### Enable custom file manager with delete functionality
```php
// DefaultController.php
public function actions()
{
return [
'files-get' => [
'class' => 'vova07\imperavi\actions\GetFilesAction',
'url' => 'http://my-site.com/images/', // Directory URL address, where files are stored.
'path' => '@alias/to/my/path', // Or absolute path to directory where files are stored.
],
'file-upload' => [
'class' => 'vova07\imperavi\actions\UploadFileAction',
'url' => 'http://my-site.com/files/', // Directory URL address, where files are stored.
'path' => '@alias/to/my/path', // Or absolute path to directory where files are stored.
'uploadOnlyImage' => false, // For any kind of files uploading.
],
'file-delete' => [
'class' => 'vova07\imperavi\actions\DeleteFileAction',
'url' => 'http://my-site.com/statics/', // Directory URL address, where files are stored.
'path' => '/var/www/my-site.com/web/statics', // Or absolute path to directory where files are stored.
],
];
}// View.php
echo \vova07\imperavi\Widget::widget([
'selector' => '#my-textarea-id',
'settings' => [
'lang' => 'ru',
'minHeight' => 200,
'fileUpload' => Url::to(['/default/file-upload']),
'fileDelete' => Url::to(['/default/file-delete']),
'fileManagerJson' => Url::to(['/default/files-get']),
],
'plugins' => [
'filemanager' => 'vova07\imperavi\bundles\FileManagerAsset',
],
]);
```## Testing
``` bash
$ phpunit
```## Further Information
Please, check the [Imperavi Redactor v10](https://imperavi.com/assets/pdf/redactor-documentation-10.pdf) documentation for further information about its configuration options.
## Contributing
Please see [CONTRIBUTING](CONTRIBUTING.md) for details.
## Credits
- [Vasile Crudu](https://github.com/vova07)
- [All Contributors](../../contributors)## License
The BSD License (BSD). Please see [License File](LICENSE.md) for more information.
## Upgrade guide
Please check the [UPGRADE GUIDE](UPGRADE.md) for details.