Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

如何写展示代码

[复制链接]
lidq.jingwu 发表于 2009-9-9 20:55:55 | 显示全部楼层 |阅读模式
本帖最后由 lidq.jingwu 于 2009-9-9 20:57 编辑

在看本文之前如果没有php基础,请先看下面两篇文章:
写数据调用的展示代码前应知道的一些知识:https://discuz.dismall.com/thread-1408121-1-1.html
模板里经常用到以下几个标签的说明:https://discuz.dismall.com/viewth ... page%3D1&page=1

本文在于通过一个例子来讲解如何写展示代码,本例将修改index.html.php文件中的本月精华的展示代码,以达到在有图片的资讯前面加一个“(图)”字,来提醒浏览者。
调用代码就不修改了,还用原来的。
1、在index.html.php文件里面找到下面本月精华的调用代码,即:
  1. <!--{block name="spacenews" parameter="digest/1,2,3/order/i.viewnum DESC,i.dateline DESC/limit/0,6/cachetime/89877/subjectlen/34/subjectdot/0/cachename/hotnews2"}-->
复制代码
如果看不懂这段调用代码,可以看下面一个教程:
教您如何读懂模块代码里的参数:http://faq.comsenz.com/viewnews-312

由调用代码中cachename的值可以知道查询出来的数据是放在 $_SBLOCK['hotnews2'] 变量里面的。
为了分析变量里面的数据结构,我们用下面两句代码将它打印出来,即将下面两句放在调用代码的后面。
  1.         <!--{eval print_r($_SBLOCK['hotnews2']);}-->
  2.         <!--{eval exit;}-->
复制代码
然后刷新页面,可以看到如图效果:

但这样我们看到的数据结构还不是很清晰,可以查看源代码,在源代码里面可以清晰的看到它的结构。
在源代码里面的,打印出来的数据如下,由于数据很多,这里只截取前两个key所对应的记录,做分析用:
  1. Array
  2. (
  3.     [44] => Array
  4.         (
  5.             [itemid] => 44
  6.             [catid] => 2
  7.             [uid] => 1
  8.             [tid] => 0
  9.             [username] => root
  10.             [itemtypeid] => 0
  11.             [type] => news
  12.             [subtype] =>
  13.             [subject] => 互联网出版产值将达10亿元 博客文&nbsp;
  14.             [dateline] => 1251858665
  15.             [lastpost] => 1251858665
  16.             [viewnum] => 3
  17.             [replynum] => 0
  18.             [goodrate] => 0
  19.             [badrate] => 0
  20.             [digest] => 0
  21.             [top] => 0
  22.             [allowreply] => 1
  23.             [hash] => ccc67b930b949371
  24.             [folder] => 1
  25.             [haveattach] => 1
  26.             [grade] => 0
  27.             [gid] => 0
  28.             [gdigest] => 0
  29.             [password] =>
  30.             [styletitle] =>
  31.             [picid] => 11
  32.             [subjectall] => 互联网出版产值将达10亿元 博客文学或有潜力
  33.             [url] => http://localhost/s/?action-viewnews-itemid-44
  34.         )

  35.     [43] => Array
  36.         (
  37.             [itemid] => 43
  38.             [catid] => 2
  39.             [uid] => 1
  40.             [tid] => 0
  41.             [username] => root
  42.             [itemtypeid] => 0
  43.             [type] => news
  44.             [subtype] =>
  45.             [subject] => 数据显示亚洲PE投资额已占全球三成
  46.             [dateline] => 1251858663
  47.             [lastpost] => 1251858663
  48.             [viewnum] => 3
  49.             [replynum] => 0
  50.             [goodrate] => 0
  51.             [badrate] => 0
  52.             [digest] => 0
  53.             [top] => 0
  54.             [allowreply] => 1
  55.             [hash] => 7c8fca351baf68f2
  56.             [folder] => 1
  57.             [haveattach] => 1
  58.             [grade] => 0
  59.             [gid] => 0
  60.             [gdigest] => 0
  61.             [password] =>
  62.             [styletitle] =>
  63.             [picid] => 12
  64.             [subjectall] => 数据显示亚洲PE投资额已占全球三成
  65.             [url] => http://localhost/s/?action-viewnews-itemid-43
  66.         )
  67. )
复制代码
在这段数据中,外层的key值是用来区分从数据库中查询出来的记录的,在这里它与内层数组的key:itemid对应的value值是一致的。
外层的key对应的数组中与数据库中表字段基本上是一致的,但也有个别的不一致,那是因为程序处理的需要而加上去的,如 url所对应的值,就是经过程序处理的值。

我们要判断这些资讯里面那些有图片。
看表的字段说明可以知道有一个这样的图片标志位即:picid,即如果资讯有图片,它值是是资讯中第一张图片的ID,如果没有则为0。

由此我们可以将原来的显示代码,如下:
  1. <div class="col2">
  2.         <div class="global_module bg_fff">
  3.                 <div class="global_module2_caption"><h3>本月精华</h3></div>
  4.                 <ul class="global_tx_list2">
  5.                 <!--{loop $_SBLOCK['hotnews2'] $value}-->
  6.                         <li><a href="$value[url]" title="$value[subjectall]">$value[subject]</a></li>
  7.                 <!--{/loop}-->
  8.                 </ul>
  9.         </div>
  10. </div><!--col2 end-->
复制代码
修改为下面的显示代码:
  1. <div class="col2">
  2.         <div class="global_module bg_fff">
  3.                 <div class="global_module2_caption"><h3>本月精华</h3></div>
  4.                 <ul class="global_tx_list2">
  5.                         <!--{loop $_SBLOCK['hotnews2'] $value}-->
  6.                                 <!--{if $value[picid]>0}-->
  7.                                         <li><a href="$value[url]" title="$value[subjectall]">(图)$value[subject]</a></li>
  8.                                 <!--{else}-->
  9.                                         <li><a href="$value[url]" title="$value[subjectall]">$value[subject]</a></li>
  10.                                 <!--{/if}-->
  11.                         <!--{/loop}-->
  12.                 </ul>
  13.         </div>
  14. </div><!--col2 end-->
复制代码
这段代码还用原来的 loop 循环,在循环的内部加了判断条件,对每一条记录的picid的值判断,如果大于0,加上(图),反之则不加。
效果如图:

扩展:在进行判断时,要对数据进行比较,下面是一些php中经常用到的比较运行符。
例子                名称         结果
$a == $b        等于         TRUE,如果 $a 等于 $b       
$a != $b        不等         TRUE,如果 $a 不等于 $b       
$a <> $b        不等         TRUE,如果 $a 不等于 $b       
$a < $b                小与         TRUE,如果 $a 严格小于 $b
$a > $b                大于         TRUE,如果 $a 严格 $b       
$a <= $b        小于等于         TRUE,如果 $a 小于或者等于 $b
$a >= $b        大于等于         TRUE,如果 $a 大于或者等于 $b

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

1

查看全部评分

海梦缘 发表于 2009-9-11 16:08:41 | 显示全部楼层
哦 又学会了一项技能
回复

使用道具 举报

popuppp 发表于 2009-9-16 18:24:04 | 显示全部楼层
((mk10)) 总结的很好。呵呵。楼主,调用论坛指定版块贴子的完整代码是什么呢?
回复

使用道具 举报

 楼主| lidq.jingwu 发表于 2009-9-17 10:07:41 | 显示全部楼层
3# popuppp


完整代码要你们自已写的,这里只提供思路。
回复

使用道具 举报

popuppp 发表于 2009-9-17 11:04:27 | 显示全部楼层
是这样的啊,明白了。
回复

使用道具 举报

cnxinheng 发表于 2009-11-9 02:06:38 | 显示全部楼层
还是配合数据库来使用好过,phpmyadmin打开相应的表,一看就知道了。。。
回复

使用道具 举报

zif2003 发表于 2009-11-11 15:15:48 | 显示全部楼层
为了分析变量里面的数据结构,我们用下面两句代码将它打印出来,即将下面两句放在调用代码的后面。        <!--{eval print_r($_SBLOCK['hotnews2']);}-->

        <!--{eval exit;}-->


这个好用。 一下子知道需要调用的参数了。
回复

使用道具 举报

那些感伤 发表于 2009-11-11 16:05:41 | 显示全部楼层
LZ能说下模块和模板吗?我知道模块是读取数据用的。但是不知道怎用啊。看了SS手册还是没搞懂用法。我是做前台的。是不是把写好的代码放到新建的模板中就可以了。可是模块呢?实在是搞不懂啊。。我是菜菜!谢谢。
回复

使用道具 举报

那些感伤 发表于 2009-11-11 16:23:54 | 显示全部楼层
找到些资料。有点头绪了呵呵~
回复

使用道具 举报

abcnic18 发表于 2009-11-19 14:30:26 | 显示全部楼层
很有帮助!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-15 01:14 , Processed in 0.037425 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表