0

0

用Yaapi和PHP构建一个简单的内容管理系统_PHP

php中文网

php中文网

发布时间:2016-06-01 12:36:42

|

1081人浏览过

|

来源于php中文网

原创

如果你是一个正在构建具有丰富内容的Web网站的开发人员,你就可能需要考虑下面这些解决方案,其中包括(a)用于内容的数据库,(b)将GUI与内容分离的模板系统,(c)用来维护数据库里数据的用户友好界面,以及(d)对所生成页面的最终外观的控制。



能够提供上述所有内容的一个非常有趣的解决方案就是Yaapi,它是“你的文章应用程序编程接口(Your Article Application Programming Interface)”的开头字母缩写。它是一个PHP类,提供了内置的方法来访问保存在数据库里的内容。管理模块装备有协助管理数据的类,而这个API本身都足够强大,可能够处理内容管理系统(CMS)所要求的大多数常见任务。

安装
要安装和使用Yaapi,你需要一个支持PHP的Web服务器,例如Apache,当然还有PHP,以及MySQL数据库服务器。你可以下载一份Yaapi,将它解压到服务器根目录下的某个位置里。

你还需要创建一个MySQL数据库,以容纳Yaapi的数据结构。使用源档案里的yaapi.sql文件创建这个数据库,然后打开类构造函数(article.class.php文件)里的Yaapi配置,使用用于该数据库的名字和访问参数更新它。

添加内容
要向数据库里添加内容,你就必须使用http://your-server/yaapi-root/admin/上的Yaapi管理模块(用安装有Yaapi的服务器的名称来替换“your-server”,并用Yaapi解压后的目录来替换“yaapi-root”)。你要使用这个管理模块来创建(和删除)内容类别,然后把文章放到这些类别里。下面就是你会在这一过程中碰到的字段的简表:

类别(Category):文章的类别
章节ID(Section ID):如果你的文章有两个层次,就要使用这个参数来定义第二个层次。
标题(Title):文章的标题
作者(Author):文章的作者
电子邮件(E-mail):文章作者的电子邮件地址
许可(Approved):用来表示文章是否已经“得到许可”可以进行显示的标志
图像(Image):与文章相关的可选图像URL
内容(Content):文章的内容
关于上面最后一个项目的一点小小注释:通过在文章文本里插入分隔符,Yaapi能够把你的大段文章分在若干个小的页面里进行显示。见下面的例子:

Introduction of article here

#intro#
Page 1 content here
#page#
Page 2 content here
#page#
Page 3 content here
#page#
and so on...

别忘了在输入文章之后确认一下,因为只有经过确认的文章才能够用API检索得到。
检索类别和列表


既然你已经把内容放到了数据库里,那么现在就到了用API检索它并填充一个标准的HTML模板(可以对这个模板进行修改,以符合你网站的设计)的时候了。列表A里是该模板的基本代码。

一开始你可以使用Yaapi来检索某个特定类别里所有文章的列表,并在中间显示它们的标题、作者和简介。列表B里是PHP代码和实现这一代码的Yaapi API调用。这段代码需要稍稍解释一下。

在使用Yaapi的时候,所要做的第一步是对类的对象进行实例化;这个对象然后就会公开API方法和属性,用以访问数据库里的内容。为了获取标题的列表,你可以使用类别ID。后者可以通过URL传递或者是一个缺省的值。Get_titles()方法用这个类别ID来返回一个相关联的数组,其中包含该类别里的文章ID和(经过确认的)文章标题。

然后,get_article()方法会更加深入一步,在上一步里返回的文章ID列表里迭代,并返回代表每篇文章的对象。(文章)标题、作者细节和介绍都被作为对象的属性公开,并能够用标准的对象属性概念被检索。要注意的是,文章标题被更进一步通过文章ID对象链接到一个单独PHP脚本——article.php上。关于这一内容不久会有更多的介绍。


--------------------------------------------------------------------------------

提示
你可以向get_article()方法传递可选的第二个参数,即页面标号,用来返回文章的一个专门页面。


--------------------------------------------------------------------------------

要完成这个页面上的工作,剩下要做的所有事情就是取得和打印可用类别的列表(要记住,你左边的菜单需要这个列表)。你可以使用get_categories()方法来完成这一工作,这个方法会返回一个相关的数组,里面包含类别的名称以及它们各自的ID。列表C包含从列表B到这个脚本所需要的更新。

在图A里,你可以看到最终的结果:


检索文章的内容
完整文章的显示由article.php脚本来处理,这个脚本要用文章ID来调用。列表D包括这个脚本的代码,其中包括对页面分隔符的支持,这是通过允许你利用页面底部的页码跳到文章任何页面来实现的。

每个页面的内容通过前面讨论的get_article()方法来检索。唯一的不同之处是,所返回对象的“内容”属性现在将会保存文章的一个特定页面,而不是简介。

Num_pages()这个属性被用来获取文章的页面总数。这可以同一个简单的for()循环结合在一起生成一个页码导航条和超链接,每一个都可以回到相同的脚本,它们都具有相同的文章ID,但是不同的页面ID。

图B显示了输出结果是什么样的:

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
ip地址修改教程大全
ip地址修改教程大全

本专题整合了ip地址修改教程大全,阅读下面的文章自行寻找合适的解决教程。

33

2025.12.26

压缩文件加密教程汇总
压缩文件加密教程汇总

本专题整合了压缩文件加密教程,阅读专题下面的文章了解更多详细教程。

18

2025.12.26

wifi无ip分配
wifi无ip分配

本专题整合了wifi无ip分配相关教程,阅读专题下面的文章了解更多详细教程。

46

2025.12.26

漫蛙漫画入口网址
漫蛙漫画入口网址

本专题整合了漫蛙入口网址大全,阅读下面的文章领取更多入口。

91

2025.12.26

b站看视频入口合集
b站看视频入口合集

本专题整合了b站哔哩哔哩相关入口合集,阅读下面的文章查看更多入口。

283

2025.12.26

俄罗斯搜索引擎yandex入口汇总
俄罗斯搜索引擎yandex入口汇总

本专题整合了俄罗斯搜索引擎yandex相关入口合集,阅读下面的文章查看更多入口。

370

2025.12.26

虚拟号码教程汇总
虚拟号码教程汇总

本专题整合了虚拟号码接收验证码相关教程,阅读下面的文章了解更多详细操作。

35

2025.12.25

错误代码dns_probe_possible
错误代码dns_probe_possible

本专题整合了电脑无法打开网页显示错误代码dns_probe_possible解决方法,阅读专题下面的文章了解更多处理方案。

25

2025.12.25

网页undefined啥意思
网页undefined啥意思

本专题整合了undefined相关内容,阅读下面的文章了解更多详细内容。后续继续更新。

72

2025.12.25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 4万人学习

Git 教程
Git 教程

共21课时 | 2.2万人学习

Kotlin 教程
Kotlin 教程

共23课时 | 2.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号