本帖最后由 ELIVEN 于 2009-12-3 16:40 编辑
演示:http://www.hzkan.com/
首页的招聘信息,房屋信息就是调用论坛分类信息数据的!
原文:http://www.hzkan.com/blog/index.php/2009/11/supesite-the-forum-classifieds/
现在的Discuz分类信息功能越来越完善了,很容易就可以搭建一个DZ版的CMS,但现在很多站长都还是使用SupeSite与Discuz相结合的方式,如何在SupeSite首页实现Discuz论坛分类信息的调用呢??
大家都知道,SupeSite的模块功能很强大,可以很容易实现SQL数据库信息调用,可扩展性很强。我们就用SupeSite的调用功能来实现在SupeSite调用论坛分类信息。
第一步:我们需要两个SQL调用语句
- <!–{block name="bbsthread" parameter="sql/SELECT%20%2A%20%0D%0AFROM%20cdb_threads%20t%2C%20cdb_threadtypes%20y%0D%0AWHERE%20t.sortid%20%3D%20y.typeid%0D%0AAND%20t.fid%20%3D{$fid}/limit/0,10/cachetime/200/subjectlen/15/bbsurltype/bbs/cachename/bbsthread/tpl/data"}–><!–论坛主题调用–>
复制代码 这个是调用分类信息标题和分类名称等相关信息的,看到里面有个{$fid}了吗?这是为了这段代码能够更加灵活而设置的。具体往下看!- <!–{block name="tag" parameter="sql/SELECT%20v.%60tid%60%20%2C%20v.%60value%60%20%2C%20v.%60optionid%60%20%2C%20o.type%2C%20o.rules%0D%0AFROM%20%60cdb_typeoptionvars%60%20v%0D%0AJOIN%20%60cdb_typeoptions%60%20o%20ON%20o.optionid%20%3D%20v.optionid%0D%0AWHERE%20v.%60tid%60%20%3D%20{$value[tid]}%0D%0AAND%20v.%60optionid%60%20%0D%0AIN%20%28%20{$optionid}%20%29%20%0D%0AORDER%20BY%20find_in_set%28%20v.optionid%2C%20%27{$optionid}%27%20%29/limit/0,10/cachetime/900/cachename/housefl/tpl/data"}–><!–帖子分类信息调用–>
复制代码 这个是调用分类信息各字段数据的,代码中的{$value[tid]}是取得前一段代码的掉的tid,即帖子的tid, {$optionid}是变量中设置的分类信息字段ID,可以在论坛分类信息管理里面查看到每个字段的optionid。
第二步:总体代码实现- <table cellspacing="0" cellpadding="0" border="0" class="HrmsgList" id="HrmsgList">
- <tbody>
- <!–{eval $fid="18";}–><!–版块fid –>
- <!–{eval $optionid="46,51";}–><!–要调用的字段optionid –>
- <!–{block name="bbsthread" parameter="sql/SELECT%20%2A%20%0D%0AFROM%20cdb_threads%20t%2C%20cdb_threadtypes%20y%0D%0AWHERE%20t.sortid%20%3D%20y.typeid%0D%0AAND%20t.fid%20%3D{$fid}/limit/0,10/cachetime/200/subjectlen/15/bbsurltype/bbs/cachename/bbsthread/tpl/data"}–><!–论坛主题调用–>
- <!–{if !empty($_SBLOCK[‘bbsthread’])}–>
- <!–{loop $_SBLOCK[‘bbsthread’] $key $value}–>
- <tr>
- <td width="12%"><span class="type"><a target="_blank" href="{B_URL}/forumdisplay.php?fid=$value[fid]&filter=sort&sortid=$value[sortid]" class="familyAlpha">[{$value[name]}]</a></span></td>
- <!–{if $value[’sortid’] == "6" }–>
- <td colspan="2" width="88%"><span class="author">By:<a href="http://my.hzkan.com/space.php?uid=$value[authorid]" target="_blank">{$value[author]}</a></span><a target="_blank" href="$value[url]"><span class="jobname">{$value[subject]}</span></a></td>
- <!–{/if}–>
- <!–{block name="tag" parameter="sql/SELECT%20v.%60tid%60%20%2C%20v.%60value%60%20%2C%20v.%60optionid%60%20%2C%20o.type%2C%20o.rules%0D%0AFROM%20%60cdb_typeoptionvars%60%20v%0D%0AJOIN%20%60cdb_typeoptions%60%20o%20ON%20o.optionid%20%3D%20v.optionid%0D%0AWHERE%20v.%60tid%60%20%3D%20{$value[tid]}%0D%0AAND%20v.%60optionid%60%20%0D%0AIN%20%28%20{$optionid}%20%29%20%0D%0AORDER%20BY%20find_in_set%28%20v.optionid%2C%20%27{$optionid}%27%20%29/limit/0,10/cachetime/900/cachename/housefl/tpl/data"}–><!–帖子分类信息调用–>
- <!–{loop $_SBLOCK[‘housefl’] $key $kvalue}–>
- <!–{if $kvalue[‘optionid’] == "46" }–><!–职位–>
- <td width="38%" class="center"><a target="_blank" href="$value[url]" class="familyAlpha"><span class="jobname">{$kvalue[value]}</span></a></td>
- <!–{else}–>
- <td width="50%">{echo cutstr($kvalue[value],28)}</td>
- <!–{/if}–>
- <!–{/loop}–>
- </tr>
- <!–{/loop}–>
- <!–{else}–>
- <tr>
- <td><a href="{B_URL}/forumdisplay.php?fid=18">点击发布信息</a></td>
- </tr>
- <!–{/if}–>
- </tbody>
- </table>
复制代码 由于分类信息里面的字段是不能单独调用的,只能用判断optionid来定义各字段的样式,代码中用了一些IF语句来控制不同字段的样式,例如列宽。
具体各位懂代码的可以自己研究完善下!~~本人也是菜鸟一个~~懂的不多~见笑了!~~ |