yuwen002 发表于 2009-3-11 15:18:48

[原创]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 欢迎加我喽.

Hex 发表于 2009-3-30 15:11:54

好东西竟然被埋没了,加分。

ffms_lin 发表于 2009-3-31 11:25:11

很好,我试过可以用。我用了url重写,就是去掉index.php那个。只要在.htaccess文件中加入这句话就好了RewriteCond $1 !^(index\.php|images|system/application/plugins/Edit)

erebus 发表于 2009-4-1 16:03:57

好东西,谢谢分享

chenjiawu 发表于 2009-4-7 10:03:06

不错,继续加油。

gdtv 发表于 2009-5-2 15:43:52

可惜不能设置宽和高

乌有 发表于 2009-5-2 23:58:48

怎么获取编辑后的值?
我用$this->input->post方法取textarea name,不行.

yuwen002 发表于 2009-5-6 15:04:14

直接用post获取new出来的名字就可以了。

yuwen002 发表于 2009-5-6 15:05:07

6# gdtv
这个可以设置,看看构造函数。可以通这个改一下。

lzx870417 发表于 2009-5-23 22:30:37

非常鄙视这句echo info;

$都没的,误导我了


echo$info;
页: [1] 2 3 4
查看完整版本: [原创]CI中加入新浪博客HTML在编辑器