PHPCMS 框架教程

什么是 PHPCMS?

PHPCMS 是一款非常经典的国产 PHP 开源网站管理系统,它基于 PHP 语言开发,采用 MySQL 数据库,采用 MVC(Model-View-Controller)设计模式进行架构。

核心特点:

  1. 模块化设计:网站由不同的模块(如内容、会员、评论、广告等)组成,每个模块都可以独立安装、升级和管理。
  2. 模板与程序分离:网站的样式(HTML/CSS/JS)和程序逻辑完全分离,这使得不懂编程的设计师也能通过修改模板文件来改变网站外观,而不会影响核心程序。
  3. 标签调用:PHPCMS 使用其独有的标签(类似函数)来从数据库中获取数据并显示在模板上。{pc:get} 是最常用的一个标签,用于获取任意表的数据。
  4. 强大的后台管理:提供可视化的后台操作界面,可以方便地管理内容、会员、模型、模板、缓存等。
  5. 生态丰富:拥有大量的第三方模块、插件和模板资源,非常适合快速搭建各类网站,如企业官网、门户网站、博客等。

重要提示:PHPCMS 的官方主版本已经停止更新多年,目前社区和市场上仍在广泛使用和讨论的是 PHPCMS 2008 这个经典版本,本教程将以 PHPCMS 2008 为基础进行讲解。


环境准备

在开始之前,您需要搭建一个 PHP 运行环境,对于新手,强烈推荐使用集成环境包。

  1. 集成环境软件

    • phpStudy (推荐,国内用户多,配置简单)
    • XAMPP (跨平台,功能全面)
    • WampServer (Windows 平台专用)
  2. 环境要求 (针对 PHPCMS 2008):

    • PHP 版本: PHP 5.2.x ~ PHP 5.6.x (建议使用 PHP 5.4 或 5.5)
    • MySQL 版本: MySQL 5.0 及以上
    • Web 服务器: Apache 或 Nginx (PHPCMS 2008 对 Apache 的兼容性更好)

安装步骤

  1. 下载并安装您选择的集成环境软件。
  2. 启动环境,确保 Apache 和 MySQL 服务正在运行。
  3. 将下载好的 PHPCMS 安装包解压,并将 upload 文件夹内的所有文件和文件夹,上传到您的 Web 根目录(通常是 phpStudy/WWW/htdocs/)。
  4. 在浏览器中访问您的域名,http://localhost/,您将看到 PHPCMS 的安装向导。
  5. 按照向导提示,填写数据库信息(数据库名、用户名、密码等),然后开始安装。
  6. 安装完成后,删除根目录下的 install 文件夹以确保安全。
  7. 访问 http://localhost/admin.php 进入后台管理,使用默认管理员账号 admin 和您设置的密码登录。

核心概念解析

理解以下三个核心概念是掌握 PHPCMS 的关键。

模型

模型是 PHPCMS 的数据结构定义,它决定了您网站内容(文章、产品、图片等)应该包含哪些字段。

  • 作用:定义一个内容类型的“骨架”。
  • 示例
    • 文章模型:可能包含标题、作者、来源、发布时间、内容、缩略图等字段。
    • 产品模型:可能包含产品名称、型号、价格、规格、详情、产品图集等字段。
  • 如何管理:在后台 -> 模型管理 中,您可以创建、修改和删除模型,每个模型都会在数据库中对应一张数据表。

栏目

的“分类容器”,它将内容组织成一个有层次的结构。

  • 作用:分类管理内容,并设置内容在网站的展示方式。
  • 属性
    • 绑定模型:每个栏目都必须绑定一个模型,这意味着该栏目下的所有内容都将遵循这个模型的数据结构。“新闻”栏目绑定“文章模型”,“产品”栏目绑定“产品模型”。
    • 栏目类型
      • 列表栏目:用于展示多篇内容,如“新闻列表”、“产品列表”。
      • 封面栏目:通常只展示一个单页内容,如“关于我们”、“联系我们”。
      • 外部链接:点击后跳转到其他网站。
  • 如何管理:在后台 -> 栏目管理 中,您可以创建无限层级的栏目树。

模板

模板是网站最终呈现给用户的“外观和皮肤”,它是一个 HTML 文件,其中嵌入了 PHPCMS 的标签。

  • 作用:分离程序逻辑和页面表现,实现灵活的页面定制。
  • 存放位置:所有模板文件都存放在 /templates/ 目录下。
    • /templates/default/ 是默认模板文件夹。
    • /templates/您的模板名/ 是您自己创建的模板文件夹。
  • 模板文件:模板文件夹内部的结构通常与网站的栏目和模块相对应。index.html 是首页,category.html 是列表页,show.html 是内容详情页。

实战演练:创建一个“新闻列表”页面

假设我们要在首页显示最新发布的5条新闻。

步骤 1:准备数据

  1. 检查模型:进入后台 -> 模型管理,确认有一个名为“文章”的模型(通常是默认自带的)。
  2. 创建栏目
    • 进入 -> 栏目管理 -> 添加栏目
    • 栏目名称: “公司新闻”
    • 绑定模型: 选择“文章”
    • 栏目类型: 选择“列表栏目”
    • 填写其他信息后保存。
    • 进入 -> 内容管理 -> 。
    • 在顶部的下拉菜单中选择“公司新闻”栏目。
    • 、内容等信息,并上传一张缩略图。
    • 点击“提交”发布,重复此步骤,发布5条新闻。

步骤 2:修改模板

  1. 找到首页模板:通过 FTP 或文件管理器,打开 /templates/default/ 目录,找到 index.html 文件。
  2. 添加标签调用:在您希望显示新闻列表的位置(<div class="news-list"> 内部),添加 PHPCMS 的标签。

核心标签:{pc:get}

这个标签的通用格式如下:

{pc:get sql="SQL语句" num="显示数量" cache="缓存时间" return="数据变量名"}
    {loop $数据变量名 $r}
        <!-- 循环输出内容 -->
        <li>
            <a href="{$r[url]}">{$r[title]}</a>
            <span>{$r[updatetime]}</span>
        </li>
    {/loop}
{/pc}

如何获取 SQL 语句? 最简单的方法是:

  1. 进入后台 -> 内容管理
  2. 点击右上角的“生成SQL”按钮。
  3. 在弹出的窗口中,选择您要调用的栏目(“公司新闻”),设置调用数量(5),然后点击“生成”。
  4. 复制生成的 SQL 语句,SELECT * FROMv9_newsWHEREcatid=5 ANDstatus=1 ORDER BYidDESC LIMIT 0,5,这里的 catid=5 是您刚才创建的“公司新闻”栏目的ID。

将标签写入 index.html

<div class="news-section">
    <h2>最新新闻</h2>
    <ul class="news-list">
        <!-- 
        sql: 从上面复制的SQL语句
        num: 5, 显示5条
        cache: 3600, 缓存1小时,提高访问速度
        return: $news_data, 将查询结果赋值给变量 $news_data
        -->
        {pc:get sql="SELECT * FROM `v9_news` WHERE `catid`=5 AND `status`=1 ORDER BY `id` DESC LIMIT 0,5" num="5" cache="3600" return="$news_data"}
            {loop $news_data $r}
                <li>
                    <!-- 
                    $r[url] 是 PHPCMS 自动生成的内容详情页链接
                    $r[title] 是文章标题
                    $r[updatetime] 是更新时间
                    $r[thumb] 是缩略图地址
                    -->
                    <a href="{$r[url]}" target="_blank">{$r[title]}</a>
                    <span class="date">{date('Y-m-d', $r[updatetime])}</span>
                </li>
            {/loop}
        {/pc}
    </ul>
</div>

步骤 3:查看效果

保存 index.html 文件,然后在浏览器中刷新您的网站首页,您应该就能看到刚刚添加的5条新闻了。


常用标签速查

用途 示例
{pc:get} 万能标签,从任意表获取数据 {pc:get sql="..." num="10" ...}
{loop} {pc}{sql} 标签的配套循环标签 {loop $data $r}...{/loop}
{category} 获取栏目信息 {loop $CATEGORY $r}{$r[catname]}{/loop}
{php} 执行任意 PHP 代码 {php $a = 1; echo $a;}
{siteurl} 获取网站根目录 URL <a href="{siteurl}">首页</a>
{date} 格式化时间戳 {date('Y-m-d H:i:s', $r[inputtime])}

进阶学习与资源

  1. 官方文档:虽然 PHPCMS 官网已不维护,但一些老文档和论坛帖子依然有价值,可以搜索“PHPCMS 2008 文档”。
  2. 视频教程:在 Bilibili、腾讯课堂等平台搜索“PHPCMS 教程”,有大量视频课程,特别是针对新手入门的。
  3. 社区和论坛
    • PHPCMS 官方论坛 (已关闭,但内容可被搜索引擎搜索到)
    • CSDN、博客园:搜索关键词,可以找到很多开发者的经验和问题解决方案。
  4. 分析现有模板:下载一套免费的 PHPCMS 模板,解压后仔细研究其模板文件和标签写法,是快速提升技能的好方法。

PHPCMS 是一个强大且灵活的建站系统,其核心魅力在于 模型、栏目、模板 的分离设计。

  • 新手入门路径

    1. 搭建环境,成功安装。
    2. 理解模型、栏目、模板的概念。
    3. 学会使用后台添加内容和栏目。
    4. 掌握核心标签 {pc:get}{loop} 的基本用法。
    5. 尝试修改默认模板,调用内容,看到效果。
  • 开发者进阶方向

    1. 深入学习标签的各种参数和高级用法。
    2. 学习编写自定义模块。
    3. 研究其底层 MVC 架构,了解控制器、模型、视图的交互方式。
    4. 进行二次开发,修改或扩展核心功能。

希望这份教程能帮助您顺利入门 PHPCMS!