钱包斜挎鳄鱼女士:verycms3.3 模板体系的简要说明

来源:百度文库 编辑:九乡新闻网 时间:2024/04/27 23:35:27
   对于CMS这种网站内容管理系统,就我们看来,与其让用户更方便的在后台设置前台的显示内容,不如更便捷的让用户在模板中调用内容,毕竟再方便的后台设置所能提供的前台显示也是有限的,而只有充分发挥用户的智慧,才能够制作出真正千变万化,富有特色的站点内容。VeryCMS 3.3 的目标便是如此。
模板的主要说明
1. 任何一个纯粹的HTML文件都可以作为模板,不同于过去的PHPWind模板必须在头尾套上一些PHP标签。
2. 在一个纯粹的HTML文件中,插入 即可实现逻辑部分,中间的代码可以换行,
完全是一个PHP的逻辑部分。因为部分以外,模板中的任何一个地方,你都可以使用{@函数@}部分来执行一个PHP函数,
这一点的设计将会使得图片缩略化,字符长度截取等CMS经常需要进行处理的内容变得非常方便。
VERYCMS自带标签说明:
1、
此标签内可以运行PHP程序,不会影响到你页面的设计。
例如在默认模板里面用到的内容摘要及相关图片显示的逻辑判断:

  $view[intro]



  


2、{@ @}
此标签是在使用系统函数及自定义变量时所用到的。
使用系统函数,将会使得图片缩略化,字符长度截取等CMS经常需要进行处理的内容变得非常方便。
例如:
1. 如果要截取长度,比如标题的字符为30个字符以内,在页面中使用{@substrs($val[title],30)@} 即可。
2. 如果要对图片进行缩略化,比如对图片缩略成75 * 75 的大小。则使用{@miniImg($val[photo],75,75)@}
3. 如果要对时间的格式进行处理,则{@get_date($val[postdate])@}。

使用自定义常量,会有利于模板的升级及模板共享。
例如:
1.对于模型id为1的新闻资讯的模型,已经定义了其唯一标识符为:’MID_news’
则我们在调用内容写条件的时候可以用:
{@MID_news@}" cid="2" num="9" />
来取代原始的写法:

2. 同样如果我们已经对cid为”2”的栏目设置了唯一标识符为:”internet”
上面的语句便又可以写成:
{@MID_news@}" cid="{@internet@}" num="9" />
3、标签
上面的例子中大家也已经看到了奇怪的语句:

这正是VERYCMS所独有的模板类型,需和配合使用
使用说明:


循环部分

标签的参数:
type :该标签调用的类 (选填,如不填写,则默认为调用Cms类)
action :该标签调用的函数(必须填写)
return :返回时的变量 (选填,如不填写,默认已)
标签的参数:
name :相对于标签中的return参数 (选填,如果中的return参数为”link”,则此参数也为”link”)
key   :返回数组的索引 (选填,默认为key)
value :循环时使用的值 (选填,默认为 val)

下面针对Cms类中的thread方法进行举例说明:



文章标题: $val[title]
文章的链接 $val[url]
发布时间 get_date($view[postdate])
浏览数   $val[hits]
评论数   $val[comnum]
发布者   $val[publisher]
作者   $val[author]
摘要   $val[intro]
图片   $val[photo]

如果调用了该栏目下的子栏目里的内容:
所属栏目名称 $catedb[$val[cid]][cname]

循环结束

其默认的返回值是$val,当然你也可以定义其返回值,只需如下编写:


文章标题:$ link [title]
…….

这种方法适用于循环调用里面,如果只需一次调用,则用前面的方式即可

mid:$mid;
其中$mid为所调用的内容模型id:
$mid值为:1,则调用的是一般的新闻模型
$mid值为:-1,则调用的是整合的blog内容(需要整合blog)
$mid值为:-2,则调用的是整合的论坛内容(需要整合论坛)
新版本中增加了模型的唯一标识符,如果你设置了新闻模型的唯一标识符是”news”则在模板调用时可以用”news”替代1;

cid:$cid;
其中的$cid指的是调用的某个栏目的cid,可在后台的栏目管理那边看到该栏目的cid
同内容模型的调用,你也可以用栏目唯一标识符替代cid的值
如果该栏目下面有子栏目,你在调用的时候还希望调用出他子栏目下的内容则这样写就行了:
cid:all-$cid;

num:$num;
其中的$num是需要调用的个数,即你想显示出10条内容,num的值就设为:10,
当然还可以这种方式:num:2,10;
这个意思是从搜索出来的数据里面从第2个数据开始,显示10条数据

其中的where是这个查询的条件语句
photo!='' 是指查询有图的内容

其中的digest指的是调用推荐内容
1:一级推荐(栏目推荐)
2:二级推荐(站点推荐)
3:三级推荐(特别推荐)

其中的order是指取出来的内容数据的排序方式
postdate 根据发布时间(默认)
hits    根据点击数
comnum   根据评论数
如需要降序排列,只需添加DESC,如:
order:hits DESC;
完成。

2. 下面举例一个相对复杂的调用方式,比如国际新闻的内容模型为1 栏目id为2 我们现在要显示该栏目下10条最新的图文内容,图片一律缩小到100*100像素,完整的调用为
方式1:

国际新闻最新图文


        //开始循环内容了

  • {@get_date($val[postdate])@} $val[title]
    {@miniImg($val[photo],100,100)@}

        //循环结束了

方式2(唯一标识符并且增加返回值):
如果我们对值为”1”的内容模型设置了唯一标识符为:” MID_news”;对cid为”2”的栏目设置了唯一标识符为:”internet”

国际新闻最新图文

    {@internet@}" where="photo!=''" num="10" order="hits DESC" return=”article” />
        //开始循环内容了

  • {@get_date($article [postdate])@} $article[title]
    {@miniImg($article [photo],100,100)@}

        //循环结束了

系统常量说明:
1:站点配置常量:$very
$very[url]     ->站点首页地址
$very[title]    ->站点名称
$very[lang]    ->站点语言编码
$very[aggrebbs]   ->是否论坛整合
$very[bbs_url]    ->整合论坛地址
$very[bbs_membersort] ->论坛会员排行形式
$very[bbs_forumsort] ->论坛版块排行形式
$very[aggreblog]   ->是否整合博客
$very[blog_url]   ->整合博客地址
$very[blog_membersort]->博客会员排行形式
2:栏目配置常量:$catedb
此常量是针对各个不同栏目使用,使用时得价格栏目cid,即:$catedb[$cid][参数]

$catedb[$cid][ cname]    ->栏目名称
$catedb[$cid][ listurl]    ->栏目首页地址
$catedb[$cid][ up]     ->上级栏目cid
$catedb[$cid][ mid]     ->栏目所属模型id
$catedb[$cid][ total]    ->总共的内容数量
$catedb[$cid][ new]    ->未发布的内容数量
$catedb[$cid][ description]   ->栏目简介
$catedb[$cid][ link]     ->外部链接地址
专题页面调用方式:
举例:

  • {@substrs($val[title],50)@}

    其中: parseTids 是调用的方法
    tids 是内容模型里面设置为固定菜单输入类型的字段
    num 属性中’,’号前面的数字是开始的位置,后面的数字是文章个数
    上面例子中”1,2”,的意思就是从第一个开始取两篇文章