半神半圣亦半仙,全儒全道是全闲,脑中真书藏万贯,掌握文武半边天。
May 19
我们在SupeSite系统的每个模板里,都可以看到类似的一段代码:

<!--{block name="spacenews" parameter="dateline/2592000/haveattach/1/showattach/1/order/i.viewnum DESC/showdetail/1/messagelen/180/messagedot/1/limit/0,1/cachetime/98800/subjectlen/30/cachename/hotnews/tpl/data"}-->
  <div id="topicnews" class="block" style="height: 240px; overflow: hidden;">
    <h3>月点击图文头条</h3>
    <!--{loop $_SBLOCK[hotnews] $value}-->
    <p class="blockintro"><a href="$value[url]"><img src="$value[a_thumbpath]" class="blockintroimg" alt="$value[subject]" /></a>$value[message]...<a href="$value[url]">阅读更多</a></p>
    <!--{/loop}-->
  </div>

这里给大家解释下这段代码的作用:

一、


<!--{block name="spacenews" parameter="dateline/2592000/haveattach/1/showattach/1/order/i.viewnum DESC/showdetail/1/messagelen/180/messagedot/1/limit/0,1/cachetime/98800/subjectlen/30/cachename/hotnews/tpl/data"}-->


包含两个部分的内容:

1、根据 parameter 后面给出的参数在数据库里查询某个数据表,将查询到的所有资源存放到 $_SBLOCK[变量名] 数组里。通俗的说法是,这段代码相当与一段SQL的 select 语句,查询的数据表是 name 后面的参数,查询的条件是 parameter 后面的参数,最后查询的果存放到 $_SBLOCK[变量名] ,变量名是 cachename 后面的参数。

2、确定这部分数据的缓存时间:cachetime后面的参数,单位是秒;确定这部分数据在页面的显示模板:tpl后面的参数,如:data,那么这段数据显示的模板是:.\styles\data.html.php。大家可以看到 .\styles\data.html.php 这个文件夹里没有定义任何样式,所以必须在 block 代码下方定义样式。

二、


<!--{loop $_SBLOCK[hotnews] $value}-->
...
<!--{/loop}-->


loop 的含义是:将 $_SBLOCK[hotnews] 数组里的资源,逐一存放到 $value 数组里。注意:loop 和 foreach() 函数的作用一样。

三、


<p class="blockintro"><a href="$value[url]"><img src="$value[a_thumbpath]" class="blockintroimg" alt="$value[subject]" /></a>$value[message]...<a href="$value[url]">阅读更多</a></p>


这一段内容,都是 html 标签,
<a href="$value[url]">...</a>
,含义是在页面展示一个 a 标签,a标签的指向是 $value[url]。一般情况下,我们都不知道 $value[] 数组里存放的内容是什么,我们可以应用的元素有哪些。这时,我们可以使用这个语句将 $value[] 数组打印到页面上。
<!--{eval print_r($value);}-->


四、

为大家介绍常用的 parameter 参数含义:
order------------------------------以什么方式排序,常见的排序方式如下几种:
        displayorder--------------以后台设置的显示顺序排序
        views DESC----------------以查看数递减的方式排序
        replies DESC--------------以回复数递减的方式排序
        posts DESC----------------以帖子数递减的方式排序
        m.posts DESC--------------以会员贴子数递减的方式排序
        m.oltime DESC-------------以会员在线时间递减的方式排序
        u.dateline DESC-----------以会员注册时间递减的方式排序
        i.goodrate DESC-----------以信息好评数递减的方式排序
        u.spaceallnum DESC--------以会员个人空间的信息总数递减排序
        u.spaceblognum DESC-------以会员个人空间的日志总数递减排序
        g.usernum DESC------------以圈子会员数递减的方式排序
        g.lastpost DESC-----------以圈子最后更新时间递减的方式排序
limit------------------------------显示多少条信息
        0,100---------------------显示100条
dateline---------------------------发布时间范围,以秒(s)为单位
        2592000-------------------2592000秒,即:3天
showdetail-------------------------是否显示信息摘要
        1-------------------------1为显示(0为不显示)
messagelen-------------------------摘要显示的长度,以字节数为单位
        160-----------------------显示160个字节信息
subjectlen-------------------------主题的显示长度,以字节数为单位
        40------------------------显示40个字节信息
type-------------------------------设置信息的类型
        forum---------------------二级版块的信息
        goods---------------------商品的信息
        news----------------------资讯的信息
        video---------------------影音的信息
filetype---------------------------设置附件的类型
        image---------------------图片附件
lastpost---------------------------最后回复时间范围,以秒(s)为单位
        2592000-------------------2592000秒,即:3天
subjectdot-------------------------显示主题时,如果主题长度大于显示长度,末尾是否加点
        1-------------------------末尾加点(0为末尾不加点)
messagedot-------------------------显示摘要时,如果摘要长度大于显示长度,末尾是否加点
        1-------------------------末尾加点(0为末尾不加点)
showattach-------------------------是否显示附件信息
        1-------------------------显示附件信息
haveattach-------------------------是否必须包含附件
        1-------------------------必须包含附件
isstar-----------------------------空间之星
        1-------------------------是
perpage----------------------------每页显示的信息条数
        15------------------------显示15条
regdate----------------------------注册时间范围,以秒(s)为单位
        2592000-------------------2592000秒,即:3天

给大家一个技巧:一般可以通过英文意思来判断参数的含义,例如subjectlen,是subject length,即:主题长度。
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]