为您的网站制作您自己的个性化图形主题非常重要,这样您就不会拥有另一个 PHP-Nuke 克隆站点。如果您的网站看起来与其他网站相同,这会让您这位网站管理员看起来不够专业。个性化门户网站从图形方面开始。了解如何掌握 PHP-Nuke 主题意味着能够处理我们可以使用的所有图形元素。在本章中,我们将使用的示例主题是由 Francisco Burzi 为 PHP-Nuke 制作的 NukeNews 主题。这是一个由许多包含在 theme.php 中的 HTML 文件组成的主题。这是一个非常好的解决方案,它允许您通过像 DreamWeaver 这样的编辑器来管理主题的图形部分,并使用最少量的 PHP 代码。
NukeNews 主题的结构如下
theme.php: 它管理背景颜色的主要变量函数。
tables.php: 它管理函数 opentable(); 和 closetable();
header.html: 它管理您网站的页眉
footer.html 它管理您网站的页脚
blocks.html 它管理区块
center_right.html 管理页面的右侧布局。
center_left.html管理页面的左侧布局。
story_home.html管理页面的布局。
story_page.html管理页面的布局。
这些文件包含在 theme.php 中指定的函数中。然后我们有一个名为 style.css (style/style.css) 的样式表,它包含在我们主题文件夹的 header.html 文件中。按照惯例,样式表必须始终称为 style.css,并且必须始终包含在我们主题文件夹内名为“style”的文件夹中。图像通常分组在一个名为“images”的文件夹中,该文件夹始终位于我们的主题文件夹中。
NukeNews 主题的文件夹结构将是
themes/NukeNews
themes/NukeNews/style/
themes/NukeNews/images/
始终记住大小写很重要,为了与任何 Unix 系统的兼容性,您必须区分大写和小写。
theme.php 文件是所有 PHP-Nuke 图形管理的核心。
HTML 文件包含并非发生在所有类型的主题中,一些程序员将所有 HTML 都包含在 theme.php 文件中,但是单独包含它可以解决许多问题,例如 HTML 格式化,否则这些格式化将包含在 PHP 代码中。它还使我们有可能使用可视化编辑器 (WYSIWYG) 进行编辑。
theme.php 是创建所有 PHP-Nuke 组件(页眉、页脚、中心部分、区块...)的管理功能的文件。
themeheader() 函数管理站点页眉。它由构成标题的各种表格组成,有时还定义一些未包含在样式表中的 body 标签元素以及放置在包含的 html 文件中的变量。
变量 $theuser 在 themeheader() 函数内部定义,然后在 header.html 文件中的表格中调用
theme.php 中的代码(定义 $theuser 变量)
if ($username == "Anonymous") { $theuser = " <a href=\"modules.php?name=Your_Account &op=new_user\">Create an account"; } else { $theuser = " Welcome $username!"; } |
header.html 中的代码(可视化 $theuser 变量)
<td width="15% "nowrap >< font class="content" color="#363636 " > <b> $theuser </b></font></td> |
themefooter(); 函数管理我们网站的页脚。
它有一些有趣的元素我们需要分析
首先,它识别可视化的页面是否已将 $index 变量设置为等于 1,在这种情况下,我们还将在页面上插入右侧区块,但如果 $index==0,则右侧区块将不会出现在我们的页面上。
然后,它定义页脚消息(从 config.php 捕获)并将它们全部插入到一个变量中,该变量从 footer.html 文件中调用。
函数 themeindex() 管理主页中的新闻,并根据各种情况使用“if”函数格式化它们并添加元素。它还包括 story_home.htm 文件。
函数 themearticle() 则管理内部新闻页面(我们可以通过点击“阅读更多...”看到;请记住,在这种情况下,布局部分是通过包含 story_page.htm 文件来管理的,但是必须包含的区块(即文章的调查、相关链接等)由新闻模块定义。
函数 themesidebox() 则管理我们创建或已经找到的盒子的布局(参见第 8 章),它也包含一个名为 blocks.htm 的文件,该文件定义了样式和布局。
我们忽略了 theme.php 文件的一个元素。这些是格式化文本的变量,其中一些变量插入到 css(样式表)中,但另一些变量是在 theme.php 文件的开头定义的。
让我们看看 NukeNews 主题中的变量
$bgcolor1 = "# efefef"; $bgcolor2 = "# cfcfbb"; $bgcolor3 = "# efefef"; $bgcolor4 = "# cfcfbb"; $textcolor1 = "# 000000"; $textcolor2 = "# 000000"; |
如您所见,这些变量的表达式值是十进制格式。
定义您的网站颜色 - $bgcolor2 通常用于表格边缘,正如您在函数 opentable() 中看到的那样,$bgcolor1 用于表格背景。其他两个背景变量使用相同的标准。$textcolor1 和 $textcolor2 用于格式化文本颜色。
现在我们必须检查 tables.php 文件中包含的内容。此文件创建 4 个函数 (opentable(); closetable(); opentable2(); closetable2();),这些函数包含以预定义方式打开和关闭表格的 HTML 标签。
在创建模块时(参见第 9 章)它非常容易使用,您不必每次想要创建表格时都重写 HTML,而只需使用以下语法就足够了
opentable(); echo "Content of the table"; closetable(); |
这样,您就以快速有效的方式创建了一个表格。但是这个函数是如何构造的呢?我们将首先检查 opentable(); 然后是 closetable();
![]() | 请注意 |
---|---|
这些是 php 函数,因此您必须尊重 php 内部的 HTML 语法,在每个“之前添加 /(即 align="left" 必须写成 align=\"left\") |
function OpenTable() { global $bgcolor1, $bgcolor2; echo "<table width=\"100% \" border=\"0 \ "cellspacing=\"1 \" cellpadding=\"0 \ "bgcolor=\"$bgcolor2 \" >< tr >< td > \n "; echo "< table width=\"100% \" border=\"0 \ "cellspacing=\"1 \" cellpadding=\"8 \ "bgcolor=\"$bgcolor1 \" >< tr >< td > \n "; } |
语法非常简单,不是吗?
函数已打开
必要的变量被调用 ($bgcolor1, $bgcolor2)
我们打开一个 100% 宽的表格,并为其定义背景颜色
打开行,打开列
我们插入一个 100% 宽的新表格(用于边缘)
宽度和高度特性已定义。
行 列
我们停在列上,因为这里我们将插入表格内容(实际上 opentable 是我们开始关闭此表格的地方!)
function CloseTable() { echo "</td ></tr ></table ></td ></tr ></table > \n"; } |
事实上...
函数已打开
您关闭列,您关闭行
您关闭内部表格
您关闭列,您关闭行
您关闭外部表格
用 PHP 构建 HTML 函数很容易,不是吗?