由于ckeditor的使用,未得到应有的效果,网上的资料关于新版本的ckeditor中缺少的ckeditor.php文件未做任何解释,搭建上,无解。遂采用ueditor,资料也相对零散,以下为整理发布。
关于yii中使用ueditor的问题
yii官网地址下,http://www.yiiframework.com/extension/ueditor-for-yii/ 下载 wdueditor.zip文件
将下载的文件解压到 protected/extensions/ 下目录名称就用wdueditor
由于ueditor是放在extensions目录下,而extensions又是在protected下的,yii中默认protected目录是不允许外部访问的,只有通过index.php访问,这就是错误的原因,为了能够访问,一般镜像一份到网站目录下assets文件夹中的一个随机名文件夹,所以简单的功能终于可以实现了,但是比如上传文件,还要调用imageUp.PHP,这时你会发现ueditor找不到这个目录了。
解决方法:
我们不把extensions下的ueditor镜像到assets目录下,而是直接放在网站根目录(注意,放在网站根目录的是ueditor文件夹,不包括ueditor扩展的入口文件,因为我们要通过这个文件找到ueditor目录),例如我使用的是ueditor,入口文件名是WDueditor.php,打开这个文件,更改如下:
$baseDir = dirname(__FILE__);
$assets = Yii::app()->request->hostInfo."/ueditor";
4. 修改后,发现图片上传,不显示,路径设定有问题,由于文章较少,本人边学边看,发现。由于保存目录设定有问题,
首先imageUp.php第20行,将upload我这里自定为项目目录下image文件下,这样已经完成图片可以存放到image下了
//上传配置
$config = array(
"savePath" => ($path == "1" ? "../../upload/images/" : "/upload1"),
"maxSize" => 1000, //单位KB
"allowFiles" => array(".gif", ".png", ".jpg", ".jpeg", ".bmp")
);
此处配置了../../
ueditor.config.js就要对配置文件增加全路径显示(就是第五步说的)
//图片上传配置区
,imageUrl:URL+"php/imageUp.php" //图片上传提交地址
,imagePath:LOCALHOST+"upload/images/"
/**不建议用下面这个方法**/
/** 如果配置成如下形式,则,
其次 进行了上面的配置后,实际插入数据的地址会出现../../image/这样url地址,同样在imageUp.php第50行,添加$info["url"]=str_replace('../../','',$info["url"]),将../../替换掉。
$info = $up->getFileInfo();
$info["url"]=str_replace('../../','',$info["url"]);
//图片上传配置区
,imageUrl:URL+"php/imageUp.php" //图片上传提交地址
,imagePath:LOCALHOST
*/
5. 最后ueditor.config.js中配置 修正地址
URL = "/ueditor/";//这里你可以配置成ueditor目录在您网站的相对路径或者绝对路径(指以http开头的绝对路径)
LOCALHOST = "http://"+window.location.host+"/";
UPLOADURL = "/upload/";//上传目录根目录下upload
/**
* 配置项主体。注意,此处所有涉及到路径的配置别遗漏URL变量。
*/
window.UEDITOR_CONFIG = {
//为编辑器实例添加一个路径,这个不能被注释
UEDITOR_HOME_URL : URL
//图片上传配置区
,imageUrl:URL+"php/imageUp.php" //图片上传提交地址
,imagePath:LOCALHOST +"upload/images/"
此时数据库图片插入的路径http://http://www.yiiframe.com/upload/image/20131113/13843284986865.png
好了,这样无论是是图片存放目录或是最后的url地址都是我们期望的。
6. 关于线上图片的路径配置
安装上述配置 则需要将 $paths 配置问以../../ 开头的 如下,才可以正常访问,不然获取不到。
//需要遍历的目录列表,最好使用缩略图地址,否则当网速慢时可能会造成严重的延时
$paths = array('../../upload/images'); 这个配置同上传配置(第四部的savepath)