zoukankan      html  css  js  c++  java
  • dedecms调用问答模块(问题和回答)标签

      最近一直在看dedecms的二次开发,dedecms总是让人又爱又恨的,有的功能做的很好,有的功能是一笔带过,不过相对而言,dedecms给二次开发留的余地还是很大的,今天来说说怎么调用dedecms问答系统中问题和答案的。

      一、先来看看怎么调用dedecms问题的标签:

      {dede:ask row='6' qtype='new' tid='0' titlelen='24'}

      <dd>

      <span class="tclass">[[field:tidname/]]

      <span class="tlink"><a href="[field:url/]">[field:title/]

      </dd>

      {/dede:ask}

      具体的参数说明如下:

      row='6' 调用条数

      qtype='new' 排序类型 commend 推荐、ok 表示已解决问题、high 高分问题 、new 最新问题

      tid='0' 栏目id,默认是全部

      titlelen='24' 标题长度

      底层模板字段:

      tid,tidname,title,url,typeurl

      由此可以引申出一下几个调用标签:

      推荐问题:

      {dede:ask row='8' titlelen='40' sort='expiredtime'}

      <dd> <span class="tclass">[{dede:field.typedata /}]span><span class="tlink"><a href="question.php?id={dede:field.id /}">{dede:field.title /}a>span> </dd>

      {/dede:ask}

      待解决的问题:

      {dede:ask row='8' titlelen='40' sort='notok'}

      <dd> <span class="tclass">[{dede:field.typedata /}]span> <span class="tlink"><a href="question.php?id={dede:field.id /}">{dede:field.title /}a>span> dd>

      {/dede:ask}

      新解决的问题:

      {dede:ask row='8' titlelen='40' sort='ok'}

      <dd> <span class="tclass">[{dede:field.typedata /}]span> <span class="tlink"><a href="question.php?id={dede:field.id /}">{dede:field.title /}a>span> dd>

      {/dede:ask}

      高分悬赏问题:

      {dede:ask row='8' titlelen='40' sort='reward'}

      <dd> <span class="tclass">[{dede:field.typedata /}]span> <span class="tlink"><a href="question.php?id={dede:field.id /}">{dede:field.title /}a>span> </dd>

      {/dede:ask}

      二、调用一问一答式的标签:

      因为这个一问一答没有dedecms现成的标签,所以要启动dede的一个重要东东{dede:sql}{/dede:sql};可以说dedecms给 二次开发有很大扩展的原因就在于此,很多功能没有做,不是做不了,而是有待开发者去自己创造,数据库一切建好,就等网站的需求了。

      代码如下:

      {dede:sql sql="select dede_ask.id,dede_ask.title,dede_askanswer.content from dede_ask LEFT JOIN dede_askanswer on dede_ask.id=dede_askanswer.askid where dede_askanswer.ifanswer=1 and dede_askanswer.ifcheck=1 or dede_ask.bestanswer=dede_askanswer.id order by dede_ask.id desc LIMIT 0,6"}

      <li><a href="/ask/?ct=question&askaid=[field:id/]" class="link3">[field:title function=cn_substr(@me,46)/]<br/>

      [field:content function=cn_substr(html2text(@me),38)/],...<a href="/ask/?ct=question&askaid=[field:id/]" target="_blank">详情>>

      </li>

      {/dede:sql}

      上面的sql代码懂sql语句就可以看出缘由,dedecms问答的两张表,一张问题表dede_ask、一张回答表 dede_askanswer,(前 缀dede_,设置不同的请修改不同的前缀)两张表查询出一问一答的。上面的limit后跟的数字就是从那一个开始,到哪个结束,自由控制查出条数,显示 的字符也可以控制字数,这个由自身需求设置。

      不过上面的sql查询出的是dedecms问答系统的所有的采纳审核的问题和回答,如果想自己调用不同的类别的问答的话,就需要自己稍加修改sql语句就ok了,先看代码:

      SELECT dede_ask.id, dede_ask.title, dede_askanswer.content

      FROM dede_ask

      LEFT JOIN dede_askanswer ON dede_ask.id = dede_askanswer.askid

      WHERE dede_askanswer.ifanswer =1

      AND dede_askanswer.ifcheck =1

      AND dede_askanswer.tid =1

      ORDER BY dede_ask.id DESC

      LIMIT 0 , 6

      在dede的数据库中运行测试以上代码,这样方便,记得tid就是你划分的分类的大分类,也就是父类,在表中还会有一个tid2的,那个是子类,如 果你要查那个类别的问答,就修改成哪个类别的tid数字,这样就ok了,能查出来了,剩下的就和以上那个调用方法一样了,修改那面的那个sql语句即可。 (不过不要告诉我你不知道tid和tid2从哪里看!如果真的不会的话,建议你还是执行drop dede的sql吧,嘿嘿,玩笑)

      好了,以上就是济宁网站优化在dedecms问答二次开发中的关于调用问答标签的经验。望能给大家带来方便,少走弯路!

    清风明月本无价,近水远山皆有情。
  • 相关阅读:
    【转】Oracle中的decode在mysql中的等价实现
    Perhaps you are running on a JRE rather than a JDK
    iisapp -a命令出现 :此脚本不能与WScript工作
    HDU 6070 线段树
    HDU 1853 MCMF
    Codeforces 7C 扩展欧几里得
    HDU 5675 智慧数
    Lucas 大组合数
    bzoj 2179 FFT
    POJ 1155 树形背包
  • 原文地址:https://www.cnblogs.com/onlylove2015/p/4385848.html
Copyright © 2011-2022 走看看