1. 现在数据表格显示的字段比较少,增加了作者、书源、父栏目名
2. 关键字现在只搜索正文,所以把作者、简介等也一并加进了搜索
3. 标题增加点击后跳转
效果是这样的:
涉及代码如下:
\application\admin\view\novel\index.html
... <div class="layui-card-body"> <form class="layui-form" action="{:url('del')}"> <div style="padding-bottom: 10px;"> <button class="layui-btn layui-btn-danger" lay-submit lay-filter="del" type="submit"><i class="layui-icon layui-icon-delete"></i> 删除</button> <button class="layui-btn" type="button" onclick="admin_show('添加','{:url('add')}',0,0,1)"><i class="layui-icon layui-icon-add-1"></i> 添加</button> <button class="layui-btn layui-btn-normal" type="button" open-select open-title="修改栏目" open-url="{:url('category')}" open-width="400" open-height="150"><i class="layui-icon layui-icon-more"></i> 栏目</button> </div> <table class="layui-table"> <colgroup> <col width="50"> <col width="80"> <col> <col width="80"> <col width="150"> <col width="90"> <col width="90"> <col width="90"> <col width="150"> <col width="100"> <col width="400"> </colgroup> <thead> <tr> <th><input name="layTableCheckbox" lay-filter="layTableAllChoose" type="checkbox" lay-skin="primary"></th> <th>id</th> <th>书名</th> <th>作者</th> <th>栏目</th> <th>字数</th> <th>连载</th> <th>书源</th> <th>更新时间</th> <th>状态</th> <th><div align="center">操作</div></th> </tr> </thead> <tbody> {notempty name="list"} {volist name="list" id="vo"} <tr> <td><input name="id[]" type="checkbox" lay-skin="primary" value="{$vo.id}"></td> <td>{$vo.id}</td> <td> <a href="{:url('home/novel/index',['id'=>$vo['id']])}" target="_blank"> {$vo.title} </a> <span class="pl-20"> {volist name="Think.config.web.document_position" id="pos"} {if check_document_position($vo['position'],$key)} {switch name="key"} {case value="1"}<span class="layui-badge layui-bg-cyan">列推</span>{/case} {case value="2"}<span class="layui-badge layui-bg-orange">频推</span>{/case} {case value="4"}<span class="layui-badge">首推</span>{/case} {/switch} {/if} {/volist} {if $vo['create_time']>strtotime('-3month')} <span class="layui-badge layui-bg-blue">新书</span> {/if} </span> </td> <td>{$vo.author}</td> <td>{$vo.category_fulltext}</td> <td>{:number_format($vo.word/10000,2)}万</td> <td>{$vo.serialize_text}</td> <td>{$vo.collect["title"]}</td> <td>{$vo.update_time|time_format="Y-m-d H:i"}</td> <td><input type="checkbox" name="status" value="{$vo.status}" lay-skin="switch" lay-text="正常|禁用" lay-filter="status" lay-url="{:url('status',['id'=>$vo['id']])}" {eq name="vo.status" value="1"}checked{/eq}></td> <td> <a onclick="admin_show('推荐','{:url('position',['id'=>$vo['id']])}',379,118,0,1)" class="layui-btn layui-bg-cyan layui-btn-xs" href="javascript:;"><i class="layui-icon layui-icon-star"></i>推荐</a> <a onclick="admin_show('编辑','{:url('edit',['id'=>$vo['id']])}',0,0,1)" class="layui-btn layui-btn-normal layui-btn-xs" href="javascript:;"><i class="layui-icon layui-icon-edit"></i>编辑</a> <a class="layui-btn layui-btn-danger layui-btn-xs" onclick="admin_del(this,'{:url('del',['id'=>$vo['id']])}')"><i class="layui-icon layui-icon-delete"></i>删除</a> <a onclick="admin_show('管理章节','{:url('NovelChapter/index',['id'=>$vo['id']])}',0,0,1)" class="layui-btn layui-btn-xs" href="javascript:;"><i class="layui-icon layui-icon-add-1"></i>管理章节</a> <a onclick="admin_show('管理评论','{:url('Comment/index',['type'=>'novel','id'=>$vo['id']])}',800,600)" class="layui-btn layui-btn-warm layui-btn-xs" href="javascript:;"><i class="layui-icon layui-icon-reply-fill"></i>评论{notempty name="vo['comment_count']"}<span class="layui-badge">{$vo['comment_count']}</span>{/notempty}</a> </td> </tr> {/volist} {else/} <td colspan="8"> aOh! 暂时还没有内容! </td> {/notempty} </tbody> </table> <div class="page"> {$list->appends("keywords",Request::param("keywords"))|raw} </div> </form> </div> ...
\application\admin\model\Novel.php
... // 新增方法,用于category_fulltext调用 public function getCategoryFullTextAttr($value,$data){ $parent = model('common/api')->get_category($data['category'],'pid'); $name = model('common/api')->get_category($data['category'],'title'); while ($parent && $parent!=0){ $name = model('common/api')->get_category($parent,'title') ."|" . $name; $parent = model('common/api')->get_category($parent,'pid'); } return $name; } ... // 小说列表 public function lists($extra=[]){ $map = []; if(Request::param('category')){ $map[] = ['category','=',Request::param('category')]; } $serialize=Request::param('serialize'); if(isset($serialize)){ $map[] = ['serialize','=',Request::param('serialize')]; } if(Request::param('keywords')){ $map[] = ['title|author|content|tag','like','%'.Request::param('keywords').'%']; } if(Request::param('position')){ $map[] = ['position','exp',Db::raw('& '.Request::param('position').' = '.Request::param('position'))]; } $status=Request::param('status'); if(isset($status)){ $map[] = ['status','=',$status]; } if(Request::param('order')){ $order = Request::param('order'); if(strstr($order,'+')){ $order=str_replace('+',' ',$order); } }else{ $order = 'update_time desc'; } if(isset($extra)){ $map=array_merge($map,$extra); } $list=Novel::where($map)->order($order)->paginate(config('web.list_rows'))->each(function($item, $key){ $item->comment_count = Db::name('comment')->where(['type'=>'novel','mid'=>$item->id,'pid'=>0])->count('id'); $item->collect = Db::name('novel_chapter')->alias("nc")->leftJoin("collect co","nc.collect_id = co.id")->field('co.title,co.id')->where(['novel_id'=>$item->id])->limit(1)->find(); }); return $list; }
感谢作者开源这个平台,试用了两天感觉越来越熟手了
stan2515
发表于 2022-4-12
PHP 代码好像不对吧
评论列表
加载数据中...
stan2515
发表于 2022-4-12
加载这段
变量 的时候 他喵的网关繁忙 不会是我之前删除了 采集规则的原因吧
评论列表
加载数据中...
xiaoshuo88
发表于 2022-4-12
stan2515
2022-4-12
加载这段
变量 的时候 他喵的网关繁忙 不会是我之前删除了 采集规则的原因吧
我没有考虑删掉采集的情况,可以改成这样
\application\admin\view\novel\index.html
\application\admin\model\Novel.php
这样如果删掉了采集,那一栏会留空
评论列表
加载数据中...
stan2515
发表于 2022-4-20
xiaoshuo88
2022-4-12
我没有考虑删掉采集的情况,可以改成这样
\application\admin\view\novel\index.html
\application\admin\model\Novel.php
这样如果删掉了采集,那一栏会留空
感谢 问题已经解决了
评论列表
加载数据中...
stan2515
发表于 2022-4-20
评论列表
加载数据中...