Supesite 7.5 是一个非常经典的 PHP 门户建站系统,虽然现在已不再是主流,但其模板系统设计得相当灵活和强大,理解它对于维护或二次开发老项目非常有帮助。

核心概念:模板引擎
Supesite 7.5 使用的是 PHP 自身作为模板引擎,这意味着它的模板文件本质上就是 PHP 文件,但混合了一套自定义的标签语法,这套语法非常直观,对于熟悉 PHP 的开发者来说,上手非常快。
模板文件结构:
一个完整的 Supesite 站点通常由三部分构成:
- 模板文件:
.htm文件,包含了 HTML 结构和 Supesite 的模板标签。 - 风格文件:主要是 CSS 文件(
.css),用于控制网站的视觉样式。 - 图片等资源文件:存放 logo、背景图、图标等。
模板文件目录结构
Supesite 7.5 的模板文件存放在 templates/ 目录下,当你安装一个新模板时,通常会解压一个文件夹到 templates/ 目录里。

一个典型的模板目录结构如下:
templates/
└── my_template/ <-- 你的模板文件夹名
├── images/ <-- 存放模板所需的图片
├── style/ <-- 存放 CSS 文件
│ └── style.css <-- 主样式表
├── index.htm <-- 首页模板
├── list.htm <!-- 列表页模板 -->
├── view.htm <!-- 内容页模板 -->
├── header.htm <!-- 公共头部 -->
├── footer.htm <!-- 公共底部 -->
├── ... <!-- 其他页面模板,如搜索页、用户中心等 -->
核心模板标签语法
这是 Supesite 模板的核心,标签通常以 和 包裹。
变量输出
用于显示从 PHP 后端传递过来的数据。
- 基本变量:
{$variable_name}{$site_name}会输出网站名称。
- 数组变量:
{$array.key}- 循环文章列表时,
{$article.title}会输出当前文章的标题。
- 循环文章列表时,
- 函数调用:
{$variable|function_name}- 这是最常用的功能之一,用于对变量进行格式化处理。
{$article.postdate|date='Y-m-d H:i:s'}:将文章发布时间格式化为年-月-日 时:分:秒。{$article.content|nl2br}:将文章内容中的换行符<br>转换成 HTML 换行标签。{$article.title|strip_tags}:去除文章标题中的 HTML 标签。{$article.content|substr=0,200}:截取文章内容前 200 个字符。
循环
用于遍历一个数组,并重复执行一段模板代码。
{loop}...{/loop}:最常用的循环标签。- 语法:
{loop $article_list $article} <h3><a href="{$article.url}">{$article.title}</a></h3> <p>{$article.content|substr=0,100}...</p> <span>发布时间:{$article.postdate|date='Y-m-d'}</span> {/loop} $article_list是从后端传来的文章数组。$article是循环中当前的元素变量,你可以通过它访问文章的各个属性。
- 语法:
条件判断
根据条件执行不同的模板代码。
{if}...{else}...{/if}- 语法:
{if $user['uid']} 欢迎您,{$user['username']}! <a href="{url('user/index')}">个人中心</a> {else} <a href="{url('user/login')}">登录</a> <a href="{url('user/register')}">注册</a> {/if}
- 语法:
包含文件
用于引入其他模板文件,实现模块化和代码复用。
{template}:引入模板文件。- 语法:
{template 'header'} - 这行代码会引入同目录下的
header.htm文件,Supesite 会自动加上.htm后缀。 - 首页模板
index.htm的结构会是:{template 'header'} <!-- 首页主要内容区域 --> {template 'footer'}
- 语法:
URL 生成
用于生成站点的内部链接,这是非常重要的一个标签,可以确保在更换域名或目录后,所有链接依然有效。
{url}:生成一个标准的 Supesite 链接。- 语法:
{url('module/action/param')} {url('index')}:生成首页链接。{url('list', array('catid' => 1))}:生成 ID 为 1 的分类的文章列表页链接。{url('view', array('itemid' => 100))}:生成 ID 为 100 的文章的详情页链接。
- 语法:
常用模板文件详解
理解了标签语法后,我们来看看几个关键模板文件的作用。
header.htm (头部)
通常包含:
<head>部分:网站标题<title>、关键词<meta>、描述<meta>、CSS 文件引入<link>、JS 文件引入<script>。<body>开始后的部分:网站 Logo、主导航菜单。
示例 header.htm:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">{$page_title}-{$site_name}</title>
<meta name="keywords" content="{$page_keywords}">
<meta name="description" content="{$page_description}">
<link rel="stylesheet" type="text/css" href="{CSS_PATH}style.css">
</head>
<body>
<div id="header">
<div id="logo"><a href="{url('index')}"><img src="{IMG_PATH}logo.png" alt="{$site_name}"></a></div>
<div id="nav">
<ul>
<li><a href="{url('index')}">首页</a></li>
<!-- 循环输出导航菜单 -->
{loop $nav_list $nav}
<li><a href="{$nav.url}">{$nav.name}</a></li>
{/loop}
</ul>
</div>
</div>
<div id="main">
{CSS_PATH}和{IMG_PATH}是 Supesite 内置的变量,分别指向 CSS 和图片目录的 URL 路径。
index.htm (首页)
这是网站的入口,通常由多个模块组成,如:
- 轮播图
- 焦点新闻
- 最新文章列表
- 热门文章排行
- 友情链接
示例 index.htm (片段):
{template 'header'}
<!-- 轮播图部分 -->
<div id="slider">
{loop $focus_list $focus}
<a href="{$focus.url}"><img src="{$focus.pic}" alt="{$focus.title}"></a>
{/loop}
</div>
<!-- 最新文章列表 -->
<div class="article-list">
<h2>最新文章</h2>
{loop $new_article_list $article}
<div class="article-item">
<h3><a href="{$article.url}">{$article.title}</a></h3>
<p class="meta">作者:{$article.author} | 发布时间:{$article.postdate|date='Y-m-d'} | 阅读量:{$article.hits}</p>
<p class="summary">{$article.content|substr=0,150}...</p>
</div>
{/loop}
</div>
{template 'footer'}
list.htm (列表页)
用于显示某个分类下的所有文章列表,通常包含:
- 当前分类的面包屑导航
- 分页条
示例 list.htm (片段):
{template 'header'}
<div class="breadcrumb">
您的位置:<a href="{url('index')}">首页</a> > <span>{$category['name']}</span>
</div>
<div class="article-list">
{loop $article_list $article}
<!-- 循环内容同 index.htm -->
{/loop}
</div>
<!-- 分页条 -->
<div class="pages">
{$pages}
</div>
{template 'footer'}
{$pages}是 Supesite 自动生成的分页 HTML 代码,非常方便。
view.htm (内容页)
用于显示单篇文章的详细内容,通常包含:
- 、作者、发布时间、点击量等信息
- 文章正文内容
- 上下篇文章导航
- 评论区域
如何制作或修改一个模板?
- 准备基础:你需要懂 HTML 和 CSS,PHP 知识不是必须的,但能让你更深入地理解模板逻辑。
- 选择一个基础模板:找一个你喜欢的现有模板作为起点,在其基础上修改,比自己从零开始要快得多。
- 修改结构 (HTML):使用你熟悉的 HTML 和 CSS 来调整网站的布局、颜色、字体等,主要修改
*.htm文件和style.css文件。 - 替换数据 (Supesite 标签):将静态的 HTML 内容(如
<h1>新闻标题</h1>)替换为动态的 Supesite 标签(如<h1>{$article.title}</h1>),使用{loop}和{if}来处理列表和条件。 - 引入公共部分:使用
{template 'header'}和{template 'footer'}来复用代码,保持结构清晰。 - 预览调试:将修改后的模板文件夹上传到服务器的
templates/目录,然后在 Supesite 后台 -> 界面风格 -> 选择你的新模板,并清空缓存,然后刷新前台页面查看效果。
Supesite 7.5 的模板系统是一个简单、高效且功能完备的方案,它的核心是 “PHP 模板标签”,通过 {变量}、{loop}、{if}、{template}、{url} 等标签,将页面展示逻辑与业务逻辑分离,使得网站的前端美工和后端开发可以相对独立地进行。
对于新手来说,最好的学习方式就是“拆解”:下载一个漂亮的模板,把它放到服务器上,然后对照着前台页面,去后台看数据,再到模板文件里找对应的标签,一步步理解数据是如何被渲染出来的。
