diff --git a/app/model/Channel.php b/app/model/Channel.php index eb8096c9..93e6412d 100644 --- a/app/model/Channel.php +++ b/app/model/Channel.php @@ -25,4 +25,18 @@ class Channel extends \think\Model { $status = [0 => '禁用', 1 => '启用']; return isset($status[$data['status']]) ? $status[$data['status']] : '禁用'; } + + public static function getChannelList($pid, $tree){ + $map = []; + $map[] = ['status', '=', 1]; + if ($pid !== '') { + $map[] = ['pid', '=', $pid]; + } + + $list = self::where($map)->order('sort asc, id desc')->column("*"); + if ($tree) { + $list = (new \sent\tree\Tree())->listToTree($list); + } + return $list; + } } \ No newline at end of file diff --git a/app/model/Document.php b/app/model/Document.php new file mode 100644 index 00000000..5de4fd4d --- /dev/null +++ b/app/model/Document.php @@ -0,0 +1,33 @@ + +// +---------------------------------------------------------------------- +namespace app\model; + +use think\facade\Db; + +/** + * 文档模型 + */ +class Document { + + public static function getDocumentList($model, $category_id, $limit = 20, $order = "id desc", $field = "*"){ + $map = []; + if (!$model) { + return []; + } + //判断model是否为内容模型 + $info = Model::where('name', $model)->where('status', 1)->findOrEmpty(); + + if ($info->isEmpty()) { + return []; + } + $list = Db::name($model)->where($map)->limit($limit)->order($order)->field($field)->select(); + + return $list; + } +} \ No newline at end of file diff --git a/extend/com/Sent.php b/extend/com/Sent.php index 8b17fd5b..d2021ef9 100644 --- a/extend/com/Sent.php +++ b/extend/com/Sent.php @@ -18,22 +18,15 @@ class Sent extends \think\template\TagLib { protected $tags = array( // 标签定义: attr 属性列表 close 是否闭合(0 或者1 默认1) alias 标签别名 level 嵌套层次 'nav' => array('attr' => 'name,pid', 'close' => 1), //获取导航 - 'list' => array('attr' => 'table,where,order,limit,id,sql,field,key','level'=>3),//列表 'doc' => array('attr' => 'model,field,limit,id,field,key,name','level'=>3), - 'recom' => array('attr' => 'doc_id,id'), 'link' => array('attr' => 'type,limit' , 'close' => 1),//友情链接 - 'prev' => array('attr' => 'id,cate' , 'close' => 1),//上一篇 - 'next' => array('attr' => 'id,cate' , 'close' => 1),//下一篇 ); public function tagnav($tag, $content){ - $pid = isset($tag['pid']) ? 'pid=' . $tag['pid'] : ''; + $pid = isset($tag['pid']) ? $tag['pid'] : ''; $tree = isset($tag['tree']) ? $tag['tree'] : 1; - $parse = $parse = 'where("status=1")->where("'.$pid.'")->order("sort")->select();'; - if($tree == 1){ - $parse .= '$__NAV__ = list_to_tree($__NAV__, "id", "pid");'; - } + $parse = ' $'.$tag['name'].') {'; $parse .= '?>'; $parse .= $content; @@ -43,20 +36,14 @@ class Sent extends \think\template\TagLib { public function tagdoc($tag, $content){ $model = !empty($tag['model']) ? $tag['model']:''; - $cid = !empty($tag['cid']) ? $tag['cid']:'0'; + $cid = (!empty($tag['cid']) && is_integer($tag['limit'])) ? $tag['cid']:'0'; $field = empty($tag['field']) ? '*' : $tag['field']; - $limit = empty($tag['limit']) ? 20 : $tag['limit']; + $limit = (!empty($tag['limit']) && is_integer($tag['limit'])) ? $tag['limit'] : 20; $order = empty($tag['order']) ? 'id desc' : $tag['order']; $name = isset($tag['name']) ? $tag['name'] : 'item'; - //获得当前栏目的所有子栏目 - $ids = get_category_child($cid); - $ids = implode(',', $ids); - $where = "category_id IN ({$ids})"; - $where .= " and status >= 1"; - $parse = $parse = 'where(\''.$where.'\')->field(\''.$field.'\')->limit(\''.$limit.'\')->order(\''.$order.'\')->select();'; + $parse .= '$__LIST__ = \\app\\model\\Document::getDocumentList("'.$model.'", '.$cid.', '.$limit.', "'.$order.'", "'.$field.'");'; $parse .= 'foreach ($__LIST__ as $key => $'.$tag['name'].') {'; $parse .= '?>'; $parse .= $content; @@ -64,45 +51,6 @@ class Sent extends \think\template\TagLib { return $parse; } - public function taglist($tag, $content){ - $name = !empty($tag['name']) ? $tag['name'] : ''; - $map = !empty($tag['map']) ? $tag['map'] : ''; - $field = empty($tag['field']) ? '*' : $tag['field']; - $limit = empty($tag['limit']) ? 20 : $tag['limit']; - $order = empty($tag['order']) ? 'id desc' : $tag['order']; - - $where[] = "status > 0"; - if ($map) { - $where[] = $map; - } - $map = implode(" and ", $where); - - $parse = $parse = 'where(\''.$map.'\')->field(\''.$field.'\')->limit(\''.$limit.'\')->order(\''.$order.'\')->select();'; - $parse .= 'foreach ($__LIST__ as $key => $'.$tag['id'].') {'; - $parse .= '?>'; - $parse .= $content; - $parse .= ''; - return $parse; - } - - public function tagrecom($tag, $content){ - $model = empty($tag['model']) ? '' : $tag['model']; - $field = empty($tag['field']) ? '*' : $tag['field']; - $limit = empty($tag['limit']) ? 20 : $tag['limit']; - $order = empty($tag['order']) ? 'id desc' : $tag['order']; - if (!$model) { - return ''; - } - $parse = $parse = 'recom(\'' .$field. '\',' .$limit. ',\'' .$order. '\');'; - $parse .= 'foreach ($__LIST__ as $key => $'.$tag['id'].') {'; - $parse .= '?>'; - $parse .= $content; - $parse .= ''; - return $parse; - } - public function taglink($tag, $content){ $type = !empty($tag['type']) ? $tag['type'] : ''; $limit = !empty($tag['limit']) ? $tag['limit'] : ''; @@ -117,37 +65,11 @@ class Sent extends \think\template\TagLib { $map = implode(" and ", $where); $parse = $parse = 'where(\''.$map.'\')->field(\''.$field.'\')->limit(\''.$limit.'\')->order(\''.$order.'\')->select();'; + $parse .= '$__LIST__ = \\app\\model\\Link::where(\''.$map.'\')->field(\''.$field.'\')->limit(\''.$limit.'\')->order(\''.$order.'\')->select();'; $parse .= 'foreach ($__LIST__ as $key => $'.$tag['name'].') {'; $parse .= '?>'; $parse .= $content; $parse .= ''; return $parse; } - - public function tagprev($tag, $content){ - $id = !empty($tag['id']) ? $tag['id'] : ''; - $cate = !empty($tag['cate']) ? $tag['cate'] : ''; - $model = !empty($tag['model']) ? $tag['model'] : ''; - - $parse = '" . ' . $id . ';'; - $parse .= '$prev = db(\''.$model.'\')->where($map)->order(\'id asc\')->find();if(!empty($prev)){ ?>'; - $parse .= $content; - $parse .= ''; - return $parse; - } - - public function tagnext($tag, $content){ - $id = !empty($tag['id']) ? ($tag['id']) : ''; - $cate = !empty($tag['cate']) ? $tag['cate'] : ''; - $model = !empty($tag['model']) ? $tag['model'] : ''; - - $parse = 'where($map)->order(\'id desc\')->find();if(!empty($next)){ ?>'; - $parse .= $content; - $parse .= ''; - return $parse; - } } diff --git a/public/robots.txt b/public/robots.txt index eb053628..87e54e9a 100755 --- a/public/robots.txt +++ b/public/robots.txt @@ -1,2 +1,3 @@ User-agent: * Disallow: +Disallow: /template \ No newline at end of file