接触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................
===========
|