一、zblog php的文件结构和文件的功能

admin2023-01-1736171

一、Z-Blog PHP版本的文件结构,和每个文件的主要功能[大概内容]。

文件及路径功能概述备注
wwwroot根目录
│    feed.phpRSS订阅地址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_systemZBP的系统目录
│    │  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.sqlmysql数据库
│    │  │      sqlite.sqlsqlite数据库
│    │  │      sqlite3.sqlsqlite3数据库
│    │  │      

│    │  └─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文件类型特征图片
│    │  │      

│    │  ├─jqueryuijq的图片jq有图片?
│    │  │      

│    │  └─logozblog的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验证码 ShowValidCodeclass ValidateCode
│    │        jquery-ui-timepicker-addon.js这些不解释,都是js…
│    │      jquery-ui.custom.min.js
│    │      jquery.bettertip.pack.js
│    │      jquery.tagto.js
│    │      jscroller.0.3.js
│    │      md5.jsmd5.js 前台md5
│    │      

│    └─xml-rpc

│            index.php用于对Windows live   writer类的软件支持
│            wlwmanifest.xml
│          

└─zb_usersZBP的用户目录
      ├─avatar头像目录如果你和你网站的评论者没有绑定“Gravata”头像,那么就会调用这个文件夹里面的默认头像;
      │      0.png默认头像
      │      

      ├─cachecache缓存目录虽然目前为止我还没发现它到底缓存了神马
      │      index.html空文档
      │      

      ├─data放SQLite数据库的如果你的数据库选择的是-SQLite,那么数据库文件就会存放在这个文件夹里面,如果你的数据库是mysql,那么这个文件夹就不用管了;
      │      index.html空文档
      │      

      ├─emotion表情放表情包图片的,真是个中二的文件夹...
      │  ├─default默认表情文件夹
      │  └─face表情2
      ├─language语言包
      │      SimpChinese.php简体中文
      │      TradChinese.php繁体中文 
      │      

      ├─logs放日志文件的;
      │      index.html空文档
      │      

      ├─plugin插件文件夹每个人的插件习惯不同,所以太复杂,这里不做解读。
      │  ├─AppCentre应用中心插件
      │  │          
      │  ├─STACentre静态化中心插件
      │  │      
      │  ├─Totoro反垃圾留言插件
      │  │          
      │  └─UEditorUE编辑器插件
      │                  

      ├─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.php404页面
      │  │          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文章/页面 主模板
      │  │          

      │  └─garlandgarland主题,略,同上。
      │              

      └─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傲人的身躯... 但是....太乱了... 


网友评论当前共有1条评论

  • 2023-10-04 18:59:35

    这个文件本来是个重头戏...她拥有着56KB傲人的身躯... 但是....太乱了...