本帖最后由 lidq.jingwu 于 2009-9-3 18:09 编辑
鉴于很多人都需要这个功能,现将代码与程序写在这里,供大家分亨,由于我本地的系统没有多少图片,所以就不发图了。
我是在资讯首页的news_index.html.php文件里面进行修改的,主要是修改“各分类最新资讯列表”的代码,用到一次数据调用,并且为了接收程序中传过来的变量,对系统中的sql参数的值做了相应的修改。
现逐步说明如下:
在news_index.html.php文件的找到如下代码:
<!--{loop $_SBLOCK['newslist'] $value}-->
这句代码是将$_SBLOCK['newslist']数组里面的每个键值依次放到$value里面以做循环。
如果将$value的值打印出来,如下:
Array(
[itemid] => 389
[catid] => 1
[uid] => 1
[tid] => 0
[username] => root
[itemtypeid] => 0
[type] => news
[subtype] =>
[subject] => iPhone传闻难琢磨 Verizon不肯
[dateline] => 1249008532
[lastpost] => 1249008532
[viewnum] => 9
[replynum] => 0
[goodrate] => 0
[badrate] => 0
[digest] => 0
[top] => 0
[allowreply] => 1
[hash] => 869f130cf84c4a5d
[folder] => 1
[haveattach] => 1
[grade] => 0
[gid] => 0
[gdigest] => 0
[password] =>
[styletitle] =>
[picid] => 1167
[subjectall] => iPhone传闻难琢磨 Verizon不肯定也不否定
[url] => http://localhost/s/?action-viewnews-itemid-389
)
在里面有一个picid,如果资讯中有图片的话,它里面会放入第一个图片的ID.
可以通过它来判断是否有图片,有就查库,取图片,没有就用默认图片。
在后台用tag这个基本模块的高级模式来生成的查询附件表代码,SQL如下:
SELECT * FROM supe_attachments WHERE aid=$aid
这里面的$aid是一个变量是$value[picid],生成调用代码后,$会变成%24,使用时要将它改过来才行。
生成的调用代码如下:
<!--{block name="tag" parameter="sql/SELECT%20%2A%20FROM%20supe_attachments%20WHERE%20aid%3D%24aid/limit/0,1/cachetime/900/cachename/attachment/tpl/data"}--><!--attachment-->
修改后如下:
<!--{block name="tag" parameter="sql/SELECT%20%2A%20FROM%20supe_attachments%20WHERE%20aid%3D$aid/limit/0,1/cachetime/900/cachename/attachment/tpl/data"}--><!--attachment-->
上面的讲解完了,根据上面的调用代码来写代码如下:
找到下面一段代码:
<!--{loop $_SBLOCK['newslist'] $value}-->
<li><span class="box_r">#date('m-d', $value['dateline'])#</span><a href="$value[url]" title="$value[subjectall]">$value[subject]</a></li>
<!--{/loop}-->
将其替换为:
<!--{loop $_SBLOCK['newslist'] $value}-->
<!--{if $value[picid]}-->
<!--{eval $aid = $value[picid];}-->
<!--{block name="tag" parameter="sql/SELECT%20%2A%20FROM%20supe_attachments%20WHERE%20aid%3D$aid/limit/0,1/cachetime/900/cachename/attachment/tpl/data"}--><!--attachment-->
<!--{eval $path = A_URL.'/'.$_SBLOCK[attachment][0][filepath];}-->
<li><img src="$path"/ ><span class="box_r">#date('m-d', $value['dateline'])#</span><a href="$value[url]" title="$value[subjectall]">$value[subject]</a></li>
<!--{else}-->
<li><img src="默认的图片路径"/ ><span class="box_r">#date('m-d', $value['dateline'])#</span><a href="$value[url]" title="$value[subjectall]">$value[subject]</a></li>
<!--{/if}-->
<!--{/loop}-->
这样设置完就OK了。 |