程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP中CKEditor和CKFinder配置

PHP中CKEditor和CKFinder配置

編輯:關於PHP編程

1、/ckeditor/config.js, 配置文件,如果不想寫太多,可以直接寫好默認配置(語言,菜單欄,寬度),有需要可以百度config配置

config.language = 'en';
config.skin = 'v2';
config.uiColor = '#AADC6E';
config.toolbar = 'Basic';
….
2、官方的demo大多都喜歡用js配置editor區域,習慣寫php的我就嫌麻煩,只好看內置的php類。

require_once ROOTPATH . "ckeditor/ckeditor.php";
$CKEditor = new CKEditor();
$CKEditor->returnOutput = true; //設置輸出可用變量的情況
$CKEditor->basePath = '/ckeditor/';//設置路徑
$contentarea =  $CKEditor->editor("content", $rs['contents']); //生成一個以name為content的textarea
 
echo $contentarea;
3、需要上傳了 ,只好加入ckfinder。把ckfinder和ckeditor放在同級目錄下。
打開/ckfinder/config.php,  首先設置第一個函數CheckAuthentication(),這個函數需要按照自己的規則寫,只要return  true的情況才能允許上傳文件到服務器的,當然不建議直接寫return true,這將導致安全問題。可以采用session來處理比較方便。

session_start();
function CheckAuthentication(){
    if(isset($_SESSION['UseEidtor']))
        return true;
    else
         return  false;
}
4、上傳文件位置:也在/ckfinder/config.php,  找到$baseUrl,之前一直想自己寫一個方法用來定位路徑,實在不好辦,後來只好用sesssion,如果一個網站中,有需要上傳到不同的位置,正好可以利用session定位。

if (isset($_SESSION['UseEidtor'])) {
   
    switch ($_SESSION['UseEidtor']) {
        case 'Addr1':
             $baseUrl =  '/addr1/uploadfile/';
         case  'Addr2':
            $baseUrl = '/addr2/upfiles/';
    }
   
} else {
   
     $baseUrl =  '/upfiles/';
   
}
5、對於上傳文件名,ckfinder會按照原有的名字命名,中文的情況下可能會亂碼,所以建議使用日期重命名。打開/ckfinder/core/connector/php/php5/CommandHandler/FileUpload.php  找到< /p>

$sUnsafeFileName =CKFinder_Connector_Utils_FileSystem::convertToFilesystemEncoding(CKFinder_Connector_Utils_Misc::mbBasename($uploadedFile['name']));
後面加上

$sExtension = CKFinder_Connector_Utils_FileSystem::getExtension($sUnsafeFileName);
$sUnsafeFileName=date('YmdHis').'.'.$sExtension;
6、 最後就是使用ckfinder

require_once ROOTPATH . "ckeditor/ckeditor.php";
    require_once ROOTPATH . 'ckfinder/ckfinder.php' ;
   
     $CKEditor  = new  CKEditor();
    $CKEditor->returnOutput = true;
    $CKEditor->basePath = '/ckeditor/';
 
    CKFinder::SetupCKEditor($CKEditor, '/ckfinder/') ;//注意這裡是相對路徑,相對於根目錄,不能用絕對路徑
 
    $contentarea =  $CKEditor->editor("content", $rs['contents']);
兩者配合用起來還是挺不錯的,更重要的原因是安全性高了很多。


摘自 順子網絡

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved