亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

關于YII視圖整合kindeditor如何擴展的方法

2020-03-22 17:50:43
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了YII視圖整合kindeditor擴展的方法,較為詳細的分析了html' target='_blank'>Yii框架整合kindeditor的功能實現代碼與設置相關技巧,需要的朋友可以參考下

本文實例講述了YII視圖整合kindeditor擴展的方法。分享給大家供大家參考,具體如下:

比較喜歡用kindeditor,YII上的版本比較舊,所以自己重新整了個擴展
先在protected/extensions下創建KEditor文件夾用來放文件,keSource里放kindeditor的源文件,然后建三個類KEditor、KEditorManage和KEditorUpload,KEditor是擴展的主文件,KEditorManage是用來瀏覽服務器文件的,KEditorUpload是用來示例接收上傳文件的,

KEditor代碼

 ?phpclass KEditor extends CWidget{ * TEXTAREA輸入框的屬性,保證js調用KE失敗時,文本框的樣式。 public $textareaOptions=array(); * 編輯器屬性集。 public $properties=array(); * TEXTAREA輸入框的name,必須設置。 * 數據類型:String public $name; * TEXTAREA的id,可為空 public $id; public $model; public $baseUrl; public static function getUploadPath(){ $dir = dirname(__FILE__).DIRECTORY_SEPARATOR. keSource  if(isset(Yii::app()- params- uploadPath)){ return Yii::getPathOfAlias( webroot ).str_replace( / ,DIRECTORY_SEPARATOR, Yii::app()- params-  uploadPath); return Yii::app()- getAssetmanager() - getPublishedPath($dir).DIRECTORY_SEPARATOR. upload  public static function getUploadUrl(){ $dir = dirname(__FILE__).DIRECTORY_SEPARATOR. keSource  if(isset(Yii::app()- params- uploadPath)){ return Yii::app()- baseUrl.Yii::app()- params- uploadPath; return Yii::app()- getAssetManager()- publish($dir). /upload  public function init(){ if($this- name===null) throw new CException(Yii::t( zii , The id property cannot be empty.  $dir = dirname(__FILE__).DIRECTORY_SEPARATOR. keSource  $this- baseUrl=Yii::app()- getAssetManager()- publish($dir); $cs=Yii::app()- getClientScript(); $cs- registerCssFile($this- baseUrl. /themes/default/default.css  if(YII_DEBUG) $cs- registerScriptFile($this- baseUrl. /kindeditor.js  else $cs- registerScriptFile($this- baseUrl. /kindeditor-min.js  public function run(){ $cs=Yii::app()- getClientScript(); $textAreaOptions=$this- gettextareaOptions(); $textAreaOptions[ name ]=CHtml::resolveName($this- model,$this- name); $this- id=$textAreaOptions[ id ]=CHtml::getIdByName($textAreaOptions[ name  echo CHtml::activeTextArea($this- model,$this- name,$textAreaOptions); $properties_string = CJavaScript::encode($this- getKeProperties()); $js= EOFKindEditor.ready(function(K) { var editor_$this- id = K.create( #$this- id ,$properties_string $cs- registerScript( KE .$this- name,$js,CClientScript::POS_HEAD); public function gettextareaOptions(){ //允許獲取的屬性 $allowParams=array( rows , cols , style  //準備返回的屬性數組 $params=array(); foreach($allowParams as $key){ if(isset($this- textareaOptions[$key])) $params[$key]=$this- textareaOptions[$key]; $params[ name ]=$params[ id ]=$this- name; return $params; public function getKeProperties(){ $properties_key=array( width , height , minWidth , minHeight , items , noDisableItems , filterMode , htmlTags , wellFormatMode , resizeType , themeType , langType , designMode , fullscreenMode , basePath , themesPath , pluginsPath , langPath , minChangeSize , urlType , newlineTag , pasteType , dialogAlignType , shadowMode , useContextmenu , syncType , indentChar , cssPath , cssData , bodyClass , colorTable , afterCreate , afterChange , afterTab , afterFocus , afterBlur , afterUpload , uploadJson , fileManagerJson , allowPreviewEmoticons , allowImageUpload , allowFlashUpload , allowMediaUpload , allowFileUpload , allowFileManager , fontSizeTable , imageTabIndex , formatUploadUrl , fullscreenShortcut , extraFileUploadParams , //準備返回的屬性數組 $params=array(); foreach($properties_key as $key){ if(isset($this- properties[$key])) $params[$key]=$this- properties[$key]; return $params;}

KEditorManage代碼

 ?phpclass KEditorManage extends CAction{ public function run(){ Yii::import( ext.KEditor.KEditor  $root_path=KEditor::getUploadPath(). /  $root_url=KEditor::getUploadUrl(). /  //圖片擴展名 $ext_arr = array( gif , jpg , jpeg , png , bmp  //目錄名 $dir_name = empty($_GET[ dir ]) ? : trim($_GET[ dir  if (!in_array($dir_name, array( , image , flash , media , file ))) { echo Invalid Directory name.  exit; if ($dir_name !== ) { $root_path .= $dir_name . /  $root_url .= $dir_name . /  if (!file_exists($root_path)) { mkdir($root_path); //根據path參數,設置各路徑和URL if (empty($_GET[ path ])) { $current_path = realpath($root_path) . /  $current_url = $root_url; $current_dir_path =  $moveup_dir_path =  } else { $current_path = realpath($root_path) . / . $_GET[ path  $current_url = $root_url . $_GET[ path  $current_dir_path = $_GET[ path  $moveup_dir_path = preg_replace( /(.*?)[^//]+//$/ , $1 , $current_dir_path); echo realpath($root_path); //排序形式,name or size or type $order = empty($_GET[ order ]) ? name : strtolower($_GET[ order  //不允許使用..移動到上一級目錄 if (preg_match( //././ , $current_path)) { echo Access is not allowed.  exit; //最后一個字符不是/ if (!preg_match( ///$/ , $current_path)) { echo Parameter is not valid.  exit; //目錄不存在或不是目錄 if (!file_exists($current_path) || !is_dir($current_path)) { echo Directory does not exist.  exit; //遍歷目錄取得文件信息 $file_list = array(); $handle = new DirectoryIterator($current_path); $i=0; foreach($handle as $file){ if($file- isDot()) continue; if($file- isDir()){ $file_list[$i][ is_dir ] = true; //是否文件夾 $file_list[$i][ has_file ] = (count(scandir($file- getPath())) //文件夾是否包含文件 $file_list[$i][ filesize ] = 0; //文件大小 $file_list[$i][ is_photo ] = false; //是否圖片 $file_list[$i][ filetype ] = //文件類別,用擴展名判斷 }else{ $file_list[$i][ is_dir ] = false; $file_list[$i][ has_file ] = false; $file_list[$i][ filesize ] = $file- getSize(); $file_list[$i][ dir_path ] =  $file_ext = $file- getExtension(); $file_list[$i][ is_photo ] = in_array($file_ext, $ext_arr); $file_list[$i][ filetype ] = $file_ext; $file_list[$i][ filename ] = $file- getFilename(); //文件名,包含擴展名 $file_list[$i][ datetime ] = date( Y-m-d H:i:s , $file- getMTime()); $i++; usort($file_list, array($this, cmp_func  $result = array(); //相對于根目錄的上一級目錄 $result[ moveup_dir_path ] = $moveup_dir_path; //相對于根目錄的當前目錄 $result[ current_dir_path ] = $current_dir_path; //當前目錄的URL $result[ current_url ] = $current_url; //文件數 $result[ total_count ] = count($file_list); //文件列表數組 $result[ file_list ] = $file_list; //輸出JSON字符串 header( Content-type: application/json; charset=UTF-8  echo CJSON::encode($result); exit; //排序 public function cmp_func($a, $b) { global $order; if ($a[ is_dir ] !$b[ is_dir ]) { return -1; } else if (!$a[ is_dir ] $b[ is_dir ]) { return 1; } else { if ($order == size ) { if ($a[ filesize ] $b[ filesize ]) { return 1; } else if ($a[ filesize ] $b[ filesize ]) { return -1; } else { return 0; } else if ($order == type ) { return strcmp($a[ filetype ], $b[ filetype  } else { return strcmp($a[ filename ], $b[ filename ? 

KEditorUpload代碼

 ?phpclass KEditorUpload extends CAction{ public function run(){ $dir=isset($_GET[ dir ])?trim($_GET[ dir ]): file  $ext_arr = array( image = array( gif , jpg , jpeg , png , bmp ), flash = array( swf , flv ), media = array( swf , flv , mp3 , wav , wma , wmv , mid , avi , mpg , asf , rm , rmvb ), file = array( doc , docx , xls , xlsx , ppt , htm , html , txt , zip , rar , gz , bz2 ), if(empty($ext_arr[$dir])){ echo CJSON::encode(array( error = 1, message = 目錄名不正確。  exit; $originalurl=  $filename=  $date=date( Ymd  $id=0; $max_size=2097152; //2MBs $upload_image=CUploadedFile::getInstanceByName( imgFile  Yii::import( ext.KEditor.KEditor  $upload_dir=KEditor::getUploadPath(). / .$dir; if(!file_exists($upload_dir)) mkdir($upload_dir); $upload_dir=$upload_dir. / .$date; if(!file_exists($upload_dir)) mkdir($upload_dir); $upload_url=KEditor::getUploadUrl(). / .$dir. / .$date; if(is_object($upload_image) get_class($upload_image)=== CUploadedFile ){ if($upload_image- size $max_size){ echo CJSON::encode(array( error = 1, message = 上傳文件大小超過限制。  exit; //新文件名 $filename=date( YmdHis ). _ .rand(10000, 99999); $ext=$upload_image- extensionName; if(in_array($ext, $ext_arr[$dir]) === false){ echo CJSON::encode(array( error = 1, message = 上傳文件擴展名是不允許的擴展名。/n只允許 .implode( , ,$ext_arr[$dir]). 格式。  exit; $uploadfile=$upload_dir. / .$filename. . .$ext; $originalurl=$upload_url. / .$filename. . .$ext; $upload_image- saveAs($uploadfile); echo CJSON::encode(array( error = 0, url = $originalurl)); }else{ echo CJSON::encode(array( error = 1, message = 未知錯誤 }

配置config/main.php文件,設置上傳文件存放位置

 params = array( // this is used in contact page adminEmail = webmaster@example.com , uploadPath = /upload , //添加這句,upload為存放文件文件夾的名字,自己定義,這里是放在根目錄的upload文件夾

設置接收文件和瀏覽服務器文件的action

public function actions() return array( //在actions下的return array添加下面兩句,沒有actions的話自己添加 upload = array( class = application.extensions.KEditor.KEditorUpload ), manageJson = array( class = application.extensions.KEditor.KEditorManage ),}

在視圖里面使用

 ?php $this- widget( ext.KEditor.KEditor ,array( model = $model, //傳入form model name = content , //設置name properties = array( //設置接收文件上傳的action uploadJson = /admin/default/upload , //設置瀏覽服務器文件的action,這兩個就是上面配置在/admin/default的 fileManagerJson = /admin/default/manageJson , newlineTag = br , allowFileManager = true, //傳值前加js:來標記這些是js代碼 afterCreate = js:function() { K( #ChapterForm_all_len ).val(this.count()); K( #ChapterForm_word_len ).val(this.count( text  afterChange = js:function() { K( #ChapterForm_all_len ).val(this.count()); K( #ChapterForm_word_len ).val(this.count( text  textareaOptions = array( style = width:98%;height:400px; ,? 

textareaOptions用來設置textarea的大小和樣式,僅支持rows、cols和style
properties的各項跟js設置kindeditor的是一樣的,上面的設置與下面用js設置的是一致,kindeditor原來有的項都可以設置

var editor1 = K.create( #editor_modelname_name , { uploadJson : /admin/default/upload , fileManagerJson : /admin/default/manageJson , newlineTag : br , allowFileManager : true, afterCreate : function() { K( #ChapterForm_all_len ).html(this.count()); K( #ChapterForm_word_len ).html(this.count( text  afterChange : function() { K( #ChapterForm_all_len ).html(this.count()); K( #ChapterForm_word_len ).html(this.count( text });

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP !

相關推薦:

關于Yii中處理前后臺登錄的方法實現

關于Yii數據模型中rules類驗證器的用法

以上就是關于YII視圖整合kindeditor如何擴展的方法的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产亚洲精品美女| 91精品久久久久久久久久久| 国产精品91免费在线| 久热爱精品视频线路一| 91在线观看免费高清| 在线播放日韩av| 日韩美女在线观看一区| 欧美精品在线免费观看| 中文字幕日韩av电影| 日韩精品一区二区三区第95| 日韩大片免费观看视频播放| 亚洲国产97在线精品一区| 亚洲理论片在线观看| 国产精品欧美日韩久久| 精品国偷自产在线| 亚洲高清一二三区| 中文字幕在线成人| 欧美一区二区色| 久久国产精品视频| 久久精品色欧美aⅴ一区二区| 欧美亚洲视频在线看网址| 亚洲最大av在线| 青青草原一区二区| 久国内精品在线| 成人h视频在线| 国产精品中文在线| 亚洲男人天堂2024| 亚洲自拍偷拍色片视频| 91老司机精品视频| 精品亚洲va在线va天堂资源站| 精品成人av一区| 久久久亚洲影院| 亚洲网站在线看| 欧美日韩999| 91精品久久久久久久久久| 日韩大陆欧美高清视频区| 亚洲视频专区在线| 欧美日韩精品在线| 91在线高清免费观看| 欧美尺度大的性做爰视频| 狠狠色噜噜狠狠狠狠97| 欧美成人午夜激情在线| 亚洲男人的天堂在线播放| 久久精品一偷一偷国产| 17婷婷久久www| 欧美日韩xxx| 国产精品成久久久久三级| 国产精品免费观看在线| 欧美专区在线播放| 欧美精品www在线观看| 精品一区二区三区四区| 精品亚洲一区二区| 国产精品久久久久久久久久久不卡| 日韩av综合网| 超碰精品一区二区三区乱码| 国产精品青草久久久久福利99| 色妞在线综合亚洲欧美| 久久久av免费| 欧美日韩国产成人在线| 精品国产一区二区三区久久狼黑人| 亚洲精品电影网在线观看| 国产成人综合久久| 国外色69视频在线观看| 久久成人人人人精品欧| 亚洲欧美日韩久久久久久| 国产精品综合不卡av| 亚洲日本中文字幕免费在线不卡| 欧美一级大片在线免费观看| 欧美野外猛男的大粗鳮| 国产精品爱久久久久久久| 亚洲人在线视频| 68精品久久久久久欧美| 国产精品久久久久国产a级| 欧美性jizz18性欧美| 日韩中文字幕在线| 亚洲精品视频免费| 欧美夜福利tv在线| 日韩精品电影网| 成人福利在线视频| 中文字幕在线日韩| 不卡av日日日| 日韩av免费看| 国产精品福利在线| 久久久久久九九九| 日韩免费在线电影| 九九视频这里只有精品| 国产精品久久久久久久av电影| 精品日本高清在线播放| 久久久国产一区| 91国自产精品中文字幕亚洲| 日韩电影在线观看免费| 91精品视频在线播放| 欧美日韩美女在线观看| 日韩欧美在线免费| 欧美成人激情在线| 久久亚洲电影天堂| 亚洲人在线视频| 亚洲男人天堂九九视频| 久久精品一区中文字幕| 国产精品一区二区性色av| 久热国产精品视频| 日韩欧美国产成人| 2018中文字幕一区二区三区| 欧美午夜片欧美片在线观看| 亚洲午夜激情免费视频| 精品一区二区电影| 欧美激情视频免费观看| 国产精品久久色| 91av在线免费观看视频| 亚洲一区亚洲二区| 懂色aⅴ精品一区二区三区蜜月| 成人网在线免费看| 国产91精品网站| 亚洲综合社区网| 亚洲石原莉奈一区二区在线观看| 亚洲一区美女视频在线观看免费| 91美女福利视频高清| 国产精品久久久久77777| 成人免费淫片视频软件| 高跟丝袜欧美一区| 中文字幕在线看视频国产欧美| 久久久久中文字幕2018| 不卡毛片在线看| 亚洲欧美日本伦理| 国产美女精彩久久| 欧美日韩国产91| 欧美性受xxxx白人性爽| 中文国产亚洲喷潮| 亚洲第一视频在线观看| 久久亚洲影音av资源网| 久久视频国产精品免费视频在线| 亚洲男人天堂久| 精品国产一区二区三区久久狼5月| 日韩在线视频观看| 亚洲精品久久在线| 国产精品视频内| 亚洲国产欧美自拍| 777国产偷窥盗摄精品视频| 欧美与黑人午夜性猛交久久久| 亚洲福利小视频| 热久久99这里有精品| 亚洲精品自拍第一页| 久久久久久久影视| 亚洲а∨天堂久久精品喷水| 中文字幕日韩综合av| 国产一区二区三区视频在线观看| 成人深夜直播免费观看| 亚洲老司机av| 日韩视频欧美视频| 欧美专区中文字幕| 欧洲精品在线视频| 91亚洲精华国产精华| 亚洲老司机av| 国产99久久精品一区二区永久免费| 国产精品久久久久久久久久久新郎| 成人性生交大片免费观看嘿嘿视频| 中文字幕日韩欧美精品在线观看| 欧美电影在线观看网站| 久久久av网站| 中文字幕亚洲激情| 国产精品www| 亚洲级视频在线观看免费1级| 成人免费高清完整版在线观看| 日韩精品有码在线观看|