织梦有个问答模块,但是没用过 也没想着尝试去了解,那就用自己相对比较熟悉的栏目来做吧,且看我是如何做的
1、新建问答模板
问答模块跟文章发布是不一样的,所以不能跟文章一样都用普通的文档模板,新建一个自己的模板吧,在 核心——内容模型 管理 中新增一个模型,可以自己手动添加 也可以暂时拷贝我这里的规则,可以直接导入使用的-9
ch17
问答模块
#@__archives
#@__addon_ask
archives_sg_add.php
content_sg_list.php
archives_sg_edit.php
archives_sg_add.php
content_sg_list.php
archives_sg_edit.php
channel,arcrank,mid,click,title,senddate,flag,lastpost,scores,goodpost,badpost
-1
1
0
-1
0
0
1
1
标题
0
0
不知道是什么原因,新建频道的时候是9 结果导出规则的时候变成-9了,好吧 那就-9吧 尝试过修改 但是失败了 导致整个频道不可用,没办法 删除了再来过。
2、新增一个问答栏目,添加一篇问答
跟普通的栏目添加方式一样,新增一个栏目 不同的是内容模型我们选择是问答模型而不是普通文章,新增好了之后 进入该栏目 然后 添加一篇文章 你会发现这个时候跟你普通的栏目添加文章显示出来的是不一样的 是下图这个样子
ok 按要求添加就是了,注意 回复/审核状态 这里 这个是控制我们的问答是否展示出来的关键。
3、前台调用方法
在栏目属性中找到对应的列表模板文件名跟文档模板文件名 然后新建这样两个模板 为了方便测试 看看我的
A、列表模板{dede:sql sql="select * from dede_addon_ask where channel='-9' and astatus='未回复' limit 0,15"}
[field:title/]
[field:ades/]
[field:adoctor/]
[field:atime2 function='strftime("%Y-%m-%d %H:%M",@me)'/]
[field:acontent/]
{/dede:sql}
B、文档模板
.blue,.red,.black,.green{padding:5px 10px; overflow:hidden;margin-bottom:6px;font-size:14px;}
.blue{border:1px solid blue;}
.red{border:1px solid red;}
.black{border:1px solid black;}
.green{border:1px solid green;}
p{line-height:24px;margin:0;padding:0}
.vi0{display:none;}/*通过系统标签获取审核状态 可以控制其是否在页面上显示(不包括源代码)/
.vi1{}
标题:{dede:field.title/}
分类:{dede:field.afenlei/}
详细:{dede:field.ades/}
提问者:{dede:field.aname/}
联系方式:{dede:field.atell/}
提问时间:{dede:field.senddate function='GetDateTimeMK(@me)'/}
回复状态:{dede:field.astatus/} (vi{dede:field.astatus runphp='yes'}@me=@me=='未回复'?'0':'1';{/dede:field.astatus})
回复医生:{dede:field.adoctor/}
回复时间:{dede:field.atime2 function='strftime("%Y-%m-%d %H:%M",@me)'/}
回复内容:{dede:field name='array' runphp='yes'}@me=@me['astatus']=="未回复"?"该问答尚未通过审核,暂不予展示":@me['acontent'];{/dede:field}
*重点是文档中 处理只显示回复过了的问答,这上面用到了几个runphp='yes' 大家仔细研究下 会有不小收获的, 可以通过这个方法控制某个东西在样式上 是否display:none 也可以直接像上面这样不在源码中展示。
最后上两个图看一下吧
未审核问答
已审核问答