index.htm
或类似的文件)。,2. 在需要显示问题列表的位置插入以下代码:,,“html,{dede:sql name=getQuestions},SELECT * FROM
#@__qa_question ORDER BY id DESC,{/dede:sql},{dede:list row='10' titlelen='50' orderby='pubdate'},[field:title function="cn_substr(@me,1,50)"/],{/dede:list},
`,,这个代码做了以下几件事:,,1. 使用
{dede:sql}标签执行一个SQL查询,从
#@__qa_question表中选择所有记录,并按
id降序排列。,2. 使用
{dede:list}标签循环遍历查询结果,并显示每个问题的标题。,3.
row=’10’表示每页显示10条记录。,4.
titlelen=’50’表示标题长度限制为50个字符。,5.
orderby=’pubdate’表示按发布日期排序。,,请根据你的具体需求调整这些参数。如果你想要显示更多或更少的问题,可以修改
row`的值。如果表名或字段名不同,请相应地修改SQL查询中的表名和字段名。,,希望这能帮助到你!在DedeCMS中,要实现问答首页调用所有问题列表,可以通过修改模板文件和编写自定义标签来实现,以下是一个详细的步骤指南:
1. 创建自定义标签
我们需要创建一个自定义标签来获取所有的问答数据,打开include/arc.tagdefault.class.php
文件,添加如下代码:
/** * 获取问答列表 */ function getQAList($recommend = 'n', $typeid = '1', $num = 20, $orderway = 'desc', $cache = 0) { global $dsql; $row = $dsql>GetOne("SELECT count(*) as total FROM dede_ask where status=1"); if ($row['total'] == 0) return ''; $pagesize = $num; $pagenum = $this>PageSet($row['total'], $pagesize); $limitSql = " limit " . ($pagenum['start'] 1) * $pagesize . ", $pagesize"; $orderSql = ($orderway == 'desc' ? ' order by id desc' : ' order by id asc'); $list = $dsql>GetList("SELECT * from dede_ask where status=1 $orderSql $limitSql"); return $list; }
2. 修改模板文件
我们需要在模板文件中调用这个自定义标签,假设你的问答首页模板文件是templets/default/article_qa_list.htm
,编辑该文件并添加如下代码:
{dede:getQAList} <ul> {loop $list $item} <li> <h3><a href="{dede:field name='url'/}">{dede:field name='title'/}</a></h3> <p>{dede:field name='content' function='cn_substr(@me,80)'/}</p> <span class="date">{dede:field name='pubdate' function='MyDate("Ymd",@me)'/}</span> </li> {/loop} </ul> {/dede:getQAList}
3. 刷新缓存
完成上述步骤后,刷新DedeCMS的缓存,以确保新标签生效,进入后台 > 系统管理 > SQL命令行工具,执行以下SQL语句:
DELETE FROM dede_cache WHERE mark='index';
重新生成首页即可看到效果。
FAQs
1. 如何更改每页显示的问题数量?
在模板文件中,你可以看到这样的一行代码:
{dede:getQAList num='10'}
这里的num='10'
表示每页显示10个问题,你可以将数字改为你需要的数量,例如num='20'
表示每页显示20个问题。
2. 如果我想按时间倒序排列问题,该如何操作?
同样在模板文件中,有这样一行代码:
{dede:getQAList orderway='desc'}
这里的orderway='desc'
表示按时间倒序排列,如果你想按时间正序排列,可以将desc
改为asc
。
序号 | 方法名称 | 参数说明 | 返回结果 | 说明 |
1 | {dede:arclist} | row='10' page='1' titlelen='30' typeid='0' nnews='10' orderby='id' rOrderBy='desc' nopic='1' flag='0' channelid='0' classid='0' listtemp='content/index_article_list' getlastpost='1' } | 问题列表及其相关信息 | 使用此标签调用指定类别的所有问题,参数可以根据需要进行调整。row 表示每页显示的条数,page 表示当前页码,titlelen 长度,typeid 表示分类ID,nnews 表示新闻数量,orderby 表示排序方式,rOrderBy 表示降序或升序,nopic 表示是否显示图片,flag 表示是否显示推荐,channelid 表示频道ID,classid 表示栏目ID,listtemp 表示列表模板,getlastpost 表示获取最后一条帖子 |
2 | {dede:arctype} | id='0' typeid='0' row='10' col='1' titlelen='30' classid='0' listtemp='content/index_article_list' channeltype='0' reid='0' } | 分类列表 | 使用此标签调用指定分类的问题列表,参数可以根据需要进行调整。id 表示分类ID,typeid 表示分类类型,row 表示每页显示的条数,col 表示每行显示的条数,titlelen 长度,classid 表示栏目ID,listtemp 表示列表模板,channeltype 表示频道类型,reid 表示推荐ID |
3 | {dede:arctype} | id='0' typeid='0' row='10' col='1' titlelen='30' classid='0' listtemp='content/index_article_list' channeltype='0' reid='0' } | 栏目列表 | 使用此标签调用指定栏目的所有问题列表,参数可以根据需要进行调整。id 表示栏目ID,typeid 表示分类类型,row 表示每页显示的条数,col 表示每行显示的条数,titlelen 长度,classid 表示栏目ID,listtemp 表示列表模板,channeltype 表示频道类型,reid 表示推荐ID |
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1212523.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复