代码如下 | 复制代码 |
<?php import('TagLib'); class TagLibBlog extends TagLib { protected $tags=array( 'blog_cate'=>array('attr'=>'typeid,reid,model,menu,order,limit,name','close'=>0), 'blog_blog'=>array('attr'=>'id,typeid,order,limit,name','close'=>0), 'blog_link'=>array('attr'=>'kind,order,limit,name','close'=>0), 'blog_sql'=>array('attr'=>'sql,name','close'=>0), 'blog_comment'=>array('attr'=>'aid,reid,order,limit,name','close'=>0), 'blog_tag'=>array('attr'=>'order,limit,name','close'=>0), 'blog_group'=>array('attr'=>'order,limit,name','close'=>0), ); //获取栏目信息 public function _blog_cate($attr){ $attr=$this->parseXmlAttr($attr); extract($attr); $sql='where 1'; if(isset($typeid)){ $sql.=" and id=$typeid"; } if(isset($reid)){ $sql.=" and reid=$reid"; } if(isset($model)){ $sql.=" and model=$model"; } if(isset($menu)){ $sql.=" and menu=$menu"; } if(isset($order)){ $sql.=" order by $order"; } if(isset($limit)){ $sql.=" limit $limit"; } if(empty($name)){ $name='list'; } $str=<<<str <?php ${$name}=M()->query("select id,name,reid from blog_category {$sql}"); import('@.Class.Tool'); ${$name}=Tool::formatMultiArray(${$name}); ?> str; return $str; } //获取博文列表 public function _blog_blog($attr){ $attr=$this->parseXmlAttr($attr); extract($attr); $sql='where 1'; if(isset($id)){ $sql.=" and a.id in ($id)"; } if(isset($typeid)){ import('@.Class.Tool'); $categories=M('category')->select(); $arr=Tool::getChildsId($categories,$typeid); $arrStr=implode(",",$arrStr); $sql.=" and a.reid in ($typeid)"; } if(isset($order)){ $sql.=" order by a.$order"; } if(isset($limit)){ $sql.=" limit $limit"; } if(empty($name)){ $name='list'; } $str=<<<str <?php ${$name}=M()->query("select a.*,c.name as cname from blog_article as a left join blog_category as c on a.reid=c.id {$sql}"); foreach(${$name} as $key=>$value){ if($value['keywords']){ ${$name}[$key]['tag']=explode(',',$value['keywords']); } } ?> str; return $str; } //友链调用标签 ?> |
blogCMS标签库源码例子
时间: 2024-09-23 03:08:27
blogCMS标签库源码例子的相关文章
本人自用的global.js库源码分享
这篇文章主要介绍了本人自用的global.js库源码分享,源码中包含常用WEB操作,如命名空间.DOM操作.数据判断.Cookie操作等功能,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
Redrain个人维护并使用的DuiLib和UiLib库源码下载地址
转载请说明原出处:http://blog.csdn.net/zhuhongshu/article/details/40740353,谢谢~~ 首先说明一下Duilib和Uilib的区别:UiLIb是DuiLib是升级扩展版,UiLib增加了一些控件,比如渐变的FadeButton,并且增强了不少控件的功能和属性,比如托盘功能,同时也支持一些动画动能,和一些新模块.DuiLib和UiLib当前都处于无人维护的状态.所以我单独做了自己维护的版本.我把我修复的bug.对库的改进和增强.都同步对
sigslot库源码分析
最近一直在忙毕设的事情,博客都快被遗忘了.最近正好在研究sigslot库,索性晚上写点源码分析的水文充充数. 言归正传,sigslot是一个用标准C++语法实现的信号与槽机制的函数库,类型和线程安全.提到信号与槽机制,恐怕最容易想到的就是大名鼎鼎的Qt所支持的对象之间通信的模式吧.不过这里的信号与槽虽然在概念上等价与Qt所实现的信号与槽,但是采用的仅仅是标准C++语法,不像Qt采用了扩展C++语言的方式(Qt需要使用moc工具对代码预处理之后,才能由标准的C++编译器进行编译). 众所周知,C+
cJSON库源码分析
cJSON是一个超轻巧,携带方便,单文件,简单的可以作为ANSI-C标准的Json格式解析库. 那什么是Json格式?这里照搬度娘百科的说法: Json(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition – December 1999)的一个子集.JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScri
一个golang并行库源码解析
场景 有这样一种场景:四个任务A.B.C, D,其中任务B和C需要并发执行,得到结果1, 任务A执行得到结果2, 结果1和2作为任务D的参数传入,然后执行任务D得到最终结果.我们可以将任务执行顺序用如下图标识: jobA jobB jobC \ \ / \ \ / \ middle \ / \ / jobD 这是一个典型的多任务并发场景,实际上随着任务数量的增多,任务逻辑会更加复杂,如何编写可维护健壮的逻辑代码变得十分重要,虽然golang提供了同步机制,但是需要写很多重复无用的Add/Wait
本人自用的global.js库源码分享_javascript技巧
var GLOBAL = {}; GLOBAL.namespace = function(str) { var arr = str.split("."), o = GLOBAL,i; for (i = (arr[0] = "GLOBAL") ? 1 : 0; i < arr.length; i++) { o[arr[i]] = o[arr[i]] || {}; o = o[arr[i]]; } }; //Dom相关 GLOBAL.namespace("
muduo库源码剖析(一) reactor模式
一. Reactor模式简介 Reactor释义"反应堆",是一种事件驱动机制.和普通函数调用的不同之处在于:应用程序不是主动的调用某个API完成处理,而是恰恰相反,Reactor逆置了事件处理流程,应用程序需要提供相应的接口并注册到Reactor上,如果相应的时间发生,Reactor将主动调用应用程序注册的接口,这些接口又称为"回调函数". 二. moduo库Reactor模式的实现 muduo主要通过3个类来实现Reactor模式:EventLoop,Chann
muduo库源码剖析(二) 服务端
一. TcpServer类: 管理所有的TCP客户连接,TcpServer供用户直接使用,生命期由用户直接控制.用户只需设置好相应的回调函数(如消息处理messageCallback)然后TcpServer::start()即可. 主要数据成员: boost::scoped_ptr<Accepter> acceptor_; 用来接受连接 std::map<string,TcpConnectionPtr> connections_; 用来存储所有连接 connectonCallbac
ASP实用函数库源码(一)
下面的代码是我最近正在整理的常用代码的一部分,陆续我将放出更多的实用代码,请大家把自己的代码回复,一边我整理,谢谢!QQ:393356<%'判断文件名是否合法Function isFilename(aFilename) Dim sErrorStr,iNameLength,i isFilename=TRUE sErrorStr=Array("/","",":","*","?",""&