接触jtbc有一个多月了,很好....再次感谢jtbc! 这几天结合网上的强贴解决了以下问题,拿来与大家共享: 1.利用isort函数和itransfer函数实现网站自动生成目录和相应目录的办法,思路是(说明我的模块名为news): 利用两次isort函数,在module.list节点中加入函数 ========== {$=isort("tpl=1_2;rnum=1;class=" & request("classid"))} ============ 注意上面的tpl=1_2很关键,(.tpl.tpl_sort.1_2)节点,1_2节点内容为 ============= <table border="0" width="100%" cellpadding="0" cellspacing="0" class="lrbtline">{$} {$$} <tr><td height="25" class="tbh"><img src="{$global.images}public/small/pointblue.gif" border="0"><a href="{$=curl("{$baseurl}", iurl('list', {$id}, {$urltype}, 'folder={$createfolder};filetype={$createfiletype}'))}" target="_self">{$sort}</a></td> </tr> <tr> <td>{$=itransfer('top', 'my_sort_2', 'topx=10;tnum=50;genre=news;osql= and [jtb_aclass] in("&{$id}&")')} </td> </tr>{$$}{$} </table> ====== 注意里面有一个my_sort_2的节点,内容为公用调用模版中的节点.tpl.tpl_transfer.my_sort_2 ==================== <table border="0" width="100%" cellpadding="0" cellspacing="0" >{$} <tr>{$$} <td class="tda"><img src="{$global.images}public/small/sico.gif" border="0"><a href="{$=curl("{$baseurl}", iurl('detail', {$id}, {$urltype}, 'folder={$createfolder};filetype={$createfiletype};time={$time}'))}" target="_self">{$topic}</a>(阅读:{$count})</td><td align="right" class="tda">{$=format_date("{$time}",1)}</td>{$$} </tr>{$} </table> ================= 这样文章类和相应类的文章列表就自动生成了,但美中不足的是当运行到没有子类的时候(我称为终极类别),显示类别为空,此时无法生成下一级列表.导致终极类显示不好看. 经过我昨天到今天的思索,终于实现了终极文章显示的问题.这是我主要想讲的 2.实现文章终极列表页的思路和方法: 思路:1实现了有子类的情况,但在终极列表出现时却还是使用list模版,系统只有两种模式,list类模版和详细页detail模式. 我在list模式中加了些改进,即在调入处理模版前先断定是否为终极类,若为非终极类,按原LIST模版处理,若为终极类,则按我们的终极类模版(我定义此终极类的模版节点为lastlist) ///修改方法 1.修改/common/incfiles/目录下的module_config.asp处理程序.<font class="red">
Function jtb_cms_module_list() Dim classid, classids classid = get_num(request.querystring("classid"),0) classids = get_sortids(ngenre, nlng) '目前默认是处理有子类的列表类,遇到终极列表类则显示不友好,故作以下改进 '判断是否为终极类,是则继续下去,否则,调用终极模版 '判断方法:判断当前sortid的值是否存在于sort_fid字段中,注意此时必须加上此ID的类型值sort_genre为条件 '即此类型中的父ID是否存在,若存在,则为非终极类,继续执行此列表;若为空说明此为终极列表,则调用终极模版 Dim tmpstr, tmpastr, tmprstr, tmptstr '============================加入代码部分<font class="red"> Dim mygenre,myrs,mysqlstr mygenre ="news" '直接指定模块名,注意不同类别模块名称字不同 set myrs=server.createobject("adodb.recordset") mysqlstr="select * from jtb_sys_sort where sort_fsid ="&classid& " and sort_genre ='"&mygenre&"' and sort_hidden =0" Set myrs = conn.Execute(mysqlstr) If Not myrs.eof Then '非终极列表 tmpstr = itake("module.list", "tpl") '将模版module文件中的list节点的内容输出来 ' Call client_alert("intolist", -1) else '为终极列表 tmpstr = itake("module.lastlist", "tpl") '将终极模版中的module文件中的lastlist节点的内容输出来 ' Call client_alert("success,intolastlish", -1) end if Set myrs = Nothing
'=====================下面的不变 tmpastr = ctemplate(tmpstr, "{$recurrence_ida}") sqlstr = "select top " & nlisttopx & " * from " & ndatabase & " where " & cfname("hidden") & "=0" If Not classid = 0 Then Then................ ===========
帖子被 sztomjon 于 2009-10-05 18:29:04 编辑过 |