要创建第三种类型的模块,即一个与数据库交互并推断数据的 php 脚本,首先我们必须了解这些模块的结构。它们包含在一个名为 blocks 的文件夹中,模块的名称必须是 block-模块名.php。所有模块都以 "block-" 开头非常重要。任何名称以 block- 开头的模块都将包含在可以激活的模块屏幕中。我们将在模块管理菜单中的 file_name 下拉列表中找到所有可用的模块。如果管理员未分配名称,则名称将与 block- 后面的名称相同。我们不能在模块名称中使用空格,必须使用下划线 _ 替换。所有遵守这些规则的模块都将插入到模块管理菜单中。
创建模块时,您必须遵循以下规则
在您创建的每个模块中,您必须在开头插入以下代码
if (eregi("block-Name_of_Block.php", $PHP_SELF)) { Header("Location: index.php"); die(); } |
通过使用此代码,您可以保护文件,避免用户直接从 blocks 文件夹访问它,并且该模块仅在从您的站点选择时才会显示。
在模块中,您可以包含任何您想要的内容,Perl、java、php、flash 等...
所有模块输出都必须有一个可以从变量 $content 获取的值。
请记住,模块中的空间有限,请特别注意布局!
表格和字体等的背景最好留给样式表 (CSS)。
现在我们将看看如何从头开始构建一个模块。
我们将创建一个非常简单的模块,显示前一天在我们网站上访问的页面。我们将只有一个查询和一个值,以便使事情更容易。我们的模块名为 “hits”,因此模块的完整名称将是 block-hits.php
首先,我们打开 php 标签
<?php |
然后我们插入之前看到的保护脚本
if (eregi("block-hits.php", $PHP_SELF)) { Header("Location: index.php"); die(); } |
现在我们插入我们要调用的变量(在本例中是参数 $prefix 和 $dbi,它们处理数据库抽象)
global $prefix, $dbi; |
现在我们继续插入从数据库读取我们网站上看到的页面数量的查询:(指令是“读取表 nuke_counter 中单元格 count 的第一行值”)
$result = sql_query("select count from "$prefix."_counter order by type desc limit 0.1", $dbi); list($count) = sql_fetch_row($result, $dbi); |
最后,我们传递将由模块回显的 “$content” 变量并关闭 PHP 标签
$content. = $count ?> |
我们的完整脚本将是
<?php if (eregi("block-hits,php", $PHP_SELF)) { Header("Location: index.php"); die(); } global $prefix, $dbi; $result = sql_query("select count from "$prefix."_counter order by type desc limit 0.1", $dbi); list($count) = sql_fetch_row($result, $dbi); $content. = $count ?> |