AKCMS http://clewo.net/akcms/ zh-cn Rss Generator By sdcms3.1 biz 第3-27节:AKCMS全局变量 http://clewo.net/AKCMSmoban/253.html 本文档介绍了所有能用于模板的全局变量,所有AKCMS的模板不管是什么类型的页面都可以调用以下变量:


字符编码,一般是gbk或者utf-8,可直接用于中,不过考虑到字符编码一般很少改变,一般用到的机会不多。


用法举例:

]]>
第3-26节:AKCMS变量 http://clewo.net/AKCMSmoban/252.html 在模板中可以插入变化的内容,我们把它叫做【变量】,变量名一般由英文、数字和下划线组成,在变量名之前加上“$”,比如:$title就是一个变量。在AKCMS中变量又分为全局变量、页面变量、自定义变量三种:

1 【全局变量】是在任何模板、任何页面都可以调用的变量,通常为网站的一些基本信息,请参考文档:《全局变量列表》

2 【页面变量】只能在特定的页面使用,不同的页面对应不同的变量,比如在内容的正文页中可以使用$title代表内容的标题,在栏目页中这个变量就不存在,但是却多了一个$categoryname代表栏目名,所有页面变量请参考文档:《所有模版都可以用的全局变量》、《内容页模版变量》、《栏目页模版变量》、《主题页模版变量》、《单页模版变量》

3 【自定义变量】比较特殊,它不是由系统提供,而是站长自己创建的,自行指定变量名和内容,在模板中调用时需要加上“v_”前缀,以示与全局变量和页面变量的区分。比如,自己创建了一个“hello”的变量,在模板中可以使用$v_hello这个变量,请参考文档《自定义变量》

变量在模板中最常用的用法是直接显示,方法是在模板的前后加上<{和}>,比如:要在页面突出显示内容的题目(对应变量是$title)就这样写:

]]>
第3-25节:AKCMS模板 http://clewo.net/AKCMSmoban/251.html 小提示:模板这一章的实践性很强,不亲自动手很难掌握,所以在继续学习这一章之前,请先在AKCMS后台《创建一个测试页面》,每一小节的内容都请亲自试一试,这样可以更快的上手。

AKCMS的模板的内容既可以是HTML,也可以是XHTML、HTML5,总之模板里是什么,输出的网页源代码就是什么。但静态的HTML是固定不变的,与FTP直接上传静态网页没有什么区别,为了能显示动态内容,模板增加了《变量》、《调用标签》等机制,下面我们逐一详解。

 


]]>
第3-24节:AKCMS getpaging实例 http://clewo.net/AKCMSmoban/250.html 实例1(akcms主站正在用的静态页分页,)

<{getpaging

  baseurl="$fullpath/index-[page].htm"

  page=$page

  firstpage="$fullpath/index.htm"

]]>
第3-23节:AKCMS正文模版中调用附件(实例) http://clewo.net/AKCMSmoban/249.html 在正文模版中如下代码可以调用附件:

<{if $attach > 0}>

附件:

<{getattachments itemid=$id template="[originalname]
"}>

<{else}>

]]>
第3-22节:AKCMS如何在模版中调用当前时间 http://clewo.net/AKCMSmoban/248.html 在做网站过程中常常需要在模版中显示当前时间,比如:

RSS中的

再比如:页面报时,在页面上显示当前时间(手机页面中的常见功能)

5.0.1新增了gettime标签专门做这个事:

<{gettime template="[Y]-[m]-[d] [H]:[i]:[s]"}>

]]>
第3-21节:AKCMS以指定格式显示时间(gettime) http://clewo.net/AKCMSmoban/247.html gettime

以指定格式显示时间

参数

time:以时间戳的形式传入时间

template:显示时间的模版

]]>
第3-20节:AKCMS模版函数getpaging http://clewo.net/AKCMSmoban/246.html getpaging模板中负责生成分页链接的标签,分页标签是AKCMS中最难理解的标签(没有之一),因为它牵扯的功能多,实现的效果变化也非常多,前后改进完善过多次,直到5.1.5版才渐渐稳定下来(下面的演示就是基于这个版本,写文档的时候还没有发布5.1.5,应该在几天发布)。这个玩意非常非常非常非常非常非常的难学,开发团队自己在做项目时也对getpaging特别头疼,学习它请做好心理和生理准备。

分页需要和<{getitems}>等标签配合才可以用,一个模版中可能有多个getitems,怎么知道分页和哪个getitems绑定呢?在指定getitems标签中增加一个参数:bandindex="1"就可以了,比如:<{getitems bandindex="1" ............}>。

要学这个标签,请先做好准备工作,一个测试用的后台,里面至少要有几十条数据(太少了不够分页的),然后弄一个测试模板(比如:page_home.htm),模板这样写:

<{getitems page=$page num="5" bandindex="1"}>

<{getpaging page=$page}>

]]>
第3-19节:AKCMS循环调用栏目及下属文章 http://clewo.net/AKCMSmoban/245.html 假设要调用1,2,3,4,5这五个栏目名以及下属的文章,模版应该如下写:

<{getlists list="1,2,3,4,5" template="[item]" colspan="1" overflow="," assign="list" explode="," noelapse="1"}>

<{foreach item=cid from=$list}>

<{getcategories id=$cid template="[category]
"}>

<{getitems category=$cid}>

]]>
第3-18节:AKCMS面包屑导航(当前位置)的实现 http://clewo.net/AKCMSmoban/244.html 在我们进行网站开发的时候很多情况下都会编写一个当前位置,这个当前位置主要用来提示用户现在所处网页的位置。

下面我们利用一个实例进行讲解:

1、当栏目只有一级栏目的时候,我们的当前位置可以这样写:首页》系统软件》生活闹钟。其中生活闹钟是系统软件栏目下面的一篇文章,当我们浏览这篇文章的时候,面包屑导航就是上面的样子。那么在模板中可以这样写:首页<{$category}> → <{$title}>解释:因为目前我们所在的是文章页面,也就是位于item_display模板中,那么在模板中可以直接使用栏目、栏目地址和文章题目的变量。

2、当一级栏目下面又有很多个栏目时,那么第一种方式显然已经不能够正确的显示出我们的当前位置了,那么我们就要另谋途径了,接下来的这个方法就是面包屑导航,在面包屑导航中,我们应使用getcategories函数以及其相关的参数childcategory。下面我们以示例进行讲解。

在文章页面我们可能会看到这样的面包屑导航: 首页 → 系统软件 → 系统工具 → 生活闹钟 。其中“系统软件”是一级栏目,“系统工具”是“系统软件”的子栏目,也可以叫做二级目,“生活闹钟”是位于“系统工具”中的一篇文章。在文章页面可以使用的与栏目相关的变量有:categoryname,然而它只能获取文章所属栏目的名称,却不能获取其爷爷级元素,那么第一种写面包屑导航(当前位置)的办法就失效了。当前的写法如下:首页→<{getcategories childcategory=$category colspan="1" overflow="→" template="[category]"}>→<{$title}>,childcategory应该与colspan和overflow合用,colspan规定了子循环的步幅数,overflow规定了子循环结束后应该插入什么内容,childcategory指定获取哪个栏目的子栏目或者是父级栏目。在这个例子中,$category这个变量是文章所属栏目的id,那么通过赋值给childcategory,系统自动帮我们分析出了它的父级栏目和子栏目,父栏目可以追溯到根栏目,子栏目可以延伸到文章当前所属的栏目。

]]>
第3-17节:AKCMS搜索结果页(通过数据库搜索) http://clewo.net/AKCMSmoban/243.html 本文档讲的是如何通过直接通过数据库搜索接口+模板显示搜索结果页。

接口:akcms_page.php

一 首先在网站根目录创建一个php文件,文件名随便起比如:db_search.php,内容是:

$template = 'search.htm';

]]>
第3-16节:AKCMS模板函数gettexts http://clewo.net/AKCMSmoban/242.html 本函数为4.0.6新增函数 

参数

itemid 指定的文章ID

itempage 分页ID(4.0.8新增)

start 开始的序号,默认为1

]]>
第3-15节:AKCMS模板函数getpictures http://clewo.net/AKCMSmoban/241.html getpictures函数是获取图片的模版函数(3.9.2+),下面以几个调用的实例获得直观的印象。

以上只是独立演示,实际上getpictures很少单独使用,多数情况下是二次开发时与其他模版函数嵌套调用图片。


特有参数


]]>
第3-14节:AKCMS“item_display.htm lose”模板不存在 http://clewo.net/AKCMSmoban/240.html “xxxxxx.htm lose.” 

如果您看到这个提示,说明缺少某个模板,在后台创建了这个模板之后页面就可以正常显示了。 

AKCMS没有默认的模板,新安装的AKCMS在没有创建模板前,文章的预览页面都会提示这个错误;您可以: 

自己创建模板,


]]>
第3-13节:AKCMS模板文件在哪个目录? http://clewo.net/AKCMSmoban/239.html AKCMS的模板存放于/configs/templates/xxxxxx/目录下。xxxxxx代表模板目录设置,可以通过/configs/config.inc.php的$template_path变量设置。默认情况下,这个值被设置为ak,所以实际存放目录就是:

/configs/templates/ak/

如果$template_path被设置为abc,则实际存放位置为/configs/templates/abc/


]]>
第3-12节:AKCMS模板函数getsqls http://clewo.net/AKCMSmoban/238.html getsqls函数是AKCMS3.3.1新增的函数,

参数

sql 待执行的SQL语句,[tablepre]将被替换为表前缀

模板标签(template参数中可以使用以下标签,最终会被替换为对应内容,下同)

表字段的每一项字段都可以通过字段名调用,比如:select id,title from [tablepre]_items limit 10;可以通过template="[id].[title]
"

]]>
第3-11节:AKCMS嵌套调用 http://clewo.net/AKCMSmoban/237.html 调用的嵌套可以实现许多复杂的页面展示效果。 

嵌套的规则如下: 

1 在标签的template参数中插入子标签 

2 子标签的前后用<#和#>隔开 

3 子标签的多个参数用(#)隔开 

]]>
第3-10节:AKCMS模板函数getindexs(废弃) http://clewo.net/AKCMSmoban/236.html 更新:此函数已废弃,5.0起已不再支持此函数,用更新的getpaging代替,新函数能实现getindexs的全部功能,更灵活。

3.0以及更新的版本:

参数

page=$page(此参数必须有)

baseurl 此参数代表每页的URL的地址,具体的页码用[page]代替。比如设置为“index-[page].htm”将生成index-2.htm这样的分页地址

]]>
第3-9节:AKCMS模板函数akincludeurl http://clewo.net/AKCMSmoban/235.html 此方法远程请求URL,并将内容包含进来。

比如:

<{akincludeurl url="http://clewo.net/" expire="3600"}>

这就在页面上显示出了首页,第一次显示将稍微慢一些,因为服务器需要在后台请求百度的服务器一次。因为缓存了3600秒,所以,第二次显示速度就非常快了,不用等待。

注意:使用这个函数的页面如果是动态访问且访问量大一定要加上expire属性,否则会占满服务器的线程,现象是:服务器CPU占用不高,但是Apache无法访问,线程都被占满。这不是akcms的缺陷,依赖外部数据源的程序都有这个问题。

]]>
第3-8节:AKCMS模板函数akinclude http://clewo.net/AKCMSmoban/234.html 此方法与include几乎一样,只是多了对expire参数的支持。

例如:

<{akinclude file="abc.htm" expire="3600"}>

这样就代表引用abc.htm这个模板并把结果缓存下来,一小时(3600秒)内再次请求页面将使用缓存节省时间。

注意:只有指定了expire这个方法才有效。因为当不指定expire参数时,此方法效率比直接使用include低。

]]>