用户
 找回密码
 入住 CI 中国社区
搜索
查看: 32084|回复: 33
收起左侧

[库 Library] [原创]CI中加入新浪博客HTML在编辑器

[复制链接]
发表于 2009-3-11 15:18:48 | 显示全部楼层 |阅读模式
本帖最后由 yuwen002 于 2009-4-8 13:20 编辑

小弟刚学CI不久.希望老手新手,多多指教.
我一直用新浪的HTML编辑器.偏偏在网上这方面的资料实在是太少不了,在CI中也只搜到了一贴.所以小弟在此献丑,希望能帮助正在学习CI朋友.希望大家能一同进步.

本程序在CI 1.7.1中测试通过. 其它版本CI没用过.
这个程序没有为PHP4的朋友准备.大家多理解吧.
首先去zendstudio下载新浪的UBB. 有了这个才能做为一切的开始.哈.
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


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中做的测试
代码如下:
PHP复制代码
 
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就可以了.
PHP复制代码
 
echo info;
 
复制代码

这样应该成功出来了.
小弟新手.第一回在这里发教程方面的贴了.如有错误希望大家多多指点.
本人GTalk: yuwen002@gmail.com 欢迎加我喽.

评分

参与人数 1威望 +5 收起 理由
Hex + 5 原创内容

查看全部评分

发表于 2009-3-30 15:11:54 | 显示全部楼层
好东西竟然被埋没了,加分。
发表于 2009-3-31 11:25:11 | 显示全部楼层
很好,我试过可以用。我用了url重写,就是去掉index.php那个。只要在.htaccess文件中加入这句话就好了RewriteCond $1 !^(index\.php|images|system/application/plugins/Edit)
发表于 2009-4-1 16:03:57 | 显示全部楼层
好东西,谢谢分享
发表于 2009-4-7 10:03:06 | 显示全部楼层
不错,继续加油。
发表于 2009-5-2 15:43:52 | 显示全部楼层
可惜不能设置宽和高
发表于 2009-5-2 23:58:48 | 显示全部楼层
怎么获取编辑后的值?
我用$this->input->post方法取textarea name,不行.
 楼主| 发表于 2009-5-6 15:04:14 | 显示全部楼层
直接用post获取new出来的名字就可以了。
 楼主| 发表于 2009-5-6 15:05:07 | 显示全部楼层
6# gdtv
这个可以设置,看看构造函数。可以通这个改一下。
发表于 2009-5-23 22:30:37 | 显示全部楼层
非常鄙视这句echo info;

$都没的,误导我了


echo  $info;

本版积分规则