一、zblog php的文件结构和文件的功能
一、Z-Blog PHP版本的文件结构,和每个文件的主要功能[大概内容]。
文件及路径 | 功能概述 | 备注 |
wwwroot | 根目录 | |
│ feed.php | RSS订阅地址 | Filter_Plugin_Feed_Begin |
│ index.php | 首页 | Filter_Plugin_Index_Begin Filter_Plugin_Index_End |
│ search.php | 搜索页 | Filter_Plugin_Search_Begin |
│ | ||
├─zb_install | 安装目录 | 首次运行安装后需要删除此文件夹 |
│ index.php | 安装文件 | |
│ | ||
├─zb_system | ZBP的系统目录 | |
│ │ cmd.php | 核心cmd文件 | 几乎所有的action都可以在这里找到 |
│ │ login.php | 登录页面 | |
│ │ | ||
│ ├─admin | 后台管理主要内容文件夹 | |
│ │ admin_footer.php | 后台页面的footer | 几乎所有的后台页面都调用这两个内容 |
│ │ admin_header.php | 后台页面的header | |
│ │ admin_left.php | 后台页面左侧的按钮 | |
│ │ admin_top.php | 后台页面顶部的按钮 | |
│ │ category_edit.php | 分类编辑页面 | CategoryEdt |
│ │ edit.php | 文章/页面编辑页面 | ArticleEdt/PageEdt |
│ │ index.php | 后台默认页面 | 判断action跳转到对应的功能页 |
│ │ member_edit.php | 成员编辑页 | MemberEdt/MemberNew |
│ │ module_edit.php | 模块管理页 | ModuleEdt |
│ │ tag_edit.php | 标签编辑页 | TagEdt |
│ │ | ||
│ ├─css | 后台需要用到的css文件夹 | |
│ │ admin.css | 后台需要用到的css样式表 | |
│ │ admin2.css | ||
│ │ admin3.css | ||
│ │ jquery-ui.custom.css | ||
│ │ jquery.bettertip.css | ||
│ │ | ||
│ ├─defend | ||
│ │ │ arial.ttf | 某个很丑的字体 | |
│ │ │ error.html | 错误页面 | Filter_Plugin_Other_Header |
│ │ │ option.php | 网站基础设置信息 | 包括数据库连接信息都在这里 |
│ │ │ thanks.html | 鸣谢… | 很多人估计忽略了这里 |
│ │ │ | ||
│ │ ├─createtable | 创建数据库的SQL文件 | 首次安装时创建数据库里的表用的 |
│ │ │ mysql.sql | mysql数据库 | |
│ │ │ sqlite.sql | sqlite数据库 | |
│ │ │ sqlite3.sql | sqlite3数据库 | |
│ │ │ | ||
│ │ └─default | 保留模板文件夹 | |
│ │ comment.php | 此处引用官方wiki的说法: Z-BlogPHP无需全套完整模板,允许精简模板文件,这得益于保留模板机制。 | |
│ │ commentpost.php | ||
│ │ comments.php | ||
│ │ footer.php | ||
│ │ header.php | ||
│ │ index.php | ||
│ │ module.php | ||
│ │ pagebar.php | ||
│ │ post-istop.php | ||
│ │ post-multi.php | ||
│ │ post-page.php | ||
│ │ post-single.php | ||
│ │ sidebar.php | ||
│ │ single.php | ||
│ │ | ||
│ ├─function | 程序文件目录 | |
│ │ │ c_system_admin.php | 这里要说的话太多,后续详解 | |
│ │ │ c_system_base.php | ||
│ │ │ c_system_common.php | ||
│ │ │ c_system_debug.php | ||
│ │ │ c_system_event.php | ||
│ │ │ c_system_misc.php | ||
│ │ │ c_system_plugin.php | ||
│ │ │ | ||
│ │ └─lib | 类目录 | |
│ │ app.php | 这里要说的话太多,后续详解 | |
│ │ base.php | ||
│ │ category.php | ||
│ │ comment.php | ||
│ │ counter.php | ||
│ │ dbmysql.php | ||
│ │ dbmysqli.php | ||
│ │ dbpdo_mysql.php | ||
│ │ dbsql.php | ||
│ │ dbsqlite.php | ||
│ │ dbsqlite3.php | ||
│ │ member.php | ||
│ │ metas.php | ||
│ │ module.php | ||
│ │ network.php | ||
│ │ networkcurl.php | ||
│ │ networkfile_get_contents.php | ||
│ │ networkfsockopen.php | ||
│ │ pagebar.php | ||
│ │ post.php | ||
│ │ rss2.php | ||
│ │ tag.php | ||
│ │ template.php | ||
│ │ upload.php | ||
│ │ urlrule.php | ||
│ │ validatecode.php | ||
│ │ zblogphp.php | ||
│ │ | ||
│ ├─image | 图片文件夹 | |
│ │ ├─admin | ||
│ │ ├─bettertip | 所谓的bettertip | 就只有四张图 |
│ │ ├─common | ||
│ │ ├─filetype | 文件类型特征图片 | |
│ │ │ | ||
│ │ ├─jqueryui | jq的图片 | jq有图片? |
│ │ │ | ||
│ │ └─logo | zblog的logo | |
│ │ | ||
│ ├─script | 程序自带的脚本文件夹 | |
│ │ common.js | 里面有jq | 大部分前台的功能实现(设置/读取cookie,评论验证信息,回复评论等) |
│ │ c_admin_js_add.php | 后台用到的一个js代码 | Filter_Plugin_Admin_Js_Add |
│ │ c_html_js_add.php | 前台用到的一个js代码 | Filter_Plugin_Html_Js_Add |
│ │ c_validcode.php | 验证码 ShowValidCode | class ValidateCode |
│ │ jquery-ui-timepicker-addon.js | 这些不解释,都是js… | |
│ │ jquery-ui.custom.min.js | ||
│ │ jquery.bettertip.pack.js | ||
│ │ jquery.tagto.js | ||
│ │ jscroller.0.3.js | ||
│ │ md5.js | md5.js 前台md5 | |
│ │ | ||
│ └─xml-rpc | ||
│ index.php | 用于对Windows live writer类的软件支持 | |
│ wlwmanifest.xml | ||
│ | ||
└─zb_users | ZBP的用户目录 | |
├─avatar | 头像目录 | 如果你和你网站的评论者没有绑定“Gravata”头像,那么就会调用这个文件夹里面的默认头像; |
│ 0.png | 默认头像 | |
│ | ||
├─cache | cache缓存目录 | 虽然目前为止我还没发现它到底缓存了神马 |
│ index.html | 空文档 | |
│ | ||
├─data | 放SQLite数据库的 | 如果你的数据库选择的是-SQLite,那么数据库文件就会存放在这个文件夹里面,如果你的数据库是mysql,那么这个文件夹就不用管了; |
│ index.html | 空文档 | |
│ | ||
├─emotion | 表情 | 放表情包图片的,真是个中二的文件夹... |
│ ├─default | 默认表情文件夹 | |
│ └─face | 表情2 | |
├─language | 语言包 | |
│ SimpChinese.php | 简体中文 | |
│ TradChinese.php | 繁体中文 | |
│ | ||
├─logs | 放日志文件的; | |
│ index.html | 空文档 | |
│ | ||
├─plugin | 插件文件夹 | 每个人的插件习惯不同,所以太复杂,这里不做解读。 |
│ ├─AppCentre | 应用中心插件 | |
│ │ | ||
│ ├─STACentre | 静态化中心插件 | |
│ │ | ||
│ ├─Totoro | 反垃圾留言插件 | |
│ │ | ||
│ └─UEditor | UE编辑器插件 | |
│ | ||
├─theme | 主题文件夹 | |
│ ├─default | 默认主题 | |
│ │ │ screenshot.png | 缩略图 | |
│ │ │ theme.xml | 主题xml文档 | 如果主题有自带插件,是在主题根目录下的。 |
│ │ │ | ||
│ │ ├─compile | 编译后的主题文件 | |
│ │ │ 404.php | 注意: 这里的文件由ZBP自动生成,修改主题需要修改template下的文件,修改这里会被覆盖掉。 ZBP根据你的template下的文件,替换标签生成的这个文件夹中的内容。 | |
│ │ │ comment.php | ||
│ │ │ commentpost.php | ||
│ │ │ comments.php | ||
│ │ │ footer.php | ||
│ │ │ header.php | ||
│ │ │ index.php | ||
│ │ │ module.php | ||
│ │ │ pagebar.php | ||
│ │ │ post-istop.php | ||
│ │ │ post-multi.php | ||
│ │ │ post-page.php | ||
│ │ │ post-single.php | ||
│ │ │ sidebar.php | ||
│ │ │ sidebar2.php | ||
│ │ │ sidebar3.php | ||
│ │ │ sidebar4.php | ||
│ │ │ sidebar5.php | ||
│ │ │ single.php | ||
│ │ │ | ||
│ │ ├─include | 主题自带模块 | ZBP不区分主题和系统模块,调用代码均为:{module:模块名},不可以重名后果严重 |
│ │ │ index.html | 空文档 | |
│ │ │ | ||
│ │ ├─script | 主题自带js脚本 | |
│ │ │ custom.js | ||
│ │ │ | ||
│ │ ├─style | 主题样式表 | |
│ │ │ │ default.css | ||
│ │ │ │ | ||
│ │ │ └─default | ||
│ │ │ | ||
│ │ └─template | 主题模板文件夹 | |
│ │ 404.php | 404页面 | |
│ │ comment.php | 单条评论模板 | |
│ │ commentpost.php | 评论 提交区域(表单)模板 | |
│ │ comments.php | 评论列表模板 | |
│ │ footer.php | 页面底部 | |
│ │ header.php | 页面头部 | |
│ │ index.php | 首页 | |
│ │ post-istop.php | 置顶文章列表页目标 | |
│ │ post-multi.php | 普通文章列表页模板 | |
│ │ post-page.php | 独立页面 内容区域模板 | |
│ │ post-single.php | 文章页 内容区域模板 | |
│ │ single.php | 文章/页面 主模板 | |
│ │ | ||
│ └─garland | garland主题,略,同上。 | |
│ | ||
└─upload | 用户上传附件文件夹 | |
index.html | 空文档 |
二、function目录详细分析:
│ ├─function |
│ │ │ c_system_admin.php |
这里包含了ZBP后台管理的几乎全部函数,但是你一定想不到的是,这几个菜单也是通过插件接口的形式放进去的,作者是要把这些也都插件化的节奏?
Add_Filter_Plugin('Filter_Plugin_Admin_PageMng_SubMenu','Zbp_Admin_Addpagesubmenu');//页面管理 Add_Filter_Plugin('Filter_Plugin_Admin_TagMng_SubMenu','Zbp_Admin_Addtagsubmenu');//标签管理 Add_Filter_Plugin('Filter_Plugin_Admin_CategoryMng_SubMenu','Zbp_Admin_Addcatesubmenu');//分类管理 Add_Filter_Plugin('Filter_Plugin_Admin_MemberMng_SubMenu','Zbp_Admin_Addmemsubmenu');//成员管理 Add_Filter_Plugin('Filter_Plugin_Admin_ModuleMng_SubMenu','Zbp_Admin_Addmodsubmenu');//模块管理 Add_Filter_Plugin('Filter_Plugin_Admin_CommentMng_SubMenu','Zbp_Admin_Addcmtsubmenu');//评论管理
│ ├─function |
│ │ │ c_system_base.php |
这里包含的是ZBP系统初始化的大部分相关操作
忍不住介绍两个文件,具体可以参考ZBP学习笔记(三):
│ │ └─lib |
│ │ base.php |
│ │ dbsql.php |
这两个文件里面包含了所有可能要用到的封装后的sql语句,需要可以来查。
从加载主题内置插件这段代码可以看出,即便是你主题xml里没有提到include.php,但只要这个文件可读,主题插件就会被激活。
#加载主题内置的插件 $activeapps[]=$blogtheme; if (is_readable($filename = $usersdir . 'theme/' . $blogtheme . '/include.php')) { require $filename;}
│ ├─function |
│ │ │ c_system_common.php |
这里很多有意思的函数,很基础,甚至... 你写一个其他程序的时候,可以直接复制这里面的函数拿去用。
比如格式化函数TransferHTML,截取函数SubStrUTF8,封闭html标签函数CloseTags。
仔细看这里面多了很多ZBA没有的函数,比如GetHttpContent,这里涉及到了Network类,后续会有详细介绍。
同样在这里包含了的,还有设置http头并跳转的函数SetHttpStatusCode 和Redirect、Redirect301等。
文件操作包含获取文件名,文件扩展名,dirindir,fileindir等。
│ ├─function |
│ │ │ c_system_debug.php |
这个文件主要是处理程序可能出现的异常,并将异常信息以一个比较友好的界面显示出来,如果你后台打开debug模式,就会在出错的时候看到相关界面。忍不住吐糟的是,这里居然有一个类Class ZBlogException,但是没有防到lib文件夹。
│ ├─function |
│ │ │ c_system_event.php |
老牌的ZB文件,只不过以前是asp而已。事件相关函数。前后台的操作动作,几乎都要经过这个文件处理一次发发给用户。
首页文件default.php中有的函数ViewIndex,是在这里面进行定义的。并且分成了ViewFeed RSS订阅页和ViewSearch搜索页,还有default。default又分为ViewPost文章页、ViewList列表页、Viewauto根据规则显示页面。
后台部分的文章、页面、评论、分类、标签、成员、模块、附件增加删除修改。
插件、主题启停与样式选择。网站设置保存。
默认的首页侧栏模块生成函数都可以在这里找到。
BuildModule_catalog //分类
BuildModule_calendar//日历
BuildModule_comments//评论
BuildModule_previous//最近发表
BuildModule_archives//日期归档
BuildModule_navbar//导航条
BuildModule_tags//标签
BuildModule_authors//用户
BuildModule_statistics//网站统计
在这里做一下广告,推荐插件SidebarDIY,可以让你的侧栏稍微美化一下。
│ ├─function |
│ │ │ c_system_misc.php |
系统信息的一些处理,多数用来显示到后台首页了,看一看就好,用途不大。
│ ├─function |
│ │ │ c_system_plugin.php |
这个文件够枯燥无味了... 插件接口的定义...直接硬看的话会很头大,实际上只要看开头那几个激活安装函数就好了。
至此,function目录的文件介绍完毕。
三、lib文件夹详细分析:
app.php APP类,里面有个xml的打包函数和解包函数,有时间考虑做个桌面版,省得去网站解压缩。
base.php 数据操作基类,这里把几种数据库的sql语句进行了封装,可以实现不同数据库的切换。
经典函数LoadInfoByID,LoadInfoByAssoc,LoadInfoByArray,Save,Del。
category.php 文章分类类。
comment.php 评论类,同样没什么可说的。
counter.php 审计类,暂时还不知道有啥用...里面空空如也...
……………………算球。。。这里没啥意思的文件我就不介绍了.......
network.php networkcurl.php networkfile_get_contents.php networkfsockopen.php
ZBP的四个网络接口类,用这个可以打造很强大的.... 采集功能...(zx不要打我)
template.php 模板类,标签解析功能就都在这里了。
zblogphp.php ZBP的全局操作类
这个文件本来是个重头戏...她拥有着56KB傲人的身躯... 但是....太乱了...