mirror of https://gitee.com/karson/fastadmin.git
标签扩展
parent
5e6c05ea59
commit
5e5e7cd53d
|
|
@ -0,0 +1,123 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @desc: 自定义标签库
|
||||||
|
* @Author: Dr.Xing <ezfwork@foxmail.com>
|
||||||
|
* @Since: 2018/2/1 19:33
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace seven\taglib;
|
||||||
|
|
||||||
|
|
||||||
|
use think\template\TagLib;
|
||||||
|
use think\Db;
|
||||||
|
|
||||||
|
|
||||||
|
class Xs extends Taglib
|
||||||
|
{
|
||||||
|
|
||||||
|
protected $tags = [
|
||||||
|
'nav' => ['attr' => 'name,showlevel', 'close'=> 0],
|
||||||
|
'posts' => ['attr' => 'name,ids,cid,field,limit,order,where,ispage,pagesize,type,key', 'close' => 0],
|
||||||
|
'ad' => ['attr' => 'id', 'close' => 0],
|
||||||
|
];
|
||||||
|
|
||||||
|
public function tagAd($tag)
|
||||||
|
{
|
||||||
|
if (isset($tag['id']) && !empty($tag['id'])) {
|
||||||
|
$id = intval($tag['id']);
|
||||||
|
$parseStr = '<?php ';
|
||||||
|
$parseStr .= 'echo get_ad(' . $id . ');';
|
||||||
|
$parseStr .= "?>";
|
||||||
|
return $parseStr;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function tagNav($tag)
|
||||||
|
{
|
||||||
|
$name = isset($tag['name']) ? $tag['name'] : '' ; //导航ID
|
||||||
|
$class = isset($tag['class']) ? $tag['class'] : ''; //导航css
|
||||||
|
$extend = isset($tag['extend']) ? $tag['extend'] : ''; //导航附加属性
|
||||||
|
$name = preg_replace('/(\w+)/i','${1}',$name);
|
||||||
|
$class = str_replace('"', "'", $class);
|
||||||
|
$extend = str_replace('"', "'", $extend);
|
||||||
|
$navwrapattr= 'id:'.$name.';class:'.$class.';extend:'.$extend.';';
|
||||||
|
|
||||||
|
$itemclass = isset($tag['itemclass']) ? $tag['itemclass'] : ''; //菜单项css
|
||||||
|
$itemextend = isset($tag['itemextend']) ? $tag['itemextend'] : ''; //菜单项附加属性
|
||||||
|
$itemclass = str_replace('"', "'", $itemclass);
|
||||||
|
$itemextend = str_replace('"', "'", $itemextend);
|
||||||
|
|
||||||
|
$childwrap = isset($tag['childwrap']) ? $tag['childwrap'] : ''; //子菜单项的外围标签
|
||||||
|
$childclass = isset($tag['childclass']) ? $tag['childclass'] : ''; //子菜单项的外围标签css
|
||||||
|
$childextend = isset($tag['childextend']) ? $tag['childextend'] : ''; //子菜单项的外围附加属性
|
||||||
|
$childwrap = preg_replace('/(\w+)/i','${1}',$childwrap);
|
||||||
|
$childextend = str_replace('"', "'", $childextend);
|
||||||
|
$childclass = str_replace('"', "'", $childclass);
|
||||||
|
$childwrapattr = 'wrap:'.$childwrap.';class:'.$childclass.';extend:'.$childextend.';';
|
||||||
|
|
||||||
|
$itemtpl = '';
|
||||||
|
if($itemclass!='' && $itemextend!='')
|
||||||
|
$itemtpl = "<li><a class='".$itemclass."' ".$itemextend." href='#href'>#name</a> #childlist</li>";
|
||||||
|
|
||||||
|
$parseStr = '<?php ';
|
||||||
|
$parseStr .= 'echo get_nav("' . $navwrapattr . '","' . $itemtpl . '","' . $childwrapattr . '");';
|
||||||
|
$parseStr .= "?>";
|
||||||
|
if (!empty($parseStr)) {
|
||||||
|
return $parseStr;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回文章(列表/单篇)
|
||||||
|
* @param $tag
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function tagPosts($tag)
|
||||||
|
{
|
||||||
|
$name = $tag['name']; //供后期volist/foreach调用的名称
|
||||||
|
$ids = isset($tag['ids']) ? $tag['ids'] : ''; //获取单篇文章id
|
||||||
|
$cid = isset($tag['cid']) ? $tag['cid'] : ''; //栏目id
|
||||||
|
$field = isset($tag['field']) ? $tag['field'] : ''; //获取字段
|
||||||
|
$limit = isset($tag['limit']) ? $tag['limit'] : ''; //获取数量
|
||||||
|
$order = isset($tag['order']) ? $tag['order'] : ''; //排序
|
||||||
|
$where = isset($tag['where']) ? $tag['where'] : ''; //条件
|
||||||
|
$ispage = isset($tag['ispage']) ? $tag['ispage'] : 'false'; //是否分页,默认不分页
|
||||||
|
$pagesize = !empty($tag['ispage']) && !empty($tag['pagesize']) && is_numeric($tag['pagesize'])
|
||||||
|
? intval($tag['pagesize'])
|
||||||
|
: 10; //config('posts.pagesize');
|
||||||
|
|
||||||
|
//$where=var_export($where, true);
|
||||||
|
|
||||||
|
$options= "ids:".$ids.';cid:'.$cid.';field:'.$field.';limit:'.$limit.';order:'.$order.';where:'.$where.';';
|
||||||
|
|
||||||
|
$parseStr = '<?php ';
|
||||||
|
$parseStr .='$'.$name .'=get_posts("'.$options.'",null,'.$ispage.',"'.$pagesize.'");';
|
||||||
|
$parseStr .="?>";
|
||||||
|
|
||||||
|
if (!empty($parseStr)) {
|
||||||
|
return $parseStr;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回singlepage的menu
|
||||||
|
* @param $tag
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function tagMenu($tag)
|
||||||
|
{
|
||||||
|
$name = $tag['name'];
|
||||||
|
$menuid = isset($tag['menuid']) ? $tag['menuid'] : '';
|
||||||
|
$parseStr = '<?php ';
|
||||||
|
$parseStr .='$'.$name .'=get_menu('.'"'.$menuid.'");';
|
||||||
|
$parseStr .="?>";
|
||||||
|
if (!empty($parseStr)) {
|
||||||
|
return $parseStr;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue