PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > iCMS

模板系统基础知识_模板说明

管理员 2024-12-15
iCMS
6

iCMS模板系统

iCMS的模板系统在Template Lite基础上修改而来!

Template Lite是一个非常快而且很小HTML模板引擎,兼容大部分Smarty语法.

在此强大的基础上,做了很多优化,并增加了自己独有调用方式发展而来!

所以iCMS的模板语法跟smarty其实是差不多的

Smarty

Smarty教程

模板边界符

  • iCMS使用了<!--{}-->做为边界符

模板标签

有如下几种形式

  • 变量

    <!--{$变量名称}-->例:<!--{$vars}-->
  • 多个变量联接

    <!--{$var$var2$var3'a'1123}-->
  • 变量为数组

    <!--{$变量名称.属性}-->例:<!--{$array.key}-->

    属性为数组的键名

  • 键名为数字

    <!--{$变量名称[数字]}-->例:<!--{$array[0]}-->
  • 变量的属性为数组

    <!--{$变量名称.属性.属性}-->例:<!--{$array.arr.key}-->

  • 调用iCMS特有函数
    <!--{iCMS:函数 参数='值'}-->

    这种方式一般没有赋值到变量都是直接输出结果
    如果有结果赋值到变量,都是以函数名命名的变量
    结果赋值到<!--{$函数名}-->
    结果一般是数组类型
    可以使用print_R查看所有属性
    <!--{$函数名|print_R}-->

    • 示例:1.直接输出

      <!--{iCMS:router url='public:seccode'}-->

      结果输出:http://www.ooxx.com/public/api.php?app=public&do=seccode

    • 示例:2.无输出,结果赋值到变量

      <!--{iCMS:config}-->

      结果赋值到 <!--{$config}-->
      可以使用print_R查看所有属性
      <!--{$config|print_R}-->

调用iCMS应用方法

  • 无循环,结果直接输出或者赋值到($应用名_方法)

类似上面说到的调用iCMS特有函数的方法
返值一般是数组类型

<!--{iCMS:应用名:方法 参数='值'}--><!--{$应用名_方法.属性}--><!--{$应用名_方法|print_R}--> //使用print_R查看所有属性例:<!--{$article_list.url}-->
  • 示例1
    <!--{iCMS:public:qrcode data="二维码"}-->
  • 示例2
    <!--{iCMS:public:ui}-->
  • 示例3:调用栏目cid=1的信息
    <!--{iCMS:category:array cid="1"}-->
    结果赋值到<!--{$category_array}--> ,可以使用print_R查看所有属性
    <!--{$category_array|print_R}-->
  • iCMS应用类标签(循环)无别名
<!--{iCMS:应用名:方法 loop='循环标示符' 参数='值'}--><!--{$应用名_方法.属性}--><!--{/iCMS}-->

示例:

<!--{iCMS:article loop='true' row='100'}--><a href="<!--{$article_list.url}-->"><!--{$article_list.title}--></a><!--{/iCMS}-->
  • iCMS应用类标签(循环) 有as (别名) 的情况下

    <!--{iCMS:应用名:方法 loop='循环标示符' as="别名" 参数='值'}--><!--{$别名.属性}--><!--{/iCMS}-->

    示例:

    <!--{iCMS:category:list loop="true" row="10" as="cate"}--><a href="<!--{$cate.url}-->"><!--{$cate.name}--></a><!--{/iCMS}-->
  • 注: 在包含有 loop='循环标示符'<!--{iCMS:aaa:bbb}-->标签中,
    一定要以<!--{/iCMS}-->结尾

基本语法

判断 if

模板文件中可以使用if else等判断语句

==,!=,>,<,<=,>=

这些是if中可以用到的比较。看看就能知道什么意思吧。

<!--{if}--> 必须和 <!--{/if}--> 成对使用

例子

<!--{if $name=="iCMS"}-->    Hello World<!--{/if}-->

<!--{if $name=="iCMS"}-->    Hello World<!--{else}-->    Welcome<!--{/if}-->

<!--{if $name=="iCMS"}-->    Hello World<!--{elseif $name=="idreamsoft"}-->    idreamsoft.com<!--{else}-->    Welcome<!--{/if}-->

取模判断

<!--{if $name % 5 =="1"}-->    Hello World<!--{/if}-->

示例:每个li 两组数据

<ul><!--{iCMS:article:list loop="true" row="20" }-->    <!--{if $article_list.first}--><li><!--{/if}-->    <!--{"$article_list.index % 2"}-->        <span><!--{$article_list.title}--></span>    <!--{if $article_list.index % 2}-->        </li>        <!--{if !$article_list.last}--><li><!--{/if}-->    <!--{/if}--><!--{/iCMS}--></ul>

循环遍历数组 foreach

  • <!--{foreach}--> 必须和 <!--{/foreach}--> 成对使用,且必须指定 fromvalue 属性。
  • from 需要遍历的数组
  • value 在每次循环中被赋给变量
  • key,start,end 属性可选
  • key 索引
  • start 开始行
  • end 结束行
<!--{foreach key=key value=alist from="$article_list"}-->    <!--{$key}-->    <a href="<!--{$alist.url}-->"><!--{$alist.title}--></a><!--{/foreach}-->

循环 for

<!--{for start="0" stop="10" value="i"}--><!--{$i}--><!--{/for}-->

模板内简单计算

注:需要加上双引号

<!--{"$key+1"}-->

模板中赋值

<!--{"$a='1a'"}-->

模板中简单三元表达

<!--{$c?$c:'5'}-->

有表达式时 需要加双引号

<!--{"$c<1?$c:'5000'"}-->

模板中,定义一个颜色数组,随机循环

<!--{array 1='red' 2="black" 3="blue" 4="#ededed" 5="#fff" 6="#ffeecc"}--><!--{for start="0" stop="10" value="i"}-->    <!--{'1'|rand:'6'|as:'rk'}--> #放循环里    <!--{$array[$rk]}--><!--{/for}-->

模板中定义一个数组

<!--{array key="value" key1="value1"}--><!--{array as="a1" flag="col" a[]="1" b[]="2"}--><!--{array as[]="a2" a="1" b="2"}--><!--{array as="a3" {json}}--><!--{array as="a4" []={json}}--><!--{array as="a5" [a]='aa'}--><!--{array as="a6" a[b][c]='aa'}-->

模板中引用赋值

变量前加&

<!--{&$article.pubdate|date:"Y-m-d H:i"}-->

希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部