2amigos/yii2-ckeditor-widget

此包已被弃用且不再维护。未建议替代包。

Yii2 的 CKEditor 小部件。

安装量: 1,581,665

依赖者: 66

建议者: 2

安全: 0

星标: 169

关注者: 29

分支: 102

开放问题: 21

类型:yii2-extension

2.2.0 2019-04-06 16:44 UTC

This package is auto-updated.

Last update: 2023-07-29 01:21:25 UTC


README

Latest Version Software License Build Status Coverage Status Quality Score Total Downloads

渲染一个 CKEditor WYSIWYG 文本编辑插件 小部件。

安装

通过 composer 安装此扩展是首选方式。

运行

composer require 2amigos/yii2-ckeditor-widget

或添加

"2amigos/yii2-ckeditor-widget" : "~2.1"

到您应用程序的 composer.json 文件的 require 部分。

皮肤与插件

此小部件与 CKEditor 的默认 dev-full/stable 分支一起工作,包含一组插件和皮肤。如果您想配置与建议不同的皮肤或插件,您需要单独下载它们并相应地配置小部件的 clientOptions 属性。

使用

该库包含两个小部件: CKEditorCKEditorInline。一个用于经典编辑,另一个用于内联编辑。

使用基本预设的模型


use dosamigos\ckeditor\CKEditor;


<?= $form->field($model, 'text')->widget(CKEditor::className(), [
        'options' => ['rows' => 6],
        'preset' => 'basic'
    ]) ?>

使用基本预设的内联编辑


use dosamigos\ckeditor\CKEditorInline;

<?php CKEditorInline::begin(['preset' => 'basic']);?>
    This text can be edited now :)
<?php CKEditorInline::end();?>

如何添加自定义插件

这是向编辑器添加自定义插件的方法。从 2.0 版本开始,我们使用 CKEditor 库的 packagist 版本,因此我们必须使用其配置 API 来添加外部插件。

例如,让我们添加流行的 代码编辑插件。此插件将允许我们在编辑器的工具栏中添加按钮,以便在编辑的内容中添加代码。

假设您已经下载了插件并将其添加到 Yii2 网站的根目录。我的方式是这样的

+ frontend 
+ -- web 
    + -- pbckcode 

现在我们可以将其添加到我们的 CKEditor 小部件中。在这个例子中,我使用 CKEditorInline 小部件。在这个例子中,您会注意到我们没有使用预设属性;这非常重要,因为我们想要向小部件添加一个定制的工具栏。不多说,以下是代码

<?php
 
use dosamigos\ckeditor\CKEditorInline;

// First we need to tell CKEDITOR variable where is our external plugin
$this->registerJs("CKEDITOR.plugins.addExternal('pbckcode', '/pbckcode/plugin.js', '');");

// ... 
// Using the plugin
<?php CKEditorInline::begin(['preset' => 'custom', 'clientOptions' => [
    'extraPlugins' => 'pbckcode',
    'toolbarGroups' => [
        ['name' => 'undo'],
        ['name' => 'basicstyles', 'groups' => ['basicstyles', 'cleanup']],
        ['name' => 'colors'],
        ['name' => 'links', 'groups' => ['links', 'insert']],
        ['name' => 'others', 'groups' => ['others', 'about']],
        
        ['name' => 'pbckcode'] // <--- OUR NEW PLUGIN YAY!
    ]
]]) ?>

<p>
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
    dolore magna aliqua. 
</p>
<?php CKEditorInline::end() ?>

浏览和上传

用于浏览和上传文件的插件是 KCFinder,默认情况下已禁用。

要启用它,只需使用 'kcfinder'=>true

请看这个简单的示例代码

<?php
use dosamigos\ckeditor\CKEditor;

echo $form->field($model, 'text')->widget(CKEditor::className(), [
    'kcfinder' => true,
]);

默认情况下,上传文件夹名称是根 web 目录中的 upload

您可以设置 kcfOptions 参数的选项,您可以在此链接中找到 KCFinder 的所有选项:https://kcfinder.sunhater.com/install

要更改上传目录或更改一些选项,您可以查看此高级示例代码

<?php
use dosamigos\ckeditor\CKEditor;

echo $form->field($model, 'text')->widget(CKEditor::className(), [
    'kcfinder' => true,
    'kcfOptions' => [
        'uploadURL' => '@web/upload',
        'uploadDir' => '@webroot/upload',
        'access' => [  // @link http://kcfinder.sunhater.com/install#_access
            'files' => [
                'upload' => true,
                'delete' => true,
                'copy' => true,
                'move' => true,
                'rename' => true,
            ],
            'dirs' => [
                'create' => true,
                'delete' => true,
                'rename' => true,
            ],
        ],
        'types' => [  // @link http://kcfinder.sunhater.com/install#_types
            'files' => [
                'type' => '',
            ],
        ],
    ],
]);

关于额外资源

您可能会好奇为什么存在文件 dosamigos-ckeditor.widget.js。原因是因为Yii2与表单和跨站请求伪造(csrf)的交互方式。当使用文件上传时,CKEditor不会触发on change事件,也不会收集CSRF令牌。

此资产解决了这两个问题。

测试

为了测试此扩展,最好在您的计算机上克隆此存储库。之后,转到扩展文件夹并执行以下操作(假设您的计算机上已安装composer

$ composer install --no-interaction --prefer-source --dev

一旦安装了所有必需的库,然后执行以下操作

$ vendor/bin/phpunit

更多信息

请参阅CKEditor插件网站文档以获取有关其配置选项的更多信息。

贡献

有关详细信息,请参阅CONTRIBUTING

鸣谢

许可证

BSD许可证(BSD)。有关更多信息,请参阅许可证文件

2amigOS!
网络开发从未如此有趣!
www.2amigos.us