CKEditor + CKFinder在PHP環(huán)境下的使用

好久沒有寫文章了算途,最近在寫后臺,使用的是yii2的框架隘梨,業(yè)務(wù)需要在后臺發(fā)新聞類的文章程癌,一開始選擇富文本直接用了百度的那個,后來因為上傳的圖片大小固定的轴猎,然后就換了陕壹,找到了CKEditor惜浅。

CKEditor官網(wǎng):https://ckeditor.com
參考配置網(wǎng)址:https://www.cnblogs.com/wuling129/p/8268440.html

由于研究富文本的鉴扫,應(yīng)該有一定的配置經(jīng)驗,本文就略去了把CKEditor整合成yii2的一個部件的部分垮斯,其實對CKEditor的安裝、配置難度來自對CKFinder的整合只祠,配置兜蠕。其余的按照官方標(biāo)準(zhǔn)文檔,一步一步即可抛寝。

1熊杨、對CKEditor的配置

我下載的是最新版本(2018-9-28)
下載的是滿包版本

首先配置config.js
配置.png

廢話不多說,直接上代碼

/**
 * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see https://ckeditor.com/legal/ckeditor-oss-license
 */

var baseUrl = '../../';

CKEDITOR.editorConfig = function (config) {
    // Define changes to default configuration here. For example:
    config.language = 'zh-cn';


    //編輯器樣式
    config.skin = "moono-lisa";
    config.filebrowserUploadUrl = baseUrl + 'uploads/';
    // config.uiColor = '#AADC6E';
    //工具欄是否可以被收縮
    config.toolbarCanCollapse = true;

    config.toolbar = [
        ['Source', '-', 'Save', 'NewPage', 'Preview', 'Print', '-', 'Templates'],
        //剪切    復(fù)制     粘貼      粘貼純文本
        ['Cut', 'Copy', 'Paste', 'PasteText'],
        // 數(shù)字列表          實體列表            減小縮進     增大縮進          查找     替換
        ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Find', 'Replace'],
        //超鏈接  取消超鏈接 錨點
        ['Link', 'Unlink', 'Anchor'],
        //圖片     表格       水平線             表情          特殊字符           分頁符
        ['Image', 'Table', 'HorizontalRule', 'Smiley', 'SpecialChar', '-', 'PageBreak'], '/',
        //加粗     斜體盗舰,     下劃線      穿過線      下標(biāo)字        上標(biāo)字
        ['Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript'],
        //左對 齊             居中對齊          右對齊          兩端對齊
        ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'],
        // 樣式       格式      字體    字體大小
        ['Styles', 'Format', 'Font', 'FontSize'],
        //文本顏色     背景顏色
        ['TextColor', 'BGColor'],
        //全屏           顯示區(qū)塊
        ['Maximize', 'ShowBlocks', '-']
    ];

    // config.toolbar_Full = [
    //     ['Source','-','Save','NewPage','Preview','-','Templates'],
    //     ['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print', 'SpellChecker', 'Scayt'],
    //     ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
    //     ['Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField'],
    //     '/',
    //     ['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
    //     ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
    //     ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
    //     ['Link','Unlink','Anchor'],
    //     ['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak'],
    //     '/',
    //     ['Styles','Format','Font','FontSize'],
    //     ['TextColor','BGColor']
    // ];

    //字體編輯時的字符集 可以添加常用的中文字符:宋體晶府、楷體、黑體等 plugins/font/plugin.js
    //config.font_names = 'Arial;Times New Roman;Verdana';

    // “拖拽以改變尺寸”功能 plugins/resize/plugin.js
    config.resize_enabled = true;
    //圖片預(yù)覽文字
    config.image_previewText = ' ';
    //是否強制復(fù)制來的內(nèi)容去除格式 plugins/pastetext/plugin.js
    config.forcePasteAsPlainText = true;

    // Remove some buttons provided by the standard plugins, which are
    // not needed in the Standard(s) toolbar.
    //移除toolbar上的某個按鈕
    //config.removeButtons = 'Underline,Subscript,Superscript';

    // Set the most common block elements.
    config.format_tags = 'p;h1;h2;h3;pre';

    // Simplify the dialog windows.
    //移除窗口上的選項
    config.removeDialogTabs = 'image:advanced;link:advanced';

    //自定義配置
    //config.配置項 = 值
    //config.width = 100%;
    config.height = 600;
    //config.uiColor = "#cc0041";

    // //文件的上傳管理:加載CKfinder  注意文件路徑為網(wǎng)站根目錄 使用時钻趋,注意ckfinder文件安裝路徑
    config.filebrowserBrowseUrl = baseUrl + 'finder/ckfinder.html';
    config.filebrowserImageBrowseUrl = baseUrl + 'finder/ckfinder.html?Type=Images';
    config.filebrowserFlashBrowseUrl = baseUrl + 'finder/ckfinder.html?Type=Flash';
    config.filebrowserUploadUrl = baseUrl + 'finder/core/connector/php/connector.php?command=QuickUpload&type=Files';
    config.filebrowserImageUploadUrl = baseUrl + 'finder/core/connector/php/connector.php?command=QuickUpload&type=Images';
    config.filebrowserFlashUploadUrl = baseUrl + 'finder/core/connector/php/connector.php?command=QuickUpload&type=Flash';


};

說明:第一個是toolbar的配置川陆,下面注釋掉的是全按鍵的,給大家參考蛮位,當(dāng)然也有一種是分組的配置较沪,個人覺得那種自定義程度不高。'-'是在toolbar中添加一條豎線失仁,'/'是換行尸曼。
第二個需要注意的的,有的教程要上傳圖片萄焦,是去改源碼控轿,把某個hidden:!0改成false,我覺得改源碼不太友好拂封,所以沒有改茬射,其實配置好config.filebrowserUploadUrl這項它就會出來

配置好config.filebrowserUploadUrl就出來了

因為懶得寫上傳方法,所以config.filebrowserUploadUrl這個配置項也沒啥用烘苹,因為我是用CKFinder來統(tǒng)一管理上傳的文件,有更強大的工具片部,就不重復(fù)造輪子了
CKEditor的config.js配置重點就在:

 //文件的上傳管理:加載CKfinder  注意文件路徑為網(wǎng)站根目錄使用時镣衡,注意ckfinder文件安裝路徑
    config.filebrowserBrowseUrl = baseUrl + 'finder/ckfinder.html';
    config.filebrowserImageBrowseUrl = baseUrl + 'finder/ckfinder.html?Type=Images';
    config.filebrowserFlashBrowseUrl = baseUrl + 'finder/ckfinder.html?Type=Flash';
    config.filebrowserUploadUrl = baseUrl + 'finder/core/connector/php/connector.php?command=QuickUpload&type=Files';
    config.filebrowserImageUploadUrl = baseUrl + 'finder/core/connector/php/connector.php?command=QuickUpload&type=Images';
    config.filebrowserFlashUploadUrl = baseUrl + 'finder/core/connector/php/connector.php?command=QuickUpload&type=Flash';

這里就是下載的CKFinder的路徑,位置自定義隨便放档悠,應(yīng)該可以放到不同的服務(wù)器上廊鸥,這個我就沒有再測試了。
在這里辖所,配置也就over嘞惰说。
有個小提示:預(yù)覽框本來帶有默認(rèn)文字的,配置項中配置config.image_previewText = ' ';即可消除缘回,注意吆视,我這里配置為一個空格典挑,不是空字符。當(dāng)然啦吧,也可以自定義文字

預(yù)覽框中的文字

2您觉、CKFinder配置
我使用的是下載的最新版本(2018-9-28) 版本:3.4.4
對的配置主要文件是:
ff.png

其實對config.js都不多,我就配置了一個語言

 config.language = 'zh-cn';

對config.php配置
參考網(wǎng)址:(官網(wǎng))https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_authentication

//導(dǎo)入權(quán)限認(rèn)證的文件
require_once 'User.php';
...
/*============================ Enable PHP Connector HERE ==============================*/
// https://docs.ckeditor.com/ckfinder/ckfinder3-php/configuration.html#configuration_options_authentication
//身份驗證信息授滓,在這里琳水,可以將原來的false直接改成ture即可訪問
//這里我是新建了一個User.php來進行身份確認(rèn)
$config['authentication'] = array($user,'isLoggedIn');
...
//許可配置,不配置許可般堆,會有一個提示在孝,功能不全,授權(quán)是比較貴的
$config['licenseName'] = '';
$config['licenseKey']  = '';
...
//這里是路徑配置淮摔,兩項配合使用
$config['privateDir'] = array(
    'backend' => 'default',
    'tags'   => '.finder/tags',
    'logs'   => '.finder/logs',
    'cache'  => '.finder/cache',
    'thumbs' => '.finder/cache/thumbs',
);

$config['backends'][] = array(
    'name'         => 'default',
    'adapter'      => 'local',
    'baseUrl'      => '/uploads/',
//  'root'         => '', // Can be used to explicitly set the CKFinder user files directory.
    'chmodFiles'   => 0777,
    'chmodFolders' => 0755,
    'filesystemEncoding' => 'UTF-8',
);
...

除了上述配置私沮,其他的我就是默認(rèn)的了。
這里給大家推薦一個激活碼網(wǎng)站噩咪,可以直接生成授權(quán)密鑰顾彰,實現(xiàn)全功能使用,當(dāng)然胃碾,自己動手去研究密鑰算法也是可以的
破解:https://putong.la/ckfinder3.html
然后是user.php

<?php
/**
* Created by PhpStorm.
* User: H
* Date: 2018/9/28
* Time: 9:42
*/

namespace finder;

class User
{
  private $authenticated = false;

  /**
   * 從你的網(wǎng)站應(yīng)用中獲取登陸狀態(tài)
   * 在這里實現(xiàn)涨享,返回一個布爾值,true表示可以訪問
   */
  function login()
  {
      $this->authenticated =true;
  }

  function logout()
  {
      $this->authenticated = false;
  }

  public function isLoggedIn()
  {
      return $this->authenticated;
  }
}

/**
* 直接在這里實例化user對象仆百,
* 調(diào)用判斷邏輯
*/
$user = new User();
$user->login();

基本上完成上述配置厕隧,你的文件服務(wù)器就可以正常使用了,可以自定義增加上傳的配置項俄周,具體參考image的配置格式

$config['resourceTypes'][] = array(
    'name'              => 'Images',
    'directory'         => 'images',
    'maxSize'           => 0,
    'allowedExtensions' => 'bmp,gif,jpeg,jpg,png',
    'deniedExtensions'  => '',
    'backend'           => 'default'
);

這個配置會在你的文件服務(wù)器上的側(cè)欄添加
配置側(cè)欄

到這里就全部結(jié)束啦

我想改變它彈出的方式吁讨,官網(wǎng)有一個是彈出一個模態(tài)框的,不是重新彈出一個瀏覽器框峦朗。有會的大佬建丧,煩勞提點

如有錯誤,還請指正波势,歡迎探討

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末翎朱,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子尺铣,更是在濱河造成了極大的恐慌拴曲,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凛忿,死亡現(xiàn)場離奇詭異澈灼,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門叁熔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來委乌,“玉大人,你說我怎么就攤上這事者疤「T瑁” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵驹马,是天一觀的道長革砸。 經(jīng)常有香客問我,道長糯累,這世上最難降的妖魔是什么算利? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮泳姐,結(jié)果婚禮上效拭,老公的妹妹穿的比我還像新娘。我一直安慰自己胖秒,他們只是感情好缎患,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著阎肝,像睡著了一般挤渔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上风题,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天判导,我揣著相機與錄音,去河邊找鬼沛硅。 笑死眼刃,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的摇肌。 我是一名探鬼主播擂红,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼围小!你這毒婦竟也來了昵骤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤吩抓,失蹤者是張志新(化名)和其女友劉穎涉茧,沒想到半個月后赴恨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體疹娶,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年伦连,在試婚紗的時候發(fā)現(xiàn)自己被綠了雨饺。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钳垮。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖额港,靈堂內(nèi)的尸體忽然破棺而出饺窿,到底是詐尸還是另有隱情,我是刑警寧澤移斩,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布肚医,位于F島的核電站,受9級特大地震影響向瓷,放射性物質(zhì)發(fā)生泄漏肠套。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一猖任、第九天 我趴在偏房一處隱蔽的房頂上張望你稚。 院中可真熱鬧,春花似錦朱躺、人聲如沸刁赖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宇弛。三九已至,卻和暖如春盈滴,著一層夾襖步出監(jiān)牢的瞬間涯肩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工巢钓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留病苗,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓症汹,卻偏偏與公主長得像硫朦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子背镇,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容