现在下载应用并免费测试10天
货币 选择语言 选择地区

1. 加载安全脚本

一开始,bluetronix CMS 加载安全相关的脚本。这包括安全检查、调用次数检查、MySQL 参数的准备或检查,以及 GET 和 POST 参数的分析。

不需要数据库连接的检查将在此处进行。

加载模块配置

如果存在,则加载文件 /bx_Mod/config_own.php。在其中定义的脚本和配置变量将在渲染过程开始时可用。

启动会话

CMS 使用 @session_start(); 启动 PHP 会话。特别重要的三个会话变量是:$_SESSION["S_User"] 用于 CMS 用户或编辑模式,$_SESSION["S_Language"] 用于当前语言,$_SESSION["Web_User"] 用于前端登录的用户。

加载页面参数

然后,CMS从服务器变量中读取当前调用的信息。$domain从$_SERVER["SERVER_NAME"]获取域名,$FileParameter从$_SERVER["REQUEST_URI"]获取请求路径及GET参数,$file从$_SERVER["PHP_SELF"]获取执行的文件路径。

$ReferURL包含$_SERVER["HTTP_REFERER"]的值(如果已传递)。它可以在加载框架或页面区域时使用。

建立数据库连接

CMS自动建立数据库连接。之后,CMS数据库表可用于进一步检查和加载页面内容。

重新检查 GET 和 POST 参数

在建立数据库连接后,CMS调用SECUREGetPost();。传递的GET和POST参数会重新检查并根据需要进行调整。现在也可以进行需要数据库信息的检查。

域名、编辑和语言重定向

根据CMS配置、调用的域名、编辑模式、选择的语言和调用参数,可能会进行重定向。可能的目标包括主域名、编辑域名以及依赖语言的域名或URL。

HTTPS重定向

如果网站未通过HTTPS访问,则会重定向到该页面的SSL或HTTPS版本。

加载中央 PHP 脚本

现在,CMS加载其核心PHP功能。这包括例如用于发送邮件的BlueSMTPMail()和用于处理表单的BlueFormSend()。其他核心功能也会被引入。

从 00_site 加载页面数据

请求页面的数据从数据库表00_site读取。此时,CMS变量如$Template被确定。

此外,$LayoutHTML和$SitePHP也会被初始化。$LayoutHTML稍后包含完整的HTML布局,而$SitePHP包含直接与请求页面相关的PHP代码。

从 00_layout 加载布局

与页面关联的布局从数据库表00_layout加载,并作为后续处理在$LayoutHTML中的基础。

设置语言依赖的 JavaScript 文件

如果存在特定语言的文件,CMS可以用相应语言的变体替换标准文件BxScript.js和BxHeadScript.js,例如BxScript_de.js或BxScript_en.js。

在此,文件标记 __FV_/bx_script/BxScript_own_min.js__ 或 __FV_/bx_script/BxHeadScript_own_min.js__ 在布局中进行调整.

生成头部和动态内容

现在生成动态内容并执行特定于页面的PHP脚本。DynMenue()生成动态菜单,IncludeModul()包含已配置的模块,EditMARK()设置CMS的编辑标记。

使用eval($SitePHP)执行当前页面的PHP代码;eval($IncludePHP)执行包含的PHP脚本。

设置 CSS 和 JavaScript 的更改参数

对于CSS和JavaScript文件,设置了更改参数。这样,当文件更新时,浏览器可以加载新版本,而不是使用缓存中已过时的文件。

例如,从文件引用/css/style.css可能变为带有版本参数的调用/css/style.css?v2026...。

设置暗模式或亮模式

CMS从/bx_style/BxSource/CSSEditDarkLight.bx中读取配置的显示模式。根据文件内容在布局中设置黑暗或明亮模式。

在布局中设置模块配置变量

来自/bx_Mod/config_own.php的模块配置将应用于布局。如果例如商店、搜索、登录或翻译模块被禁用,则相关控件可以被自动隐藏。

因此,标记如 __DB_GB_DesktopIconBasket_Display__、__DB_GB_DesktopIconSearch_Display__、__DB_GB_DesktopIconLogin_Display__ 或 __DB_GB_DesktopIconLang_Display__ 会被替换为 none.

移除剩余的替代标记

未替换的 CMS 占位符将从最终的 HTML 中删除。这包括格式为 __DB_...__ 和 __ST_...__ 的标记以及为此预留的内部 xxx 注释标记.

移除 HTML 注释

随后,CMS从$LayoutHTML中移除HTML注释。这样,过多的注释文本就不会发送给浏览器。

进行语言翻译

如果$_SESSION["S_Language"]不等于$GBMainLang,则被标记的文本将翻译为当前使用的语言。翻译来自数据库表Translation。

如果所需文本尚未存在,将在Translation中生成新条目。CMS通过标记My Text识别可翻译的内容。My Text.

通过 IMG.pl 替换图片调用

通过之前生成或优化的图像文件替换图像请求和图像剪裁通过IMG.pl完成。这样,生成的HTML页面可以直接访问这些图像变体。

输出完成页面

处理完成后,$LayoutHTML 将以内容类型 text/html; charset=utf-8 输出到浏览器,例如通过 print $LayoutHTML;.

对于未激活或内部域,输出将标记为 noindex, nofollow,以防止这些页面被搜索引擎索引.

写入缓存

在页面输出后,CMS 可以将生成的页面缓存。前提是没有 S_User 登录,页面不处于编辑模式,并且该页面已启用缓存.

在后续访问时,可以使用保存的 HTML 页面,而无需重新执行完整的渲染过程.

常见问题

客户常问我们的问题

什么是站点渲染过程?

该教程指的是通过处理步骤,bluetronix CMS 将页面和布局数据生成最终的 HTML 页面并输出到浏览器.

在数据库连接之前进行哪些安全检查?

在数据库连接之前,将进行安全检查、调用次数检查、MySQL 参数准备以及 GET 和 POST 参数分析.

模块配置何时加载?

文件 /bx_Mod/config_own.php(如果存在)将在会话开始之前和数据库连接建立之前加载.

S_User、S_Language 和 Web_User 用于什么?

S_User 表示 CMS 用户或编辑模式,S_Language 表示网页的当前语言,而 Web_User 表示前端登录的用户.

页面和布局来自哪些数据库表?

页面数据从 00_site 加载。相应的布局从 00_layout 读取,并在 $LayoutHTML 中处理.

页面的 PHP 代码何时执行?

在生成头部和动态内容时,页面的代码通过 eval($SitePHP) 执行,嵌入的 PHP 代码通过 eval($IncludePHP) 执行.

何时使用语言相关的 JavaScript 文件?

如果有相应的语言变体,BxScript.js 和 BxHeadScript.js 可以由对应的语言特定文件替换.

如何确定深色或浅色模式?

CMS 会读取文件 /bx_style/BxSource/CSSEditDarkLight.bx,并根据其内容设置布局的显示模式.

何时自动翻译文本?

如果当前语言与 $GBMainLang 不同,则根据 Translation 表中的条目翻译相应标记的文本.

在什么条件下生成的页面会被缓存?

如果未登录 S_User,页面不处于编辑模式,并且已针对该页面启用缓存,则可以写入缓存.

CMS