[原创]CI中加入新浪博客HTML在编辑器
本帖最后由 yuwen002 于 2009-4-8 13:20 编辑小弟刚学CI不久.希望老手新手,多多指教.
我一直用新浪的HTML编辑器.偏偏在网上这方面的资料实在是太少不了,在CI中也只搜到了一贴.所以小弟在此献丑,希望能帮助正在学习CI朋友.希望大家能一同进步.
本程序在CI 1.7.1中测试通过. 其它版本CI没用过.
这个程序没有为PHP4的朋友准备.大家多理解吧.
首先去zendstudio下载新浪的UBB. 有了这个才能做为一切的开始.哈.:lol
http://www.zendstudio.net/post/82/2/1/
解压后,注意一下文件编辑.因为里面不是全部都是UTF8的.自己修改一下吧.
接着将 Edit 和 uploadfile 放入system/application 中的. plugins 中. 如果没有plugins这个文件夹自己建一个.
然后把sinaEditor.class.php 把这个PHP文件拷入 system/application 中的 libraries, 再给重命名吧(sinaEditor.php).这样调用起来放便些.
打开sinaEditor.php
if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* Title:新浪博客编辑器PHP版封装类
* coder:gently
* Date:2007年11月9日
* Power by ZendStudio.Net
* http://www.zendstudio.net/
* 您可以任意使用和传播,但请保留本段信息!
* 2009-03-11 流星雨修改
*/
class SinaEditor {
public $basePath;
public $width;
public $height;
public $eName;
public $value;
public $autoSave;
function __construct($name) {
$this->eName = $name['name']; //原帖中这块有问题
$this->basePath = base_url() . 'system/application/plugins'; //主要是更改这段了
$this->autoSave = false;
$this->height = 460;
$this->width = 630;
}
function create() {
$ReadCookie=$this->autoSave?1:0;
$info = "<textarea name=\"{$this->eName}\" id=\"{$this->eName}\"
style=\"display:none;\">{$this->value}</textarea>" .
"<iframe src=\"{$this->basePath}/Edit/editor.htm?id={$this->eName}&ReadCookie={$ReadCookie}\"
frameBorder=\"0\" marginHeight=\"0\" marginWidth=\"0\" scrolling=\"No\" width=\"{$this->width}\"
height=\"{$this->height}\"></iframe>"; //好长的一段字符,大家将就看吧.
return $info;
//这块是返回信息,我总觉得,在类中调中print 和 echo 太霸道了.
//所以更改了一下.变成反回值.类中直接使出也不适合MVC嘛
}
}
/* End of file sinaEditor.php */
然后就是在控制中调用此类了.
这个很简单.就在以后的welcome中做的测试
代码如下:
function aaa() {
$this->load->helper('url');
$params = array('name' => 'info');
$this->load->library('SinaEditor', $params);
$this->sinaeditor->value = 'aaaaaaaaaaaa';
$info = $this->sinaeditor->create();
$data['info'] = $info;
$this->load->view('testSinaEditor', $data);
}
再家一个视图testSinaEditor.php就可以了.
echo info;
这样应该成功出来了.
小弟新手.第一回在这里发教程方面的贴了.如有错误希望大家多多指点.
本人GTalk: yuwen002@gmail.com 欢迎加我喽. 好东西竟然被埋没了,加分。 很好,我试过可以用。我用了url重写,就是去掉index.php那个。只要在.htaccess文件中加入这句话就好了RewriteCond $1 !^(index\.php|images|system/application/plugins/Edit) 好东西,谢谢分享 不错,继续加油。 可惜不能设置宽和高 怎么获取编辑后的值?
我用$this->input->post方法取textarea name,不行. 直接用post获取new出来的名字就可以了。 6# gdtv
这个可以设置,看看构造函数。可以通这个改一下。 非常鄙视这句echo info;
$都没的,误导我了
echo$info;