【问题标题】:How to integrate ckfinder with yii2如何将ckfinder与yii2集成
【发布时间】:2016-10-21 21:32:09
【问题描述】:

我正在尝试将 ckeditor 和 ckfinder 集成到使用 yii2 的项目中。 我已将 ckeditor 和 ckfinder 文件夹放在 root/vendor 中并进行了必要的调整,ckeditor 工作正常,ckfinder 还显示带有“浏览器服务器”按钮的文件浏览器弹出窗口。但是每当我点击浏览按钮时,它都不会打开文件选择器弹出窗口,而是显示一个找不到页面的错误。

我尝试在 ckeditor/config.js 中集成 ckfinder 编写以下代码行:

config.filebrowserBrowseUrl = 'hostname/vendor/ckfinder/ckfinder.html';
config.filebrowserImageBrowseUrl = 'hostname/vendor/ckfinder/ckfinder.html?type=Images';
config.filebrowserFlashBrowseUrl = 'hostname/vendor/ckfinder/ckfinder.html?type=Flash';
config.filebrowserUploadUrl = 'hostname/vendor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files';
config.filebrowserImageUploadUrl = 'hostname/vendor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images';
config.filebrowserFlashUploadUrl = 'hostname/vendor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash';

但我还没有找到解决办法。

谁能帮我解决这个问题?

【问题讨论】:

  • 几个问题:您使用哪个版本的CKFinder?你能澄清一下哪个浏览按钮不起作用吗?这是启动文件浏览器的页面上的自定义按钮吗?另请检查 CKFinder 示例是否正常工作。
  • “浏览服务器”按钮位于弹出窗口中,用于将图像/文件添加到内容中。从编辑器中单击图像图标时会打开弹出窗口。我刚刚将 ckeditor 和 ckfinder 文件夹从 'root/vendor' 移动到 'root/web' 并像以前一样进行了其他设置,现在问题已得到解决。在 yii2 中似乎没有 3rd 方文件可以在“web”目录之外直接访问,除非它被格式化为 yii 扩展。

标签: yii2 ckfinder


【解决方案1】:

我在 yii2 中创建了自定义 CKEditorAsset,如下所示:

namespace vendor\yiif\ckeditor;


use iutbay\yii2kcfinder\KCFinder;
use iutbay\yii2kcfinder\KCFinderAsset;

class CKEditorAsset extends \dosamigos\ckeditor\CKEditorAsset
{
    public $depends = [
        'yii\web\YiiAsset',
        'yii\web\JqueryAsset',
        //'iutbay\yii2kcfinder\KCFinderAsset'
    ];

    public function init()
    {
        $register = KCFinderAsset::register(\Yii::$app->view);
        $kcfinderUrl = $register->baseUrl;

        \Yii::$app->view->registerJs(<<<js
            CKEDITOR.config.filebrowserBrowseUrl="$kcfinderUrl/browse.php?opener=ckeditor&type=files";
            CKEDITOR.config.filebrowserUploadUrl="$kcfinderUrl/upload.php?opener=ckeditor&type=files";
js
    );



        // kcfinder options
        // http://kcfinder.sunhater.com/install#dynamic
        $kcfOptions = array_merge(KCFinder::$kcfDefaultOptions, [
            'uploadURL' => \Yii::getAlias('@web/uploads/modules/ckfinder'),
            'uploadDir'=>\Yii::getAlias('@app/web/uploads/modules/ckfinder'),
            'access' => [
                'files' => [
                    'upload' => true,
                    'delete' => false,
                    'copy' => false,
                    'move' => false,
                    'rename' => false,
                ],
                'dirs' => [
                    'create' => true,
                    'delete' => false,
                    'rename' => false,
                ],
            ],
        ]);

// Set kcfinder session options
        \Yii::$app->session->set('KCFINDER', $kcfOptions);
        parent::init();
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多