thinkphp3.0 中的thinkeditor怎么用
使用A()方法
有两个控制器,ColumnsAction和NewsAction。ncatlist()是ColumnsAction的分类列表方法,现在我要在控制器NewsAction中调用ncatlist()方法。
代码如下:
class ColumnsAction extends Action{
public function ncatlist(){
$Columns=new Model;
$News = M("News");
$list=$Columns->query("SELECT concat(colPath,'-',colId) AS bpath, colId,colPid,colPath, colTitle, description,ord FROM ".C('DB_PREFIX')."columns where typeid=1
ORDER BY bpath, colId");
$this->assign('alist',$list);
}
}
class NewsAction extends CommonAction {
// 首页
public function index() {
$Columns=A("Columns");
$Columns->ncatlist();
}
这样在模板中你就可以循环alist来获取分类列表了。
说明:上面的代码是WBlog3.0(使用thinkphp3.0的核心包)的代码版断,不过我查看了thinkphp3.1和thinkph3.12核心包还保留着A方法。
具体办法: 在ThinkPHP\Library\Think\Think.class.php中,通过加载ThinkPHP\Conf\Mode文件夹中的common.php或sae.php来实现 。
首先,介绍下本编辑器:本编辑器是thinkphp(简称tp)官方2010年某位大侠所创架构、用jquery写的,后又经历成立夫之手完成,我只是写了标签库、及本日志,本人接手后,水平有限、又没 有时间,尚未搞懂它的具体流程,今后将由左家梓(网名麦当苗儿)这位曾经和kindeditor官方人员接触的js大侠完善,当然网友也可以贡献力量,提 出建议,和贡献插件。
其次,使用thinkeditor必须注意三个地方:
1.本编辑器只适用于tp(上传的地方TP写法,其他框架使用自行修改)。js部分的引用写成了标签库。
2.使用本编辑器的人都要有大无畏的冒险精神,爱折腾,因为本编辑器尚未完善,不能称的上专业。
3.本编辑器只提供大部分网站基本的编辑器的功能,排版、文章中能显示图片flash;插入视频插件未开发。有待广大网友的鼎力帮助。
如何使用本编辑器?
首先,下载整个编辑器的压缩包。
然后,解压,将thinkeditor文件夹放入你的项目公共资源目录/Public下。
并将其中的标签TagLibTp.class.php放入项目的Lib\TagLib\下,并根据框架版本在配置中配置引入的插件路径。(2.2和3.0使用方式会有不同)。
再然后,在模板引用的地方加上<taglib name="tp" />
在head位置加上
<tp:editor id="textContent" uploadURL="/Public/editor_up" width="600"></tp:editor>
这里先说几个参数id是你要替换的textarea的id,uploadURL是上传处理的方法,width是编辑器的宽,可以以px表示,也可以用百分表表示 如width = "100%",因此要单位,其他的参数不需要写单位的。
其他参数的话,参考标签库和说明文档。
然后给项目添加编辑器的上传方法。
如blog中的PublicAction.class.php中的写法
public function editor_up(){
//$savePath 为项目下的上传目录名 如 uploads 会是 上传到__ROOR__/uploads下,为空则上传到__ROOT__/uploads/thinkeditor下
// $saveRule为上传文件命名规则,例如可以是 time uniqid com_create_guid 等,例如可以是 time uniqid com_create_guid 等 默认为time参考tp的上传类
// 例如可以是 time uniqid com_create_guid 等
$savePath = 'uploads';
$saveRule = 'time';
import("@.ORG.UploadFile");
$savePath = ($savePath)? './'.$savePath : './Uploads/thinkeditor';
$savePath = (substr($savePath,-1)!='/')?$savePath.'/':$savePath;
$maxSize = ($_POST['temaxsize'])? $_POST['temaxsize'] : -1;
$upload = new UploadFile($maxSize,'','',$savePath,$saveRule);
//传给js的参数 $savepath是上传的文件的生成路径,$isupload是上传是否成功的布尔值
$savepath = '';
$isupload = 'false';
if(strtolower($_SERVER['REQUEST_METHOD']) == 'post') {
$info = $upload->uploadOne($_FILES['teupload']);
if($info){
$isupload = 'true';
$savepath = $upload->savePath.$info[0]['savename'];
$savepath = substr($savepath, 1);
}else{
$error = $upload->getErrorMsg();
}
}
import('@.TagLib.TagLibTp');
//上面的上传只是写个例子,用户上传可以自定义的,但是下面的是传给编辑器的
//参数必须为$isupload,是否成功,上传后的文件相对路径$savepath必须相对于项目根目录的,错误信息
TagLibTp::think_upload($isupload,$savepath,$error);
}
有能力的童鞋可以自己写上传方法,只要最后自己调用TagLibTp::think_upload($isupload,$savepath,$error);传入对应的参数即可,就可以使用本编辑器了。效果如图:
本编辑器内写了的自动刷新,保存文本时就不用调用方法保存了。还有标签调用时写了jquery的防冲突模式,因此其他类库可以与之同时使用。
至于插件的开发,看说明文档。我在plugins\system.js里写了个实现弹窗输入thinkphp的eq标签的
name 和value值后生成thinkphp eq 标签的插件,去掉注释,在thinkeditor.js里defaults配置里controls里加上eq,
这行去掉注释,应该就能出来了。不过我没加样式,用的html源码的图标。开发起来不难的,相信凭着大家的创造力,可以开发出很多编辑器的插件的.。
thinkPHP3.2.3中实现无限极分类用Tree类
tree = new \\Think\\Tree($arr);str = "\\$spacer\\$name"; \/\/生成的形式 tree->get_tree(0,$str, $select_id = 0);
thinkphp3.1.3 开启子域名部署后,如何对每个分组进行独立路由?
如果只启用m子域名,admin\/xxx\/xxx是可以正常用的。如果有些地址不能访问,添加路由规则即可 'URL_ROUTER_ON' => true,'URL_ROUTE_RULES' => array();
ThinkPHP 3.2 版本升级了哪些内容
3.2.3更新日志 [新增] 增加index连贯操作方法,用于数据集的强制索引操作 [新增] Model类增加using连贯操作用于多表操作 [新增] 增加strict连贯操作,用于设置数据写入和查询是否严格检查是否存在字段 默认情况下 不合法数据字段自动删除,如果设置了严格检查则会抛出异常。 例如: $model->strict(true)->...
Thinkphp3.2.3接入公众号响应微信发送的Token验证总是失败
不使用Thinkphp3.2.3的情况下可以验证成功,应用框架后不能通过,不知道是什么原因啊<?phpnamespaceHOME\\Controller;useThink\\Controller;define("TOKEN","weixin");\/\/定义你公众号自... 不使用Thinkphp3.2.3的情况下可以验证成功,应用框架后不能通过,不知道是什么原因啊<?phpnamespace HOME\\Controller;use Think\\...
ThinkPHP3.2.3 上传图片到ftp,同时生成缩略图。
ThinkPHP上传文件类:upload = new \\Think\\Upload($config);\/\/ 实例化上传类 使用这个。如要处理图片大小。需要另外调用图像处理:裁剪图片 image = new \\Think\\Image(); $image->open('.\/1.jpg');\/\/将图片裁剪为400x400并保存为corp.jpg$image->crop(400, 400)->save('.\/crop.jpg');居...
请问我这个Thinkphp3.2.3在共有控制器写了一个上传文件函数,在其他控 ...
你直接在前端页面中把上传接口附带上就OK了 在需要用到上传的地方,接口写上 U('Home\/Common\/upload')就可以了
THINKPHP3.2.3部署到NGINX上,已经按照官方给的重写规则放上去了,但是...
location \/ { if (!-e $request_filename) { rewrite ^(.*)$ \/index.php?s=$1 last;break;} } nginx 重写 用官方文档提供的重写规则 URL模式 2 就可以了
thinkphp怎么开启调试模式
thinkphp开启调试模式的方法:1、开启调试模式,首先在入口文件打开调试开关:\/\/开启调试模式define('APP_DEBUG',true);2、然后需要配置调试文件,该文件位于项目配置目录下,默认名字为 debug.php:<?phpreturn array( \/\/ 开发环境配置信息 'DB_TYPE'=>'mysql', 'DB_HOST'=>'localhost...
ThinkPHP3.1.3 { Fast & Simple OOP PHP Framework } -- [ WE CAN...
语法没什么问题,试试用apache ,我有个程序跟你一样问题 用apache装上 就解决了,应该是apache 的某个模块作用了
...导出excel表的时候,加入一个等待状态——thinkPHP3.2.3
layer好像可以设置等待时间,你可以设置99999;然后下载完成之后再利用layer.closeAll()关闭所有弹窗!
戎股辣椒: 给你修正一下吧,tbl_teachmaterial_baseinfo应该是你的表名吧,那就这样写!另外是不是传到模板里? function kidlist(){ $tb_teachbase = M ( "TeachmaterialBaseinfo" ); $num=某个条件;$result=$tb_teachbase->where("su_id='$num'")->...
麻城市17254144455: thinkphp在模板文件中怎么求数组的长度 - ?
戎股辣椒: <volist name="list" id="vo" key="k" > {$k}.{$vo}</volist> 最后一个$k值+1就是数组长度了
麻城市17254144455: Thinkphp中 session是默认开启的吗 - ?
戎股辣椒: ThinkPHP3.0完全开发手册 19.1 Session: 支持默认情况下,初始化之后系统会自动启动session. 如果不希望系统自动启动session的话,可以设置SESSION_AUTO_START为false,例如: 'SESSION_AUTO_START' =>false
麻城市17254144455: thinkphp中读不出数据库信息 - ?
戎股辣椒: 用M('User')->getLastSql();看看sql语句有什么问题,如果看不出来就把sql语句放到数据库软件中执行一下就知道什么问题了
麻城市17254144455: thinkphp 想到的疑惑,为什么例如在控制器NewsController.class.php(举例)可以直接使用全局函数 - ?
戎股辣椒: thinkphp自动加载了内置公共函数库function.php,我们还可以额外定义我们的函数库,比如当当前的模块有公共函数时也会主动加载,即可 Application/Common/Common/function.php 在这里写函数在任何地方都可以调用,无需引入的.望采纳 Thx
麻城市17254144455: 如何理解 ThinkPHP 3.0 架构三(核心+驱动+行为)中的行为? - ?
戎股辣椒: 顺序有点错了,应该 是 核心 + 行为 + 驱动,TP官方简称为:CBD 这个问题,在TP手册中已经有委详细地阐述了..核心(Core):就是框架的核心代码,不可缺少的东西,TP本身是基于MVC思想开发的框架.行为(Behavior) :行为在新...
麻城市17254144455: 怎样开启ThinkPHP3.0的调试模式 - ?
戎股辣椒: 首先在你已经部署好了ThinkPHP的项目目录然后注意是在入口文件开启调试模式,在入口文件index.php 中写入一下代码define('APP_DEBUG',true); 首先删除Runtime目录 ,然后再次运行一下,你会发现runtime目录下面的~runtime.php ...
麻城市17254144455: thinphp里的page在哪 - ?
戎股辣椒: 3.2版本的话在ThinkPHP/Library/Think里面
麻城市17254144455: thinkphp3.0中Lib下新增的Widget和Behavior主要是做什么的? - ?
戎股辣椒: Widget扩展用于在页面根据需要输出不同的内容,Widget扩展的定义是在项目的Lib\Widget目录下面定义Widget类库,详见ThinkPHP3.0完全开发手册 13.6 Widget扩展 Behavior则是应用行为类库,行为扩展首先是定义行为类,然后加入某个标签位置即可,内置的行为扩展就是一个很好的扩展示例.行为扩展类继承内置的行为基础类Behavior即可,用B方法调用或自动加载,详见ThinkPHP3.0完全开发手册 13.1.3 行为扩展.
麻城市17254144455: install thinkphp怎么写 - ?
戎股辣椒: ThinkPHP3.2 扩展--钩子,HOOK 之前写到TP3.1的行为扩展是tag();在TP3.2中引入了另一种说法—:钩子. 我们来看一下TP3.2中的钩子这个东西: 一:文件流程: 1:/index.php ->require './ThinkPHP/ThinkPHP.php'; 2:/ThinkPHP/ThinkPHP...