上篇文章已经把自定义标签的准备工作讲完了;
那么接下来就是见证...的时候了;
没看如何配置的请先移步thinkphp自定义模板标签(一)
闭合标签就是单标签;比如a标签、img标签等等;
非闭合标签就是对标签;比如div、p标签等等;
这里以自定义的ueditor和recommend标签为例;
自定义的闭合标签比较适合用来引文件;
自定义的对标签比较适合调取数据库的数据并前台页面遍历显示;
<?php
namespace Common\Tag;
use Think\Template\TagLib;
class My extends TagLib {
// 定义标签
protected $tags=array(
// 标签定义: attr 属性列表 close 是否闭合(0 或者1 默认1) alias 标签别名 level 嵌套层次
'ueditor'=> array('attr'=>'name,content','close'=>0),
'recommend'=>array('attr'=>'limit','level'=>1)
);
/**
*引入ueidter编辑器
*@param string $tag name:表单name content:编辑器初始化后 默认内容
*/
public function _ueditor($tag){
$name=$tag['name'];
$content=$tag['content'];
$link=<<<php
<script id="container" name="$name" type="text/plain">
$content
</script>
<script type="text/javascript" src="__PUBLIC__/static/ueditor1_4_3/ueditor.config.js"></script>
<script type="text/javascript" src="__PUBLIC__/static/ueditor1_4_3/ueditor.all.js"></script>
<script type="text/javascript">
var ue = UE.getEditor('container');
</script>
php;
return $link;
}
// 置顶推荐文章标签 cid为空时则抓取全部分类下的推荐文章
public function _recommend($tag,$content){
if(empty($tag['cid'])){
$where="is_show=1 and is_delete=0 and is_top=1";
}else{
$where='is_show=1 and is_delete=0 and is_top=1 and cid='.$tag['cid'];
}
$limit=$tag['limit'];
// p($recommend);
$php=<<<php
<?php
\$recommend=M('Article')->field('aid,title')->where("$where")->limit($limit)->select();
foreach (\$recommend as \$k => \$field) {
\$url=U('Home/Index/article',array('aid'=>\$field['aid']));
?>
php;
$php.=$content; //拼字符串的过程。。。
$php.='<?php } ?>';//foreach的回扩;
return $php;
}
}
定义完成后在html页面中就可以直接使用 <ueditor />
即可引入ueditor编辑器;
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<ueditor />
</head>
<body>
<!-- 引入ueditor编辑器开始 -->
<ueditor />
<!-- 进入ueditor编辑器结束 -->
<!-- 置顶推荐开始 -->
<recommend cid="" limit="10">
<a class="recommend-a" href="{:U('Home/Index/article',array('aid'=>$field['aid']))}" target="_blank">{$k+1}:{$field['title']}</a>
</recommend>
<!-- 置顶推荐结束 -->
</body>
</html>
而如下图本站的热门推荐就是使用recommend遍历的;
/*************************************追加说明用的分割线*******************************
bjyadmin中有大量的标签可以参考:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin/blob/master/Application/Common/Tag/My.class.php
bjyblog项目已经改写;
原有的标签形式的代码可以查看git:http://git.oschina.net/shuaibai123/thinkbjy/commit/961874d2c12630792390ed26c0a135640e65722d
本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客https://baijunyao.com 欢迎捐赠赞赏加入组织创建QQ群及捐赠渠道
大大大哥 :点赞!d0a9fe6b030e735993d838f886b7a519 写的真好,点赞
2018-01-17 20:22:18 回复
大大大哥 :点赞!b2517b3cd202038f115313f37018b677写的真好,点赞!
2018-01-17 20:18:03 回复
涵涵宝贝 :点赞!ac5f84d912179c504c390c042030ead5写的真好,点赞!
2018-01-17 20:08:27 回复
心动幡动 :写的真好,点赞!
2018-01-17 15:54:01 回复
沉默纪年灬 :原来自定义标签是这么用的 领悟了
2017-09-26 16:34:37 回复
repair77 :解决了,可能default_src的css有问题,我全部替换成了default里的css和js就OK了
2017-06-15 19:25:30 回复
repair77 :你好,我用了第二套模板default_src为什么,css都加载了,还是渲染不了页面?
2017-06-15 19:10:35 回复
:博主我看你博客那个标签是拼接成php到视图层出来,可是那个$where数组在标签那弄的,传递不到模板那。
2017-03-22 09:56:14 回复
□凉☆咖啡□ :为啥都这么有难度 不好玩
2017-02-22 17:13:06 回复
思念如酒 :请问这个编辑框中怎么显示数据库中查询出来的数据,比如现在我写的是{$res.intro|htmlspecialchars_decode}{$res.intro|htmlspecialchars_decode}这个怎么写出来??
2017-01-04 17:08:10 回复
思念如酒 :因为我这么写{$res.intro|htmlspecialchars_decode}内容就漏到外面了。。放里面有不对
2017-01-04 17:15:58 回复
云淡风晴 :参考这个吧;第65行:https://github.com/baijunyao/thinkphp-bjyblog/blob/master/Template/default_src/Admin/Article/edit.html
2017-01-07 12:20:47 回复
思念如酒 :谢谢大神,上面的问题我已经明白了。还有一个疑问,我在一个页面想要用多个编辑器该怎么做?
2017-01-11 09:46:13 回复
云淡风晴 :再调用一次标签;
2017-01-15 11:53:53 回复
怯凡 :啊。博主我clone了下你的代码,在你的一个html文件中你用了自定义的便签,理论山是应该加载了bootstrapcss相关的文件了吧,但是我在cchrome 的network下并没有看大加载了相应的文件,请问下这是神马情况?我自己在项目中按你的配置,发现也相应文件也没有引入,一脸懵逼中。。。
2016-11-25 13:58:00 回复
云淡风晴 :右键查看源代码;看是否有;
2016-12-05 23:10:39 回复
搬砖工. :顺便问下.$php=
2016-11-10 17:38:19 回复
云淡风晴 :定界符;在定界符内的代码;将原样执行;
2016-11-10 22:55:10 回复
搬砖工. :大神,我看了你的博客,满满都是干活,我想问下,Thinkphp自定义标签.怎么打印...
2016-11-10 17:19:56 回复
云淡风晴 :和正常操作一样;
2016-11-10 22:54:37 回复
玄阳明 :找到地方了,哈哈
2016-10-24 15:40:16 回复
玄阳明 :ueditor怎么更改图片保存路径啊?
2016-10-24 15:11:50 回复
孤城浪子 :变量名前面的反斜杠是什么鬼
2016-09-10 18:05:56 回复
云淡风晴 :转义;
2016-09-11 00:31:19 回复
Raul Gonzale :大神,请教一下,这个地方为什么需要转义,不转义的话会发生什么情况?
2016-10-21 14:37:26 回复
Raul Gonzale :另外能加下您的QQ不,我的是240023810
2016-10-21 14:38:03 回复
云淡风晴 :不转义会被当做变量解析;后果;我说没感觉;试试就知道了;
2016-10-22 00:35:39 回复
蓝天 :感谢!
2016-08-18 11:03:13 回复
木祁 :分享图片
2015-07-17 11:32:22 回复
最新评论