PHPBB2 在线社区构建指南(全)
原文:zh.annas-archive.org/md5/c7ddac08c45e2bbc36f66d9b9e5e38cc
译者:飞龙
协议:CC BY-NC-SA 4.0
第一章:引言
phpBB 是一个免费、开源的互联网社区应用程序,拥有卓越的讨论论坛和会员管理功能。它使用 PHP 脚本语言编写,并利用流行的 MySQL 数据库,phpBB 在全球范围内的网络托管公司中已成为标准,并且是世界上使用最广泛的公告板软件包之一。phpBB 简化了您创建和管理大型在线社区的需求,无需您成为网络开发大师。
本书将指导您设置和运行自己的 phpBB 在线社区。通过易于理解的语言和清晰的说明,您将学习如何安装自己的系统,处理基本的论坛管理任务,并自定义论坛。之后,您将学习高级管理和技术,以及如何通过编程扩展 phpBB。
本书涵盖的内容
本书从对 phpBB 和在线社区的概述开始。第一章 也提供了一些关于 phpBB 的背景信息,并通过一些 phpBB 驱动的社区的真实案例,让您了解使用 phpBB 可以取得哪些成就。
第二章 带您完成 phpBB 的完整安装过程,包括必要的准备工作以及安装后的任务。它还探讨了配置安装,并提供了一些故障排除技巧,帮助您尽快开始使用您的新论坛和在线社区。
在您设置并运行之后,第三章 将直接进入 phpBB 环境,让您熟悉配置网站、创建论坛和用户以及 phpBB 管理的基础知识。为了全面理解不同的功能和它们的管理,本章从用户和管理员的角度对 phpBB 进行了浏览。
第四章 探讨了一些更多自定义论坛外观和功能的方法。进行这些自定义是赋予您的社区独特身份,使其在众多在线论坛中脱颖而出的关键。论坛的外观主要受 phpBB 的样式系统控制,该系统管理论坛的颜色、图像和视觉布局。在本章中,您将了解 phpBB 2.0 样式的基础知识,添加和删除样式,修复常见的样式安装问题,自定义样式,以及向论坛添加新功能,包括“修改”。
第五章 完成了您对 phpBB 管理的掌握。您将学习如何使您的论坛多语言化,配置头像,管理表情符号,论坛、用户和组权限,以及论坛管理的“人性”方面——包括管理、网络战争和封禁。
为了使您的论坛具有真正独特的风格,您可能需要创建自己的模板。创建自己的模板可能是一个非常有趣的过程,但也可能相当耗时。第六章将引导您完成这个过程,从设计新模板到实现该设计以创建论坛的新外观。从纸上的草图开始,我们经过所有步骤,直到我们有一个完成的模板。
随着您的社区成长,您可能会发现您需要扩展论坛的功能。最终,您可能需要一个功能,但发现自己无法找到现有的修改!第七章向您展示了如何为自己创建一个新的修改(也称为黑客),以帮助您获得您如此渴望的额外功能。在本章中,您将首先学习修改是什么,以及创建修改所需的技能和工具。之后,我们创建一个简单的修改,并向您展示如何使修改对其他 phpBB 用户可用。
第八章 通过查看您需要了解的内容来结束整个内容,以便编程新的、定制的 phpBB 功能。本章从简单的 phpBB 脚本开始,然后转向与 phpBB 数据库、使用 phpBB 消息和多种语言、与模板引擎以及验证用户的工作。我们在本章末尾构建一个新的 phpBB 扩展,巩固您的 phpBB 编程知识。
此外,还有四个附录,涵盖 phpBB 文件和目录结构、phpBB 资源、权限速查表以及 phpBB 数据库结构的指南。
使用本书所需条件
为了从本书中获得最大收益,您需要拥有对 phpBB 工作安装的行政访问权限—第二章 将引导您完成这一过程。
习惯用法
在本书中,您将找到多种文本样式,用于区分不同类型的信息。以下是一些这些样式的示例及其含义的解释。
代码有三种样式。文本中的代码词如下所示:"为了说明差异,您可以print_r()两个函数的结果"。代码块将如下设置:
define(‘IN_PHPBB’, true);
$phpbb_root_path = ‘./’;
include($phpbb_root_path . ‘extension.inc’);
include($phpbb_root_path . ‘common.’.$phpEx);
当我们希望您注意代码块中的特定部分时,相关的行或项目将被加粗:
define(‘IN_PHPBB’, true);
$phpbb_root_path = ‘./’;
include($phpbb_root_path . ‘extension.inc’);
include($phpbb_root_path . ‘common.’.$phpEx);
新术语和重要词汇以粗体字形式引入。您在屏幕上看到的单词,例如在菜单或对话框中,在我们的文本中如下所示:"点击下一步按钮将您移动到下一屏幕"。
注意
提示、建议或重要注意事项以如下框中的形式出现。
任何命令行输入和输出都如下所示:
>\. mydump.sql
Query OK, 1 row affected (0.00 sec)
读者反馈
我们欢迎读者的反馈。告诉我们你对这本书的看法,你喜欢什么或可能不喜欢什么。读者反馈对我们来说非常重要,以便我们开发出真正能让你受益的标题。
要发送给我们一般性的反馈,只需发送电子邮件至 `feedback@packtpub.com》,确保在邮件主题中提及书名。
如果有你想让我们出版但尚未出版的书籍,请通过 www.packtpub.com 上的 建议书名 表格或发送电子邮件至
如果你在一个领域有专业知识,并且你对撰写或为书籍做出贡献感兴趣,请参阅我们在 www.packtpub.com/authors 上的作者指南。
客户支持
现在你已经是 Packt 书籍的骄傲拥有者,我们有一些事情可以帮助你最大限度地利用你的购买。
下载本书的示例代码
访问 www.packtpub.com/support,从标题列表中选择本书,下载任何示例代码或额外资源。可下载的文件将随后显示。
注意
可下载的文件包含如何使用它们的说明
错误清单
尽管我们已经尽最大努力确保内容的准确性,但错误仍然可能发生。如果你在我们的书中发现错误——可能是文本或代码中的错误——如果你能向我们报告这个错误,我们将不胜感激。通过这样做,你可以帮助其他读者避免挫败感,并有助于改进本书的后续版本。
如果你发现任何错误,请通过访问 www.packtpub.com/support,选择你的书籍,点击 提交错误 链接,并输入你的错误详情来报告它们。一旦你的错误得到验证,你的提交将被接受,并将错误添加到现有错误清单中。现有的错误清单可以通过从 www.packtpub.com/support 选择你的标题来查看。
问题
如果你在本书的某个方面遇到问题,可以通过
第一章. phpBB 简介
在本质上,在线公告板是商店和其他公共场所中发现的公告板的互联网版本。它基本上就是一个人们留下信息供他人阅读的地方。嗯,在线公告板应用程序已经变得比这更强大和复杂,但基本原则是相同的。phpBB 是目前在网上实现公告板理念的最受欢迎的免费软件之一。
在这本 phpBB 书的第一章中,你将了解以下内容:
在线社区
phpBB 历史
phpBB 开发及其发展方向
使用 phpBB 可以实现什么,以及现有的 phpBB 网站的例子
在线社区
在线社区是一群人因为某种原因聚集在网站上的群体。这个原因可以是任何对群体共同感兴趣的主题,比如职业、爱好、激情或地点。这样的在线社区非常受欢迎,随着越来越多的人开始上网,它们的受欢迎程度正在增长。想想看——每个人都有他或她热衷的事情。而且每个人都喜欢遇到有共同兴趣的人。从历史上看,这样的基于计算机的社区甚至在互联网出现之前就存在了;例如,使用基于调制解调器的点对点公告板系统(BBS)。
在社区中存在的一个基本部分是分享和贡献(例如,对某个主题发表评论或指出对群体感兴趣的话题)。这样,网站访客就不再是仅仅看着一个一成不变的网站。他们通过贡献内容在改变网站的面貌。如今,在我们访问的网站上发表评论的能力已经变得如此普遍,以至于我们几乎期望它在那里。
静态的、像小册子一样的网站正在变得过时。社区统治着网络。这对网站所有者和访问者来说都是好消息。网站被设计成供人们访问和使用,同时,人们也在参与建设他们访问的网站。网站所有者可以立即获得关于访客喜欢或不喜欢什么的反馈,而访客每次访问都能获得新的和新鲜的内容。如今,社区不仅会影响网站所有者的决策,甚至可以通过投票或公开讨论做出决策。因此,说网站的成功或失败往往取决于围绕网站建立在线社区的成功或失败并不过分。最终,网站是为了被使用而建立的,而人们有权决定这个网站是否有价值。
建设社区——工具
为了设置您的在线社区将聚集的地方,您需要工具。您可以将精力投入到自己创建工具中——当然,前提是您在网页编程、服务器管理等方面有专业知识——或者您可以选择不重新发明轮子,并采用一个解决方案。这就是 phpBB 发挥作用的地方。
现在有各种各样的社区建设工具。它们可以是像留言簿那样简单,或者更复杂,如聊天系统、网络日志(博客)或邮件列表。或者它们可以是论坛,也称为公告板。论坛系统继承了并扩展了来自黑暗的互联网前时代的公告板系统(BBS),并为它们添加了网络浏览器界面。phpBB 属于用于构建在线社区的论坛工具家族。
名称
名称由两部分组成——“PHP”和“BB”。PHP 是编写软件的编程语言,“BB”代表“公告板”;它是一个用 PHP 编程语言编写的公告板工具。
PHP 也是一个缩写,它代表,或者至少曾经代表,Personal Home Page。PHP 不再仅仅是像最初那样的一套个人主页工具,而已经成长为一个真正的编程语言。它的缩写已经深入了一层,现在递归地代表“PHP Hypertext Preprocessor”。但人们通常简单地称之为 PHP。
环境
从技术角度来说,您需要以下内容才能使用 phpBB:
要执行的程序代码
一个数据库来存储信息
Web 服务器软件,因为这是一个网络应用程序
一台计算机来运行所有这些!
如您所知,phpBB 使用PHP服务器端编程语言编写。此外,为了运行,phpBB 需要一个数据库。所有讨论的数据都存储在那里。有不同类型的数据库系统 phpBB 可以与之协同工作,但最流行且在当今 PHP 应用程序中最常用的是MySQL。最后,phpBB 需要一个网络服务器和运行操作系统的计算机。phpBB 可以在不同的操作系统和网络服务器上运行,但它主要在Linux平台上与Apache网络服务器一起使用。
使用网络开发者的术语,您可能会说 phpBB 主要在 LAMP 环境中使用,其中 LAMP 是 Linux、Apache、MySQL 和 PHP 的缩写。关于 LAMP 环境的一个重要特点是它的组件是免费和开源的。在实践中,“免费和开源”意味着:
您可以使用该软件而无需支付软件许可费。
如果您想修改软件以更好地满足您的需求,软件的编程代码可供您使用。
phpBB 的另一个优点是它对托管服务器的需求非常低。由于 phpBB 环境由免费软件产品组成,您很容易找到一个好且相对便宜的托管服务提供商。只需在 Google 上搜索“phpbb 托管”就会得到大约一百万个结果。
为什么选择 phpBB?
为什么你应该从你所拥有的所有选项中选择 phpBB?好吧,既然你在读这本书,你很可能已经做出了决定,所以我就给你一些建议,如何处理你的这位运行 vBulletin、Phorum 或其他类型系统的网站管理员朋友。
phpBB 是免费的。看起来它将保持这种方式。已经有公司提出购买 phpBB,但这些提议都被拒绝了。
phpBB 是最受欢迎的论坛软件之一。所有那些网站管理员都不可能是错的。他们继续使用 phpBB 来支持他们的网络社区,这是他们最好的证明。
人们都知道 phpBB。由于其受欢迎程度,你的访客很可能已经见过并使用过它。他们不需要学习一个全新的系统,可以立即开始发帖,在一个熟悉的环境中感到舒适。
phpBB 已经成熟。它已经活跃并重用了超过四年,在互联网术语中这是一个相当长的时期。
phpBB 功能丰富,并开放接受定制功能添加。你可以编写自己的定制功能,或者你可以使用一个或多个由 phpBB 用户社区贡献的众多 phpBB 插件,也称为 MOD 或 hacks。
phpBB 的外观是可定制的。你可以轻松地更改字体和颜色。你甚至可以更改布局或使用其他 phpBB 用户贡献的现有布局。
历史
詹姆斯·阿特金森是该软件的创造者。他是第一个开发者,现在是 phpBB 项目的项目经理。像许多其他开源项目一样,phpBB 最初是一个个人项目。詹姆斯想在妻子的网站上建立一个论坛。当时,他有两个选择:使用像先驱 UBB(Ultimate Bulletin Board,用 Perl 编写)这样的商业包,或者使用名为 Phorum 的免费解决方案,它是用 PHP 编写的,但詹姆斯不太喜欢它的线程风格。因此,他决定自己动手,创建一个类似 UBB 的基于 PHP 的公告板系统。
phpBB 是在 2000 年 7 月 1 日晚上 6:45“出生”的。我们知道确切的日期和时间,因为那是詹姆斯在互联网论坛上发帖说,他已经创建了一个公告板,并希望得到一些测试帮助的时候。几周后,他公开了项目的源代码,使其免费并可供所有希望加入并贡献开发的人使用。
其他爱好者加入了进来,2000 年 12 月 16 日,第一个官方 phpBB 发布了——phpBB 版本 1.0。此后,phpBB 团队开始了发布-特性请求-开发-测试-发布的循环。
phpBB 在 2002 年 4 月 4 日发布了 2.0 版本后变得非常受欢迎。这个版本是对源代码的完全重写,因为软件的功能比最初预期的要丰富得多,而旧代码库根本无法容纳新的开发。界面也得到了完全的翻新。
开发
phpBB 是一个开源项目,并且具有一些特定的特点:
开发者来自世界各地,他们是志愿者。phpBB 是一个成功的开源项目。它拥有一个令人印象深刻的团队名单,大约有 50 人,而大多数开源项目只有两三个。
有一个社区的用户经常转变为合作者。
您可能会想知道社区和 phpBB 的开源性质如何帮助其发展。有很多方法,但仅举一些主要的例子:
使用和测试软件
报告错误,以便开发者可以修复它们
通过 MOD 和黑客手段贡献新功能,从而扩展功能
为其他 phpBB 管理员贡献新的模板
为其他 phpBB 用户提供技巧和建议
推广和宣传 phpBB,从而增加社区规模
phpBB 正在持续开发中。下一个版本 3 的工作正在进行中,并且本着这个开源项目的精神,正在开发中的工作可以供预览和评论。
phpBB 示例网站
phpBB 的一个优点是它高度可定制和可扩展,无论是在功能上还是在外观上。这意味着:
您可以使用您喜欢的配色方案、字体和整体布局。
您可以修改 phpBB 并开发您自己的功能扩展,或者您可以使用现有的修改。
在本节中,您将找到一些真实世界的例子,说明 phpBB 如何用于支持在线社区网站。
标准的 phpBB 布局
让我们从使用默认 phpBB 风格和默认功能集的现成解决方案的例子开始。在这个示例网站上,甚至 phpBB 标志也被保留了下来。这是 Distributed Proofreaders([www.pgdp.net/phpBB2/]( http://www.pgdp.net/phpBB2/ ))的网站,它使用 phpBB 提供一种基于网络的校对方法,以简化将公共领域书籍数字化为 Project Gutenberg 电子书的相关校对工作。通过将工作分解成单个页面,许多校对者可以同时校对同一本书。
不同模板的标准网站
下面的例子是具有默认功能集的 phpBB 安装,但具有不同的风格。在您的论坛展示方面,您有很多选择。
您可以选择不使用默认的 phpBB 外观,而是找到一个更适合您需求和布局/颜色偏好的预制作模板。或者,如果您找不到您想使用的模板并且您了解一些 HTML,您甚至可以创建自己的自定义模板。以下是一些使用不同于默认模板的模板的网站。
Mike Lothar:本书作者之一的个人网站(community.mikelothar.com/)。他的章节(第六章 创建您的自定义模板
Keenspot:一个讨论漫画书的公告板(forums.keenspot.com/):
ForumPlasma:一个游戏社区(www.forumplasma.com/):
具有标准样式和修改功能的网站
一些网站选择使用默认的 phpBB 样式,但引入了新功能。这些新功能通常被称为修改(MOD)或黑客技术。
您可以找到许多可免费下载的预制作 MOD,您可以使用它们来增强您的论坛。
Dogomania 论坛:一个宠物主人的社区。该网站与标准 phpBB 安装不同,具有自定义页眉、页脚和导航(forum.dogomania.com/):
中文语言和文化论坛:页眉和页脚已修改以放置广告;引入了多项其他修改。该网站还提供论坛的 RSS 订阅、WAP 和 PDA 视图(www.chinese-forums.com/):
使用自定义模板修改的 phpBB 安装
设计师领域:一个各种风格的设计师社区——网页、图形、印刷等。该网站具有自定义布局,并且从基础 phpBB 安装中进行了大量修改(www.designersrealm.com/):
Jaredwsmith 的论坛:一个非常好的自定义布局,包括自定义页眉、页脚、导航,以及安装了多个修改(www.jaredwsmith.com/forums):
GaiaOnline
GaiaOnline 是终极 phpBB 公告板。该网站的模板是自定义的,并引入了许多功能、定制和优化。拥有约 2 亿条帖子、150 万注册用户,这是互联网上最大的公告板(www.gaiaonline.com):
摘要
本章使你熟悉了 phpBB 解决方案及其解决的问题。你已经了解了它的历史和发展。你还看到了许多现有的由 phpBB 驱动的社区网站,这些网站可以给你一些关于你可以用该软件实现什么的提示。现在,你已经准备好学习关于 phpBB 论坛的安装、配置和定制了。很快,就在下一章结束之后,你将能够开始建立自己的社区网站。让我们踏上探索 phpBB 世界的旅程。
第二章 安装和配置 phpBB
现在你对 phpBB 有了一个大致的了解,是时候在你的服务器或个人计算机上安装它并开始使用了。安装过程通常不难——phpBB 有一个内置的基于浏览器的安装程序,这使得工作变得容易得多——但在开始之前,你需要了解一些先决条件和一些细节。安装 phpBB 后,你还需要执行一些安装后任务。在本书的第二章中,你将学习:
在安装 phpBB 之前需要满足哪些先决条件
如何下载和安装 phpBB
基本安装后任务,以及一些安全提示
遇到问题时在哪里以及如何寻求帮助
预安装
在本节中,你将了解 phpBB 的服务器需求,这些需求在托管提供商提供的服务器配置中价格较低。然后本节讨论一些与数据库相关的话题,并以一个清单结束,你可以使用这个清单来确保你有开始安装过程所需的一切。
需求
在服务器需求方面,phpBB 非常灵活,你有很多选择。但让我们集中讨论最广泛使用的配置,包括:
任何主要操作系统
Apache 网络服务器
MySQL 数据库系统,版本 3.22 或更高
PHP 版本 4. PHP3 也可以使用,但建议使用最新的稳定版 4.3
phpBB 在设计时考虑了便携性,因此上述所有需求都非常灵活。让我们更详细地看看它们,并了解你有哪些选择。
操作系统(OS):phpBB 是操作系统独立的。这意味着它可以在各种操作系统上运行——Windows、Linux、MacOS。你应该不会遇到满足这个要求的问题,并且可以在你首选或最经济的环境中运行你的论坛。
网络服务器:phpBB 可以运行在各种网络服务器上,包括最流行的 Apache 和微软的互联网信息服务器(IIS)。如果你使用的是托管服务,网络服务器需求不会成为障碍。但如果你想在你的计算机上安装 phpBB,你必须注意这个细节。虽然描述如何安装网络服务器超出了本书的范围,但你可以找到一些有用的信息。
数据库系统:目前 phpBB 支持的数据库包括 MySQL 3.22 或更高版本(包括 MySQL 4.x)、PostgreSQL 7.0.3、MS SQL Server(7 或 2000,直接或通过 ODBC)以及通过 ODBC 的 MS Access(2000 或 XP)。再次强调,根据你是本地安装 phpBB 还是远程服务器安装,你可能需要在你的计算机上安装一个支持的数据库系统,或者简单地询问你的服务提供商你有什么数据库访问权限。
PHP:一般来说,所有 PHP 应用程序都由包含编程指令的文件组成,这些指令由所谓的 PHP 解释器执行。PHP 解释器是一段软件,你需要在想要安装 phpBB 的系统上运行它。如果你选择托管服务,好消息是 PHP 非常流行,以至于实际上很难找到一个不支持它的托管服务。
PHP 4.x 是最广泛使用的 PHP 版本,也是 phpBB 安装中最广泛使用的版本。如前所述,PHP 3.x 足以让你的论坛运行,但不推荐使用。PHP 5 也不推荐使用(目前还不推荐),因为由于 phpBB 是在 PHP 5 发布之前开发的,所以 phpBB 在这个平台上还没有经过彻底的测试。
注意
phpBB 可以在 PHP 3.x 和 4.x 版本上运行,但如果你有选择,你应该目标是最新稳定的 PHP 4.3.x 版本。
攻击计划
现在你已经明确了要求,让我们来探讨将 phpBB 安装到系统中的选项:
你已经有了一个现有的网络托管服务:在这种情况下,你只需要联系你的托管服务提供商,并询问他们是否支持 PHP 以及上述列出的任何数据库,最好是 MySQL。如果他们不支持,找出他们是否可以为你安装/启用这些。如果他们仍然无法帮助你,你可能需要从剩下的选项中选择一个。
你在寻找一个好的托管服务提供商:好消息是,即使是价格最低的托管套餐通常也包含 PHP 和 MySQL 的支持。在选择托管服务提供商时有很多要点需要考虑,但至少,你应该在网上浏览一些独立的评论。不要仅仅因为带宽和磁盘空间巨大甚至无限而匆忙选择最便宜的套餐。向你的潜在托管服务提供商问一些问题(例如关于上述要求的问题)并判断他们响应的速度和质量。当你需要时,你希望有一个可靠的支持。
你想要在自己的电脑上安装 phpBB:有时,即使你选择了前两种选项,你也可能仍然想要在本地测试你的论坛。例如,如果你以后想要尝试安装或创建新的样式或修改,在你上线之前在自己的电脑上进行开发和测试可能会更容易(并且肯定更安全)。
如果你想在你的电脑上设置环境,你有两种选择:一个接一个地安装所有必要的组件,配置它们,并使它们协同工作,或者使用互联网上可以找到的某个一站式安装(捆绑包)。它们通常包括一个可下载的安装程序,负责安装和配置你所需的所有内容——Apache、PHP、MySQL——以及更多。这样的全包捆绑通常有 XAMPP([www.apachefriends.org/en/]( http://www.apachefriends.org/en/ ))和其他在 HotScripts 上列出的捆绑包,例如(http://www.hotscripts.com/PHP/Software_and_Servers/Installation_Kits/)。
如果你想要自己设置环境而不是使用现有的捆绑包,以下是你需要做的。
行动时间 - 在本地电脑上设置环境
安装 Apache Web 服务器。
注意
前往httpd.apache.org/download.cgi。从您最近的镜像下载适用于您操作系统的最新稳定版 1.3.x 服务器版本。安装它,如有疑问,请参考httpd.apache.org/docs/上的文档。
安装 PHP。
注意
从www.php.net/downloads.php下载适用于您操作系统的最新稳定版 4.3.x。版本,如有必要,参考文档www.php.net/manual/en/install.php进行安装。
安装 MySQL。
注意
从dev.mysql.com/downloads/下载最新推荐的版本。文档只需点击dev.mysql.com/doc/mysql/en/Installing.html即可获取。
安装 phpMyAdmin(可选)。
注意
phpMyAdmin 是一个免费且非常流行的 Web 应用程序,通过简单直观的浏览器界面管理 MySQL 数据库。你并不绝对需要它,但它在数据库操作方面可以使你的生活变得更加容易。它需要 PHP,但你已经安装了它,所以你一切都准备好了。最新稳定版本可以从www.phpmyadmin.net/下载。
当你下载时,你可能已经注意到了建议下载“源代码”或“二进制文件”。请下载二进制文件,但如果你真的对幕后代码的样子感到好奇,请下载源代码文件,玩弄它们并尝试自己编译它们。当然,这需要一些 C 编程知识。所有这些源代码都可以免费使用、学习和修改。欢迎来到开源软件的奇妙世界!
现在有了运行 PHP 和 MySQL(或另一个数据库系统)的 Web 服务器,让我们看看一些数据库准备工作。
完成预安装前的触摸——数据库
phpBB 需要访问数据库,因此您必须使用现有的数据库或创建一个新的数据库。根据您是在本地计算机上安装还是远程服务器上安装,您将有不同的选项来设置 phpBB 所需的数据库;我们将查看这些选项。如果您有选择,请为 phpBB 使用一个新的空数据库;这使维护更容易。
为本地安装设置数据库
如果您在个人计算机上安装 phpBB,您在创建用于 phpBB 的新数据库时应该没有限制。您可以通过使用 phpMyAdmin 或使用控制台(命令提示符)来实现。使用 phpMyAdmin,创建新数据库非常简单;这是您加载应用程序时呈现的第一个选项之一。如果您没有安装 phpMyAdmin,您可以使用命令提示符来创建新数据库。让我们看看两种方法。为了本章中的示例,让我们假设您的新数据库名为"forums"。
行动时间——使用 phpMyAdmin 创建论坛数据库
前往您的主要 phpMyAdmin 页面。
在创建新数据库字段中输入文本forums。
点击创建按钮。
发生了什么
您已创建了一个新的数据库。在您左侧的 phpMyAdmin 中的数据库下拉菜单中,您现在将找到一个新选项——您刚刚创建的"forums"数据库。
行动时间——使用命令提示符创建论坛数据库
访问您的命令提示符。(Windows 用户,点击开始,然后运行,然后输入cmd)。
在命令提示符(控制台窗口)中,使用cd directory_name进入目录(cd 表示“更改目录”)和cd .返回(向上一级),如果您错误地输入了错误的目录。
一旦您进入 MySQL 安装的目录,请转到bin目录,在那里您将找到几个 MySQL 可执行文件。
输入mysql u root p。
注意
这条指令的意思是“使用用户名root连接到 MySQL 并要求我输入密码”。root是 MySQL 安装时的默认用户名。如果您已创建了其他 MySQL 用户帐户,您可以使用其中一个。
当提示输入密码时,按Enter(Mac 上的Return)。这意味着您提供一个空密码。用户名root带有空密码是默认的 MySQL 帐户。如果您已更改此密码,请输入它。
如果您已成功连接,您将看到一个欢迎信息和mysql提示符。输入CREATE DATABASE forums;然后按Enter。不要忘记在末尾加上分号。
如果您想验证数据库是否已创建,请输入SHOW DATABASES;然后按Enter。您应该在列表中看到您刚刚创建的新数据库。
就这样。输入exit,按Enter,MySQL 会礼貌地对您说“再见”。
再次输入exit以关闭您的命令提示符。
为远程安装设置数据库
在这种情况下,过程可能因你具体的套餐及其限制而大不相同。一些可能的场景包括:
一些主机只提供一个具有预定义名称的数据库。找出这个名字;这就是你将要使用的数据库。
一些主机允许你使用安装在服务器上的 phpMyAdmin 创建数据库。
一些提供不同的 Web 界面来创建数据库,作为主机套餐控制面板的一部分。
一些服务提供商可以给你他们的服务器 shell 访问权限。shell 访问意味着你将能够使用命令提示符并在远程服务器上执行指令(命令)。在这种情况下,你需要向你的主机提供商了解如何建立到服务器的 shell 连接。连接成功后,重复之前描述的命令提示符创建数据库的步骤。这次你将使用主机提供给你的数据库用户名和密码。
为了建立 shell 连接,你需要一个名为shell 客户端的程序。一个流行的选择是免费的 PuTTY telnet 和 SSH 客户端(www.chiark.greenend.org.uk/~sgtatham/putty/)。
安全提示:如果可能的话,在你的主机上创建一个新的 MySQL 用户账户,只给它访问你刚刚创建的新数据库的权限,并用于 phpBB 的安装。这听起来可能有些过于偏执,但原因通常是主机只提供一个用户名和密码,它可以用于所有事情——FTP、MySQL、控制面板和 shell 访问。因此,创建新的 MySQL 用户名/密码组合的原因是,如果它因某种原因被泄露,拥有它的恶棍只能造成有限的损害。这个密码只适用于一个数据库,不适用于 FTP、shell 或控制面板访问。
在创建这个新的数据库用户账户时,最好只分配“select”、“insert”、“update”和“delete”权限;phpBB 的正常运行不需要其他可能的权限。尽管如此,phpBB 的安装也需要“create”权限,而某些修改安装可能需要“alter”或“drop”权限。因此,最安全的选项是将“select”、“insert”、“update”、“delete”和“create”权限分配给新的数据库用户,一旦安装完成,就移除“create”权限。
创建新数据库用户的实际过程可能因你的主机提供商的政策而异。有些可能不允许这样做,有些可能提供专门的界面,有些可能允许你访问 phpMyAdmin。使用 phpMyAdmin 创建新的 MySQL 用户账户相当简单;只需点击 phpMyAdmin 主页上的用户链接,然后填写添加表单。
如果你正在使用命令提示符创建新用户,请使用以下查询:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE
ON forums.*
TO ‘mysecretusername’@’localhost’
IDENTIFIED BY ‘mysecretpassword’;
在这个例子中,forums 是数据库名称,localhost 是数据库主机名,mysecretusername 是分配给该数据库用户的用户名,而 mysecretpassword 是密码。
phpBB 预安装清单
到目前为止,您现在已准备好安装 phpBB。但在继续之前,花一分钟回答以下问题;这只是为了确保您拥有所需的一切(第七章,讨论了修改和黑客技术,讨论了一些可能对您有帮助的技能集和工具):
我有一个运行的 Web 服务器吗?
我的 Web 服务器运行 PHP 吗?
我的 Web 服务器运行的是 MySQL、PostgreSQL、MSSQL 还是 MS Access?
我知道我的 FTP 主机名、用户名和密码吗?(此步骤仅适用于远程服务器,请参阅清单后的说明。)
我访问数据库的用户名是什么?
该数据库运行在哪个主机上?(询问您的托管提供商;它通常是 localhost 或 127.0.0.1。在 ODBC 的情况下,需要一个 DSN。)
我的数据库(例如 forums)的名称是什么?
关于 FTP 的说明:您需要一个 FTP 程序,也称为 FTP 客户端,以便将文件从您的计算机传输到远程服务器。有许多免费/试用版的 FTP 程序可供使用。只需简单的 Google 搜索就会产生大量结果。通常,使用 FTP 程序与在本地计算机的不同位置复制文件没有太大区别。区别在于您需要首先建立与远程计算机的连接。为了做到这一点,您需要一个 FTP 主机名、用户名和密码,您可能已经拥有,由您的托管提供商提供。
安装
现在所有先决条件都已满足,让我们开始安装过程:
下载:从 www.phpbb.com/downloads.php 下载压缩的 phpBB 文件,选择您知道如何解压的压缩格式。
解压:使用您首选的压缩工具(例如 WinZip)将文件解压到选定的目录中。如果您是在本地安装,请将文件解压到您的网站根目录内的一个目录中。phpBB 目录树的最顶层目录将被称为 phpBB2。
FTP:如果您是在本地安装,请跳过此步骤。如果您是在远程服务器上安装,请将整个 phpBB2 目录原样复制到远程服务器上。您可以使用 FTP 程序连接到您的服务器并传输文件。
选择您的 phpBB 根目录。在这个步骤中,您需要做出一个重要的决定——在您的服务器上安装 phpBB 的位置以及如何命名它。之所以这很重要,是因为这将决定您的用户将如何看到您的论坛。假设您的域名是 www.yourdomain.com。您有以下几种选择:
如果您将 phpBB2 目录及其内容复制到您的网站根目录并安装而不做任何修改,您的论坛将可在 www.yourdomain.com/phpBB2 访问。
您可以简单地将 phpBB2 目录重命名为您喜欢的名称,比如 forum。在这种情况下,您的社区将位于 www.yourdomain.com/forum。
您可以选择在您的网站根目录中托管论坛,以便可以直接在 www.yourdomain.com/ 访问,或者如果您使用子域名,则类似于 forum.yourdomain.com/。如果您决定这样做,那么您需要复制 phpBB2 目录的 内容 到您的(子)域名的网站根目录,这不仅仅是 phpBB2 目录本身,而是包含在其中的文件和目录。
为了本章的目的,我们将选择第二个选项 www.yourdomain.com/forum,因为它可能是最常见的一种。
config.php:您需要更改此文件的权限,以便在安装过程中 phpBB 可以写入。转到 phpBB 安装的根目录,找到名为 config.php 的文件。更改文件权限,使其可由 phpBB 安装脚本写入,换句话说,在 Linux 系统上,使用 chmod 命令将其设置为 666(或 -rw-rw-rw-)。在 Linux/Unix 系统上,chmod 是一个表示“更改模式”的命令,用于调整文件权限。文件权限指定了谁可以对特定文件做什么。您更改文件模式的选择包括:
如果您有对 Linux 服务器的 shell 访问权限,请转到您的 phpBB 目录并输入 chmod 666 config.php。这样就可以了。
如果您只有 FTP 访问权限,那么您的 FTP 客户端(您用于将文件复制到远程服务器的程序)可能会给您提供 chmod 的选项,但您需要找到它。在一些 FTP 客户端中,这个选项简单地称为 chmod,在其他客户端中则位于文件属性或权限下。
如果您无法更改文件权限,请不要担心。如果在安装过程中 phpBB 安装程序无法写入此文件,您将会有下载系统中的 config.php 文件并然后通过 FTP 上传文件,覆盖 phpBB 根目录中已有的文件的选择。
启动 phpBB 安装程序:将您的浏览器指向 phpBB 目录,在我们的例子中是 www.yourdomain.com/forum/。您将被自动重定向到安装脚本,该脚本位于 www.yourdomain.com/forum/install/install.php。
您应该会看到一个类似于上页所示的屏幕。
安装程序数据表单:完成安装屏幕上显示的表单。上一节中的清单在这里很有用。以下是对此表单字段描述的概述,因为其中一些可能不是那么不言自明。简而言之,此表单中的大多数字段由 phpBB 安装程序预先填写;您需要关注的基本上只是数据库名称、用户名、密码以及管理员用户名、密码和电子邮件地址。
选项
设置
默认论坛语言
由于您尚未安装其他语言,英语是唯一选项。稍后如果您决定使用其他语言,您总是可以更改此设置。
数据库类型
您将使用的数据库系统,最可能是 MySQL 4.x 或 MySQL 3.x
选择您的安装方法
安装或升级。由于您没有之前的 phpBB 安装,您将选择安装。
数据库服务器主机名/DSN
通常为localhost;请参考您的清单。
您的数据库名称
请参考您的清单。
数据库用户名
请参考您的清单。
数据库密码
请再次参考您的清单。
数据库中表的表前缀
phpbb_是默认值。安装后,数据库中所有与 phpBB 相关的表都将使用此前缀作为其名称的一部分,例如phpbb_users和phpbb_posts。使用前缀不是强制性的,但这是一个很好的方法,可以区分您的 phpBB 表和其他所有表,以防您在同一数据库中有其他非 phpBB 相关的表。这也允许您,例如,拥有两个或更多共享同一数据库的独立 phpBB 安装;您只需为每个安装使用不同的前缀即可。在此前缀中不要使用空格,否则安装程序将返回错误。如果您没有理由更改它,保留默认的phpbb_前缀是一个好主意。您可能希望在以后安装的大多数 phpBB 修改都将假定此前缀。
管理员电子邮件地址
您的电子邮件地址。当 phpBB 通知用户关于新私信时,它将被用作发送者电子邮件地址。因此,提供一个您经常检查的有效电子邮件地址是一个好主意。例如,代表您的论坛的电子邮件地址admin@yourdomain.com将是一个不错的选择。
域名
您的域名。phpBB 安装程序可能会自动识别,否则请自行输入。
服务器端口
默认值为80。通常您不需要更改此值。
脚本路径
到您安装的相对路径。通常 phpBB 安装程序会正确猜测,您不需要更改它。
管理员用户名
管理员用户名非常重要。没有默认值,但使用管理员是一个常见的选择。
管理员密码
请谨慎选择并确保难以猜测。此选项不能留空。
完成安装:点击安装按钮。如果到目前为止一切顺利,您已填写安装表单中所有必需的数据,并且没有错误信息,phpBB 将成功安装。恭喜!点击完成安装并继续进行安装后的任务。
安装故障排除
此故障排除指南并非详尽无遗;它仅包含 phpBB 用户遇到的一些常见问题。如果您的問題未在此列出,请参阅本章末尾的最后部分以获取有关如何寻求帮助的指南。
症状
错误信息:当前无法写入配置文件。
原因
由于某种原因,上述安装步骤的第 5 步未完成。再次阅读第 5 步的描述,但仅当您需要更多关于错误性质的背景信息时。否则,请参阅下面的解决方案。
解决方案
phpBB 安装程序本身将从这个情况中恢复。只需遵循屏幕上的说明即可。
您可以选择下载安装程序尝试写入的config.php文件。下载文件后,将其复制/FTP 到 phpBB 根目录中已存在的config.php文件上。
或者,如果您使用的是支持 FTP(很可能)的 PHP 版本,您还可以选择使用安装程序为您 FTP 文件。如果您想使用此选项,您将必须输入您通常用于通过桌面 FTP 客户端(CuteFTP、SmartFTP 等)连接到服务器的数据。请确保输入 phpBB 安装程序可以复制config.php文件的完整路径。完整路径与在您的 FTP 客户端中可见的路径相同。换句话说,phpBB 安装程序正在尝试为您充当 FTP 客户端。
症状
错误信息:无法连接到数据库。
原因
此消息可能有几个原因:
您尚未安装数据库系统。
数据库系统已安装,但未运行。
您未从第 7 步中描述的下拉列表中选择正确的数据库类型。
数据库主机名/DSN 不正确。
您提供的数据库名称指向一个不存在的数据库。
您访问数据库的用户名不正确或此数据库用户权限不足。
您访问数据库的密码不正确。
解决方案
再次阅读预安装部分。确保使用正确数据完成最后的清单。如果您仍然遇到问题,请参阅本章末尾的最后部分以获取寻求帮助的建议。
症状
错误信息:您输入的密码不匹配。
原因
这指的是在安装程序表单的最后部分,在管理员配置下输入的管理员密码和密码确认。
解决方案
确保在两个字段中输入相同的密码。密码不能为空。
症状
错误信息:您的服务器上的 PHP 配置不支持您选择的数据库类型。
原因 1
PHP 实际上支持您想要使用的数据库系统,但您没有从安装表单的数据库类型字段中选择它。
解决方案
点击浏览器上的 后退 按钮,并选择适当的数据库类型。
原因 2
正如消息所述,您的 PHP 安装不支持所选的数据库系统。
解决方案
与您的托管提供商联系,或者如果您是在本地安装,请阅读有关如何启用对所选数据库类型支持的 PHP 文档。
症状
错误信息:尝试更新数据库表‘phpbb_auth_access’时发生错误,该表已存在。
在这里 phpbb_ 是您在安装表单中输入的表前缀。
原因 1
虽然可能性很小,但可能发生的情况是,在您的数据库中有一个与 phpBB 完全无关的表格,其名称与 phpBB 表的名称相同。
解决方案
这是一个命名冲突。为了解决这个问题,请返回并选择不同的表前缀。
原因 2
您正在尝试使用已经包含 phpBB 安装的数据库进行安装。
解决方案
如果您想保留现有安装,请返回安装表单并简单地选择不同的前缀。这样,您就解决了命名冲突,并且将有两个使用相同数据库的 phpBB 安装。
如果您不想保留现有安装,例如它是一个失败的安装,您必须删除由先前安装创建的所有数据库表格。要删除哪些表格?您可以通过它们的名称前缀来判断。使用友好的 phpMyAdmin 删除这些表格,或者如果您不能使用它,则像本章前面所述,在命令提示符下连接到 MySQL,并手动删除表格。为此,您需要使用 DROP TABLE 语法,这实际上非常简单,但也有一点危险,因为它会永久删除整个数据库表格及其内容。
行动时间——使用 phpMyAdmin 删除 phpBB 表格
加载 phpMyAdmin 主页。
从左侧下拉菜单中选择 forums。forums 是数据库名称;如果不同,请使用您的数据库名称。
在右侧,显示所有表格的地方,勾选您想要删除的每个表格旁边的框。您也可以使用 全选 链接来选择此数据库中的所有表格。
从操作选项中选择 删除。
行动时间——使用命令提示符删除 phpBB 表格
如前所述,使用控制台连接到 MySQL。
一旦连接到 MySQL,使用 \u forums 更改正在使用的数据库,其中 forums 是您数据库的名称。
使用 SHOW TABLES 列出所有表格;然后使用 DROP TABLE table_name_here; 逐个删除它们。
或者,如果您确定这个数据库中没有您需要的表——也就是说,这里除了失败的安装中的一些无用的 phpBB 表之外什么都没有——您可以一次完成:连接到 MySQL 后,输入DROP DATABASE forums;。
这将删除整个数据库。永久!所以请小心。您需要重新创建它以进行下一次安装。
注意
删除表和数据库是一个单向过程,这意味着您不能撤销。所以在删除任何内容之前请三思。在销毁一些表之前,如果您有疑虑,请考虑制作备份。
小贴士:这是一个允许您快速备份表的 MySQL 查询:
CREATE TABLE ‘new_table_name’
SELECT * FROM ‘table_to_back_up’;
这将在当前数据库中创建一个新的表,称为new_table_name,并且新表将与名为table_to_back_up的表具有相同的结构和内容。
如果您想备份不同数据库中的表,您可以使用:
CREATE TABLE ‘new_database’.’new_table_name’
SELECT * FROM ‘source_database’.’table_to_back_up’;
安装后任务
安装 phpBB 后,您需要执行一些安装后操作,即删除不需要的目录并设置一些基本配置选项。
行动时间—删除不需要的目录
通过 FTP 连接到您的服务器(对于本地安装请跳过此步骤)。
前往 phpBB 安装的目录。
删除install和contrib目录。
(可选)也可以删除docs目录。
发生了什么?
安装成功后,当您访问您的新 phpBB 论坛首页时,您会得到有关安装后任务的提示。建议您删除install和contrib目录,因为将它们留在服务器上被认为是一个安全风险,如此之大以至于如果 phpBB 检测到它们的存在,甚至不会运行。
如果您喜欢,也可以删除doc目录;它不是安全威胁,但可以节省一些磁盘空间。
基本配置
删除不需要的目录后,您就可以访问您刚刚安装的新亮丽的公告板了。太棒了!它工作了!
现在熟悉一下管理面板是个好主意。您可以通过编辑一些通用配置变量立即做到这一点。
行动时间—使用管理面板进行初始配置
在浏览器中加载您的公告板,即访问www.yourdomain.com/forum。它看起来像以下截图。
使用页面底部的表单登录。根据安装如何结束,您可能已经登录。如果您还没有,请使用您在安装期间选择的管理员用户名和密码。
点击转到管理面板链接;它位于每个页面的底部。
点击左侧菜单中一般管理部分下找到的配置链接。
根据需要编辑字段(稍后讨论)。
完成后点击提交。
发生了什么?
您已成功登录到您的管理面板,这是管理您基于 phpBB 的公告板的地方。您已加载通用配置设置表单并保存了设置。
此表单中的大多数字段都预先填充了 phpBB 安装程序设置的值,这些值已经很好,但有些字段如果编辑会更好。以下是一个感兴趣字段的列表:
一般论坛设置
站点名称:您站点的友好名称:通常是域名。它将出现在每个页面的顶部。默认值为yourdomain.com,您可以在前面的截图中看到它的实际应用。
站点描述:对站点内容的简要描述,最好不超过六到七个字。它将出现在每个页面的顶部,不是必需的。再次提醒,查看前面的截图以了解默认值一个简短的文字来描述你的论坛。
启用账户激活:这指的是新用户被接受的方式。有三个选项:
用户在注册后立即被接受(这是默认选项)。
他们必须通过点击通过电子邮件收到的链接来确认他们的订阅。这样,他们确认了他们成为会员的愿望,并验证了他们是注册时提供的电子邮件地址的所有者。这可能是最常用的选项。
会员注册申请需要由管理员进行审查和批准。
系统时区:您的社区主要所在的时区。这是一个默认值,每个成员都可以覆盖。
启用 GZip 压缩:启用此选项将导致所有页面在从服务器发送时被压缩,并在用户计算机接收到后(如果用户的浏览器支持压缩)被解压缩。如果不支持,则服务器不会压缩页面。这会导致网站运行更快,使用更少的带宽,但会增加服务器负载,因为压缩每个服务的页面的开销。
Cookie 设置
Cookie 名称:通常你不需要更改这个。只有在你使用同一个域名托管多个论坛时,你可能需要更改这个值。如果是这种情况,你可以为每个安装使用不同的 cookie 名称。
Cookie 安全:如果您的站点运行在安全套接字层(SSL)上;换句话说,如果您的页面使用安全的 HTTPS 协议显示,而不是仅使用 HTTP,则启用此选项。
会话长度[秒]:确定用户会话“存活”多长时间后才会被删除。这是一个与安全相关的设置,它确定用户在多久不活跃(不访问任何论坛页面)之前会被 phpBB 注销。
头像设置
“头像”指的是出现在成员用户名下方的那些小型的成员特定图形。你有三种方式提供这种功能。
启用相册头像:用户可以从您上传到指定目录的预定义图形中选择。
启用远程头像:用户可以将他们在互联网上找到的图形链接到其他服务器上。
启用头像上传:用户可以向您的服务器上传图形。
头像存储路径:上传的头像存储位置;默认为images/avatars,这表示www.yourdomain.com/forum/images/avatars/。
头像画廊路径:预定义图形存储位置;默认为images/avatars/gallery,这表示www.yourdomain.com /forum/images/avatars/gallery/。
COPPA 设置
COPPA 代表儿童在线隐私保护法案。基本上,如果他们的孩子要成为您论坛的成员,需要父母书面同意。更多信息,请参阅 phpBB 用户指南和www.coppa.org。
电子邮件设置
管理员电子邮件地址:在安装过程中提供的电子邮件地址。
电子邮件签名:这将被附加到 phpBB 代表您发送的每一封电子邮件上,例如私人消息通知、主题关注通知等。发挥你的想象力,为你的成员设计友好的消息页脚。
使用 SMTP 服务器发送电子邮件:您可以选择使用 SMTP 服务器发送邮件,而不是本地的 PHP 邮件函数。一些主机禁用了 PHP 邮件函数,因为不道德的客户可能会滥用它(发送垃圾邮件)。如果是这种情况,您需要使用 SMTP 服务器发送邮件。您的互联网服务提供商(ISP,您用来连接互联网的)很可能已经为您提供了访问 SMTP 服务器的权限来发送电子邮件(例如使用 Microsoft Outlook)。您可以使用这个 SMTP 服务器来管理您的论坛。如果您在自己的 PC 上安装 phpBB 而没有设置邮件服务器,您也可以使用这个选项。
设置头像目录
如果您允许成员向您的服务器上传头像,您必须使存储它们的目录可写。文件权限(在 Linux 机器上)需要是 777。使用我们在预安装部分中用于config.php的相同方法更改文件权限,将image/avatars目录或您决定存储成员头像的任何位置的权限更改为 777。
安全提示
确保您的论坛尽可能安全始终应该是一个关注点。以下是一些可以帮助您开始的提示。
管理员密码
让您的管理员密码难以猜测。这是一个非常重要的密码,所以您不希望其他人猜到并随意操作您的论坛。这也适用于您稍后决定分配的任何版主。提醒他们更改密码为非常难以猜测的密码。例如,使用与用户名相同的密码绝对不推荐。发挥创意,选择像y0u11n3v3rgue$$(读作“你永远不会猜到”)和wh00p3375(读作“whoopee 75”)这样的密码。定期更改此密码并仅为此论坛使用它(不要用于其他服务如 Hotmail 等)也是一个好主意。
禁止对数据库的远程连接
远程连接允许您从远程位置访问您的数据库。例如,从您的本地机器,您可以查询在远程托管服务器上运行的数据库。这确实有好处——例如,为远程数据库中的数据制作本地备份——但它可能是一个安全风险。如果访问数据库的用户名和密码以某种方式泄露,那么如果远程连接被启用,入侵者就可以从他的或她的计算机访问您的数据。如果远程连接被禁用,黑客将必须访问远程服务器才能连接到您的数据库。此外,在启用远程连接的情况下,潜在的黑客可以通过尝试不同的组合来猜测您的密码,直到他们连接成功。
一些托管提供商允许您启用/禁用远程连接,而有些则完全不允许远程连接。检查您的情况,并且(除非您有很好的理由)确保远程连接被禁用。
MySQL 账户
为论坛使用新的 MySQL 账户(或您可能正在使用的任何其他数据库的新账户)。这在本章的预安装部分中已有更详细的描述。
config.php
在您将config.php文件的权限(在预安装部分中描述)更改为所有用户可写之后,并安装了 phpBB,现在是时候将其恢复原状了。使用之前描述的相同方法,将权限更改为 664。
在执行chmod 664 config.php命令后,以下是配置文件的更直观描述。这是一张来自 Windows FTP 客户端的屏幕截图。
.htaccess 保护管理面板
为管理面板添加一层额外的保护可以通过设置 .htaccess 目录保护来实现。.htaccess 是一个文件,可以包含适用于 .htaccess 文件所在目录及其所有子目录的 Apache 服务器指令。设置 .htaccess 保护将在你进入管理面板时显示一个额外的用户名/密码窗口。设置保护可能不是一件简单的事情,互联网上有许多教程可以帮助你完成这项任务。.htaccess 文档可以在 Apache 网站上找到,网址为 httpd.apache.org/docs/howto/htaccess.html。
有可能你的托管提供商为你提供了一个更简单的界面(控制面板),这可以帮助你设置保护。
因此,你可以直接使用 .htaccess 或通过一个更友好的界面来保护根 phpBB 目录下的 admin 子目录,使用与“正常”管理密码不同的用户名和密码。这样,你使潜在的入侵者更难入侵,因为他们需要处理两个不同的用户名/密码组合。
寻找帮助
记得我们之前提到的 phpBB 用户的大社区吗?这些人可以在你遇到无法解决的问题时帮助你。在 phpBB.com 上,有一个包含“静态”文章的支持部分,例如用户指南、知识库和常见问题解答,还有一个社区部分(不出所料,由 phpBB 支持),全球的 phpBB 用户在这里分享他们的经验。你可以在 phpBBHacks.com 上找到类似的用户社区。
当你遇到问题时,不要慌张;你不是一个人,而且很可能有人遇到过并解决了完全相同的问题,这个人很可能会分享解决方案。所以,你提出的问题很可能已经被问过并得到了回答。你所需要做的就是找到它。如果你找不到所需的解决方案,可以在公告板上发帖提问,但请确保先进行搜索。
即使你已经找到了答案,也不要立刻离开。你可以拖延一段时间,帮助那些你知道如何解决的问题。
摘要
在本章中,我们已经走了很长的路:设置了使 phpBB 运行的不同组件,进行了一些数据库准备工作,下载了 phpBB 并安装了它。现在你对 phpBB 的基本配置选项以及如何使你的论坛更安全也有了一定的了解。
到目前为止,你已经拥有了启动社区网站所需的知识和技能。今天就可以开始!
第三章。phpBB 快速游览
在前面的章节中,你学习了 phpBB 是什么以及如何安装它。现在是时候更深入地了解它实际上是如何工作的,以及它为用户、版主和管理员提供哪些功能了。
在本章中,你将学习:
从访客的角度看 phpBB 是如何工作的
版主的权限是什么
最受欢迎的行政功能是如何工作的
访客体验
随着越来越多的人加入你的在线社区,他们可能会开始询问有关一些论坛功能的问题。如果你想成为一个好、理解且乐于助人的社区主人,你应该能够引导他们并回应他们的关切。这就是为什么详细了解你的 phpBB 论坛是如何工作的是个好主意。
如果你刚刚从上一章跳转过来,你可能仍然以管理员身份登录。请登出,让我们穿上访客的鞋子开始对新论坛的游览。
概览
如果有人按照上一章的步骤访问你刚刚创建的论坛,他们很可能看到以下内容:
这张截图显示了 phpBB 的发货情况,包括所有默认设置和一个测试论坛中的测试帖子。论坛的唯一注册用户是在安装时创建的管理员用户。在屏幕顶部,紧邻 phpBB 标志旁边,有一组与一些小图标图像一起的链接。这些链接代表论坛的主要导航。其中一个链接是注册并成为社区成员的链接。我们出发吧!
注册
注册流程有三个步骤——阅读和接受注册条款、填写用户资料表单,以及(可选的)通过电子邮件进行注册确认。
第 1 步
当访客从顶部菜单选择注册链接时,他们会看到“注册协议条款”。他们可以选择以下三个选项之一:
接受条款并年满 13 岁或以上:此选项触发标准注册流程。
接受条款并年龄小于 13 岁:此选项与上面的选项相同,但增加了一个附加条件。根据 1998 年儿童在线隐私保护法(COPPA)的规定,父母或监护人需要通过邮件或电子邮件向你,即论坛管理员,发送一份标准表格。这份表格允许孩子参与论坛。phpBB 会将一份空白 COPPA 表格发送到注册时提供的电子邮件地址。
不同意条款:选择此选项将终止注册流程,访客将被重定向到主论坛页面。
第 2 步
当访客接受 phpBB 条款时,注册表单会显示出来。这个注册/资料表单中每个字段的确切含义将在稍后描述。现在让我们专注于绝对必需的字段:
用户名
有效的电子邮件地址
密码和密码确认
第 3 步
在填写完所有信息后,用户点击提交。如果有验证错误,比如电子邮件地址或密码不匹配的语法错误,错误信息将显示在表单的顶部。在没有错误且注册成功的情况下,会显示一个“感谢”页面。根据论坛的配置(见下文编辑您的个人资料部分中显示的表格中电子邮件地址字段的说明),感谢页面可能会建议用户检查他们的电子邮件,以确认消息以完成注册。
登录
注册成功后,用户可以使用论坛首页底部的表单登录。
在密码字段旁边有一个复选框,上面写着每次访问自动登录我。用户在使用这种便利时应小心,尤其是在共享电脑上。作为管理员,您在使用此选项时应更加小心,因为如果“坏人”接管了您的账户,会发生可怕的事情。想想还有谁可能在使用您的电脑——家人、来访的朋友等。
编辑您的个人资料
登录用户可以编辑他们在注册期间创建的原版个人资料。如果他们点击顶部导航菜单中的个人资料链接,他们会看到一个个人资料表单,这个表单实际上与注册表单相同,除了两点:
用户名不可编辑。管理面板允许用户更改他们的用户名,但这不是默认选项,并且有很好的理由。给用户更改身份的机会意味着,人们将很难在您的社区中分辨出谁是谁。
现在有三个密码字段:一个用于旧密码,一个用于新密码,一个用于确认新密码。这些字段通常留空,仅在用户想要更改密码时使用。
好的,让我们通过一个简单的练习来回顾一下我们到目前为止所学的关于用户资料的知识。
行动时间——创建和编辑“The Dude”个人资料
前往论坛的主页,并从顶部导航菜单中选择注册。
在接受条款页面,选择我已满 13 岁
使用用户名The Dude、密码test和您的电子邮件地址填写表单。其他一切保持不变。
点击提交按钮。
到目前为止,注册已成功。再次访问主页。您将在谁在线下看到 The Dude,显示为最新注册用户。
现在转到你的电子邮件收件箱并检查你的电子邮件。你应该会看到一条欢迎来到 yourdomain.com 论坛的消息。根据之前讨论的论坛配置,此消息将建议你现在是会员,或者会提供一个链接来激活并完成你的会员申请。欢迎加入!
返回到论坛首页。向下滚动到登录表单。将用户名输入为The Dude,密码输入为test,然后点击登录。登录成功后,你将在在线注册用户列表中看到 The Dude。
查看顶部的导航链接,并选择个人资料。个人资料表单将显示。
在空白签名字段中,输入以下内容:人类不为其祖先感到自豪,很少邀请他们来参加晚宴。 - 道格拉斯·亚当斯。其他内容保持不变。
点击提交以保存你的修改后的个人资料。
发生了什么?
你已成功注册新个人资料,登录并编辑此个人资料。此用户现在可以开始发帖。
理解用户个人资料字段背后的含义是许多 phpBB 功能的关键,因此这里有一个详细的描述。花时间了解这些字段;你将在论坛的不同区域反复看到它们。
字段名称
描述
注册信息
用户名*
选定的用户名。允许空格和特殊符号,但引号(")除外。最多允许 25 个字符。
电子邮件地址*
用户的电子邮件地址。论坛可以配置为通过电子邮件请求注册确认,以便激活用户账户。如果需要此类确认,将发送一封电子邮件到本字段提供的地址。许多 phpBB 管理员选择通过电子邮件确认,以确保用户输入有效的电子邮件地址。这有一个很好的理由——如果你不要求电子邮件确认,而用户使用虚假的电子邮件地址注册,你将开始收到大量退回的邮件到你的管理员电子邮件地址。为什么会有这些退回的邮件?嗯,phpBB 会使用你的账户(你将是发送者)发送电子邮件,用于私信通知、主题关注通知等,如果由于错误的收件人地址导致邮件投递失败,这些邮件会退回给发送者。
密码*
密码可以是任何内容,包括单个字母,尽管这种简单的密码实际上并不推荐。
确认密码*
phpBB 要求用户确认密码,以确保他们正确地输入了他们打算输入的密码。关于密码的说明:在保存到数据库之前,使用 MD5 单向加密算法对密码进行加密。用简单的话说:没有方法可以恢复保存的密码;至少现代计算机算法无法做到这一点。这意味着只有用户知道他们的密码。如果用户忘记了密码,有一个创建新密码的程序,但没有恢复旧密码的程序。
个人资料信息
正如表格所述,注册的这一部分包含所有社区成员都可以公开查看的信息,即使那些未注册的成员。其中一部分伴随着用户写的每一篇帖子,另一部分只有在有人访问用户个人资料页面时才会显示。本节包含有关用户 ICQ、AOL、MSN 和 Yahoo! Messenger 服务的用户数据以及一些其他个人信息。有一个称为签名的特殊字段。该字段中的文本附加到用户发布的每篇帖子的底部。它可以包含链接、URL 和格式,通常用于添加个人风格。人们出于各种原因使用它,如喜欢的智慧名言、有趣的引言或自我宣传。人们使用它的方式有时会根据社区的主题而有所不同。在罕见的情况下,它实际上可以用于其原始目的——包含发帖者的名字或任何类似真实签名的信息。格式化签名的规则与格式化正常帖子相同,这将在稍后讨论。
偏好设置
总是显示我的电子邮件地址
选择“是”将在帖子和个人资料中显示用户的电子邮件地址。选择“否”仍然允许其他成员向此用户发送电子邮件,但不知道确切的电子邮件地址。他们可以通过使用特别设计的 phpBB 电子邮件界面来做到这一点。
隐藏您的在线状态
如果选择“是”,当此用户登录时,用户名将不会显示在论坛首页的“谁在线”区域。许多人出于隐私原因选择此选项。尽管如此,当以管理员身份登录时,隐藏的用户仍然会显示。
总是通知我回复
选择“是”时,phpBB 将在有人回复由该用户创建的帖子或该用户已回复的帖子时,向用户发送电子邮件。这可以在每个帖子的基础上取消选中。
当收到新私人消息时通知
选择“是”时,phpBB 将在用户收到私人消息时发送电子邮件。
在新窗口中弹出弹出窗口
当用户当前登录并收到私人消息时,选择“是”,将弹出一个新的浏览器窗口通知用户有新消息。
总是附加我的签名
总是允许 BBCode
总是允许 HTML
总是启用表情符号
董事会语言
论坛的语言。默认安装中只包含英语,但好消息是还有超过 50 种其他翻译可供选择。第五章解释了如何将新语言添加到您的论坛中。
论坛风格
在这里,用户可以选择论坛将如何显示。默认且唯一的论坛风格是"subSilver",但很快您就会了解到如何添加更多风格或自定义它们,甚至创建您自己的风格!
时区
用户可以选择他们所在的时区,以便所有在论坛上显示的日期/时间数据都转换为他们的本地时间。
日期格式
用户可以使用date() PHP 函数的格式化选项来配置日期/时间数据显示的方式。有相当多的选项:详细信息可以在位于www.php.net/date的 PHP 手册条目中找到。默认情况下,日期将显示为"Sat Nov 21, 2004 1:01 pm",但可以更改为类似"2004-11-21 13:01"或"2004 年 11 月 21 日 01:01 pm"或用户最舒适的方式。
发布
在公告板上发布消息是主要的活动;其他所有内容都是或多或少额外的功能。因此,了解发布消息的所有细节是个好主意。
帖子结构
让我们看看帖子是什么样子,以及它由哪些不同的元素组成:
作者信息框包括作者的昵称、加入日期、发帖数和位置。它还可以包含头像图像、等级和等级图像,但这些默认情况下是未启用的。等级和头像将在稍后讨论。
帖子元信息包括一个小小的帖子图形、日期/时间戳和帖子主题。这个极小的图形 () 非常小,以至于大多数人甚至不会注意到它,即使他们注意到了,也会认为它只是装饰品。但实际上,这是一个功能图形;它是到这个帖子的精确链接。很少有人会想去查看他们正在阅读的帖子,但当你想要提供一个指向特定帖子的链接时,这可以非常有用,而不是指向主题的一般链接。要获取帖子的确切 URL,右键单击这个微型图形并复制它链接到的 URL。这个图形的颜色也可能不同,这有特定的含义。在默认的 phpBB 模板中,橙色框表示这是一篇未读帖子,而白色灰色框表示用户已经阅读了这篇帖子。
动作区域包含用户可以对这篇帖子执行的动作的按钮。始终存在的按钮是“引用”按钮,其外观如下:另一个可能可用的动作按钮是“编辑”按钮,其外观如下:“编辑”按钮是否可用取决于用户权限,但在默认的 phpBB 论坛配置中,作者可以编辑自己的帖子,而版主可以编辑所有人的帖子。作者还可以根据权限和特定帖子拥有删除操作。默认的 phpBB 配置允许帖子的作者在之后没有更多帖子的情况下删除帖子。版主可以访问所有动作按钮——引用、编辑、删除以及查看发帖者 IP 地址的按钮。
帖子文本区域包含消息的实际文本,而签名区域包含用户在其个人资料中的签名。
顶部链接只是一个“返回顶部”链接,它将链接到当前页面的开头。
至少,“联系作者选项”区域包含一个访问作者个人资料的按钮和一个发送作者私人消息(PM)的按钮。此区域还可以包含在个人资料中输入的其他信息:电子邮件地址、ICQ 号码、MSN 信使 ID、网址等。关于 ICQ 按钮的好处是,它将显示作者(在线或离线)的 ICQ 状态,当然前提是作者允许在 ICQ 设置中查看状态。
回复
回复是在现有讨论主题中的一项新帖子。它通过点击位于主题列表顶部和底部的“发表回复”(post reply)按钮(回复)来发起。回复也可以通过点击之前提到的位于帖子动作区域的“引用”动作按钮来发起。在这种情况下,帖子正文将预先填充引用的帖子内容。
这是发表回复的界面:
用户真正需要在这个表单上担心的事情只有消息体。其他一切都是可选的。以下是关于帖子界面的更多详细信息:
主题(如果填写)将出现在帖子元信息框中(参见 帖子结构 部分)
有一些使用所谓的 BB 代码(BB 标签)的格式化选项,其中 BB 代表 公告板。格式化选项赋予用户改进帖子外观(有时甚至破坏它)的能力。
表情符号(通常被称为笑脸)是那些可爱的小图像,帮助用户在帖子中添加一丝个人化和非正式的风格。点击左侧的这些图形之一,将在消息体字段中插入其文本表示。例如,如果你点击 ,你会在文本框中看到 :D 被插入,如前一个屏幕截图所示。
蓝色文本 查看更多表情符号 实际上是一个链接到新窗口弹出窗口,其中包含更多可供选择的笑脸。这个链接是人们经常错过并开始询问你为什么从他们那里隐藏这个绿色图标 ,而其他人似乎一直在使用。解释是它在那里,但只能通过 查看更多表情符号 弹出窗口访问。
选项部分位于消息体下方,包含我们之前提到的一些复选框;它们的默认值在用户配置文件中定义。
点击 预览 按钮将显示消息体在发布时的确切外观。使用此功能总是一个好主意。
如果论坛配置允许未注册访客发布,他们将在所有其他字段上方看到一个额外的字段,并且这将是一个必填字段,用于输入用户名。
在帖子表单下方,有一份最新先前帖子的列表(在先前的屏幕截图中未显示)。这使得帖子作者更容易回忆起其他人之前说过的话。
开始新主题
开始新主题与在现有主题中发表回复非常相似。它通过点击 新主题 按钮来启动。表单与我们刚才看到的非常相似,只是 主题 是必填字段,并且有字段可以包含与主题一起进行的投票。
关于投票的一些其他有趣话题:
当开始新主题时,用户可以设置投票问题、多个答案(至少两个)以及投票到期前的天数。
一旦投票到期,访客仍然可以看到投票结果,但不能再投票。
将过期天数设置为 0(或留空)将使投票始终可供投票(一个 永恒的投票)。
创建投票需要一项单独的权限,可以从管理员面板中限制,但默认情况下是允许的。
格式化帖子
用户可以通过使用一组简短的指令(BB 标签)来格式化帖子。在发布帖子时,您可以在帖子正文中插入这些标签,当您查看帖子时,这些标签会被处理以产生所需的格式。如果您了解一些基本的 HTML 标签,那么您很可能对 BB 标签的工作方式有一个相当好的了解,并且可以立即开始输入它们。
如果您既不知道 HTML 也不知道 BB 标签(而且您的大多数访客也不会知道),请不要担心;您不需要记住这个全新的秘密代码。phpBB 有一个直观的界面,可以像使用文字处理软件一样轻松地引导您完成这个过程。只需看看格式化工具栏,就应该能让大多数选项变得清晰。
应用格式有两种方式:您可以手动输入标签,或者选择您想要格式化的单词或短语,然后点击工具栏上的相应按钮。不幸的是,由于不同浏览器对 JavaScript 的支持不同,第二种选项在某些浏览器或平台上不可用。但好消息是,大约 95%的互联网用户将能够访问这个功能,因为他们会使用支持它的浏览器。
总是有一个打开的 BB 标签来显示格式化的开始位置,以及一个关闭的 BB 标签来显示格式化应该结束的位置。打开标签的形式是 [tag],关闭标签的形式是 [/tag]。让我们看看加粗标签,因为它可能是使用最频繁的标签。如果您想在句子“帖子是 fun”中加粗单词“fun”,您输入(或使用工具栏产生相同的结果)"帖子是 [b]fun[/b]"。这些标签可能看起来很吓人,但如果您习惯了它们,实际上是非常容易的。
您知道可以通过输入句子,选择单词“fun”,然后点击B图标来应用这种格式。还有另一种使用工具栏的方法:
输入帖子是。
点击B图标(这将插入打开的 [b])。
输入fun。
再次点击B图标(这将插入关闭的 [/b])。
与之前描述的格式化选择方法不同,上述场景几乎在任何知道至少一些 JavaScript 的浏览器中都能工作。在上面的步骤 2 之后,B图标将获得一个星号,表示有一个尚未关闭的打开的 [b] 标签。在完成步骤 4 后,星号将消失。
您可以通过使用 [img] 标签将图片插入到您的帖子中,前提是图片必须可在互联网上访问,也就是说您知道其以类似 http:// 开头的网址。您还可以使用 [url] 标签将网页链接放入帖子中,尽管 phpBB 足够智能,能够猜测到您的帖子中包含网页链接,并将它自动显示为可点击的链接。
你可以查阅 phpBB 用户指南以获取更多关于 BB 标签的详细信息,但让我们先通过一个示例来大致了解这些标签的工作方式。
如果你查看之前的截图,其中显示了格式化工具栏,你会注意到它看起来像三条不同的线(或行),分别包含:
格式化命令按钮,如B用于粗体,I用于斜体等。
两个下拉菜单包含字体格式化和关闭标签链接。此链接将关闭所有当前打开的标签(假设它们是从工具栏打开的,而不是手动输入的)。例如,如果你输入发布是,点击B按钮然后是I按钮,输入fun,最后点击关闭标签,你会得到以下结果:发布是 [b][i]fun[/i][/b]。点击关闭标签与点击I然后B来关闭已打开的标签具有相同的效果。
工具栏的第三行包含有关如何使用 BB 标签的提示。如果你将鼠标悬停在工具栏图标上,你会看到提示行的内容会改变以反映按钮的功能。前面的插图显示了鼠标光标悬停在B按钮上。在括号中,提示显示了一个可用于格式化的键盘组合。这个组合与点击工具栏按钮具有相同的效果,并可以帮助你仅使用键盘更快地发布帖子,甚至不必担心将手从键盘移到鼠标,然后再将鼠标移到所需的图标。
从示例中可以看到,仅使用键盘就能达到相同的结果:输入发布是,按住ALT键(Mac 用户的 Apple 键),按B,按I,释放ALT,输入fun,按住ALT,按I,然后按B。
时间行动——格式化帖子
你已经知道如何使用粗体和斜体格式化标签,但这次让我们也添加下划线。使用你喜欢的方 法(工具栏、键盘或直接输入标签)来生成以下 BB 代码:发布是 [b][i][u]fun[/u][/i][/b]!。
下一个要讲的是引用。通常你会在回复时使用引用动作按钮,但了解如何手动操作也无妨:
I can quote other posters like this:
[quote="The Dude"]For my name is The Dude...[/quote]
现在我们来看看[code]标签,它通常用于人们将编程代码粘贴到他们的帖子中时,但也可以用于其他目的,如以表格样式更好地对齐,因为它使用固定宽度的字体。输入:
I can write "phpBB" using binary:
[code]01110000 01101000 01110000 01000010 01000010[/code]
接下来是列表。列表使用[list]标签标记列表的开始和结束,并使用星号[*]作为列表项。列表开始标签可以接受如1或A之类的参数。尝试这个:
And I can list stuff like this:
[list][*]one[*]two[/list]
or even enumerate, like this
[list=1][*]first[*]second[/list]
然后使用[img]标签和已知图片的网址添加图片,如下所示:
I can use images:
[img]http://www.packtpub.com/images/Packt.png[/img]
现在是链接。链接是通过[url]标签插入的,有两种可能的情况。如所示尝试它们:
Links: [url]http://www.packtpub.com[/url], fancy links: [url=http://www.packtpub.com]Packt Publishing[/url]
最后,是 [color] 和 [size] 标签。它们的起始标签接受如 [color=black], [color=blue], [size=7] 等参数。尝试以下操作以获得更好的理解:
and [color=red]different [/color][color=green]colors [/color]and [size=18]font [/size][size=9]sizes[/size]!
发生了什么
点击 预览 或 提交 按钮,您将看到您刚刚所做的。它应该看起来像以下截图。
恭喜!您刚刚使用几乎所有的 phpBB 格式化功能来格式化了一个帖子!
编辑帖子
用户允许编辑自己的帖子。这同样是 phpBB 的默认配置,可以通过管理面板进行更改。用户通过位于操作区域的 编辑 链接来编辑帖子。
在帖子编辑后,帖子底部会出现一条小字消息,通知其他用户该帖子已被修改。消息如下:
这条消息总是出现,只有一个例外。如果帖子在另一个用户在同一主题中发布回复之前被编辑,则不会出现。
删除帖子
用户允许删除自己的帖子,但仅限于讨论主题中的最后一个帖子。一旦有回复被发布(即使是同一用户),删除帖子的操作就不再可能。
通过位于帖子操作区域的删除操作图标()来删除帖子。
搜索
很快,您的论坛将充满跨越多个主题列表页面的主题。这将使得定位一个特定的旧主题变得有些困难。phpBB 的搜索功能在这里提供了帮助。它可以通过 搜索 顶部导航链接访问。搜索表单提供了许多选项来查找您感兴趣的主题,例如搜索哪个论坛,如何显示结果,等等。
很可能您和您的成员会在搜索中忽略大多数搜索选项。毕竟,我们习惯了像 Google 一样的简单搜索框,所以我们很少寻找其他选项。但这里有一个简单的选项可以帮助您很多。这个选项是 搜索所有术语。当您使用多个单词进行搜索时,这很有帮助。与 Google 不同,当您添加更多单词时,结果会缩小,而 phpBB 会搜索每个单独的单词并返回更多结果(相对于缩小搜索范围)。
例如,如果您搜索 牛奶巧克力,您将得到所有包含 牛奶 和 巧克力 的结果,这可能不是您想要的。勾选 搜索所有术语 选项将仅返回那些两个单词都能找到的帖子。
您还可以使用通配符 (*) 来搜索单词的一部分。例如 *late 将返回包含 chocolate 和 late 的帖子。
发送和接收私密消息(PM)
phpBB 的一个很酷的功能是用户可以在公共论坛区域之外通过私信(PM)相互私下交流。(PM 也被用作动词,例如“请给我发私信”。)PM 的工作方式与我们都习惯的正常电子邮件非常相似。写私信的界面与写帖子相同,只是顶部有一个收件人用户名的字段。此外,如果您不确定拼写,您还可以查找用户名。
有以下私信邮箱:
Inbox:存储所有收到的消息,就像在正常的电子邮件收件箱中一样。
Sentbox:包含您发送给其他成员的所有消息。
Outbox:暂时包含您已发送但尚未被收件人阅读的消息。您可以在发件箱中编辑或删除消息。一旦收件人阅读了消息,发件人就无法再修改它。此时,它是最终的。有时可能会发生这样的情况:用户收到一封电子邮件和一个关于新私信的弹出窗口通知,当用户进入收件箱时,却没有新消息。这种情况并不常见,因为编辑或删除发件箱中消息的能力是一个相对隐藏的功能,大多数人并不了解。但无论如何,请准备好回答用户关于为什么他们收到通知但没有消息的疑问。
Savebox:存储发送或接收的消息。您可以从其他邮箱将消息移动到这个邮箱。这对于存储一些您希望与其他消息分开的重要消息很有用,这样您就不会不小心删除它们。当其他邮箱达到存储限制时,保存箱也可以用来卸载其他邮箱。
当查看消息列表时,您可以点击每条消息旁边的复选框,然后将选中的消息移动到保存箱或通过列表底部的相应操作按钮删除它们。请注意不要混淆删除所有按钮和删除标记按钮;尽管它们看起来相同(甚至包括您确定要…的确认消息),但删除所有会清除私聊箱中的所有内容。
行动时间——The Dude 给管理员发送私信
您以 The Dude 的身份登录。点击顶部的“您没有新消息”链接。您现在处于空旷而孤独的收件箱中。
点击新建帖子。您将看到写私信的界面;这个界面与写帖子的界面相似。
您想给管理员用户发送私信,即您在第二章中描述的安装过程中创建的用户。假设您不确定它是否被称为管理员或简单地称为 Admin。点击文本框旁边用于收件人用户名的查找用户名按钮。会出现一个新窗口。
输入Admin(注意星号)并点击搜索*(*是一个通配符,意味着匹配以"Admin"开头的任何用户名)。
出现一个下拉菜单,显示匹配项;在我们的案例中,只有一个匹配项。点击选择。
现在用户名字段已预先填写。在主题行中输入测试 #1,并在消息正文中输入相同的文本。添加😃使其更友好。
点击预览。看起来好吗?
点击提交发送消息。
使用测试 #2作为主题行和消息正文重复上述步骤。
前往您的发件箱。它是空的。
前往您的发件箱。您会看到您刚刚发送的两条消息。勾选测试 #1旁边的框。
点击删除标记并确认删除。
退出并重新以管理员身份登录。通过使用您有 1 条新消息的链接进入您的收件箱。
您看到您收到了来自 The Dude 的新 PM,主题为测试 #2。点击主题行来阅读消息。
点击保存消息将消息移动到保存箱。
发生了什么?
您已成功创建、发送、修改、接收和保存了一条 PM。如果您现在以 The Dude 的身份重新登录,您会看到您的发件箱为空,但发件箱现在包含测试 #2的消息。
投票
您已经知道在发起新主题时可以创建投票。以下是关于在这些投票中投票的一些注意事项:
只有注册用户才能投票。
未注册用户只能看到投票结果。
投票是保密的;无法知道特定用户是如何投票的。
您可以通过选择查看结果来查看结果,即使您没有投票。
请记住,投票结果并不完全可靠,因为现有用户可以注册为新成员只是为了再次投票。
关注主题的最新动态
如您所知,如果您创建或发起了某个主题,有人回复该主题,您会收到通知。您可以通过在发帖时确保勾选了当有回复时通知我来订阅这个主题。此外,即使您没有在该主题中发帖,您也可以开始关注该主题。
您可以通过使用位于主题底部关注此主题以获取回复的链接来实现。您可以在任何时候通过使用您正在关注的主题每页底部的停止关注此主题链接来停止接收主题更新的通知。
查看其他用户的信息
有几种方法可以了解社区的其他成员。会员列表功能和用户组提供了不同类型的用户列表,而“谁在线”功能提供了有关当前登录用户及其正在做什么的信息。
会员列表
如果用户想了解更多关于社区其他成员的信息,他们可以获取成员列表。点击成员列表顶部导航链接将显示所有注册用户的列表。此列表顶部有排序选项。例如,如果你想得到一个更“辣味”的列表,比如“嗯,谁发帖最多?”,你可以根据发帖数量进行排序。你可以选择总发帖数作为选择排序方法,并将顺序设置为降序。这将显示发帖最多的成员。
好吧,在我们的示例论坛中,只有管理员和 The Dude 的列表并没有什么特别之处,但随着社区的壮大,这可能会变得更有趣。以下是这种类型的成员列表报告在 phpBB.com 社区执行时的样子。
用户组
这是一个高级的 phpBB 功能,允许根据某些标准创建用户组。用户组由管理员定义,并分配一个组管理员。默认情况下,不存在任何用户组。用户可以申请加入用户组,并且根据配置(可能需要或不需要组管理员批准用户),会被批准。
谁在线
论坛首页的这个部分已经被提到。有趣的是,这里有一个隐藏功能——对于大多数人来说并不明显。那就是谁在线标题实际上是一个链接。(论坛分类标题也是如此。)
点击谁在线将显示一个特殊的“间谍”屏幕,这是公开可用的。这个巧妙的功能允许每个人看到其他人此刻在做什么。
这可能成为所有当前登录用户以及当前浏览网站的访客的长期列表。
管理员经验
到目前为止,你对论坛普通成员的视角已经有了相当好的了解。现在让我们看看如何在 phpBB 中如何使用管理员。首先,什么是管理员?抛开所有词典定义,管理员是比普通用户拥有更多发帖和话题权限的社区成员。管理员通常是受到尊敬的资深成员,他们自愿贡献时间和精力,使论坛成为符合管理员对社区愿景的讨论场所。
管理员是管理您网站的最佳助手,因此您应该确保您向他们明确任务并对其进行培训,以便他们在路上不会遇到任何技术困难。
为了更好地可视化本章讨论的内容,你需要一个管理员账户。你可以让 The Dude 用户成为管理员,或者你可以创建一个新用户并分配管理员权限。让我们以 The Dude 为例。
行动时间——将管理员权限分配给用户
以管理员身份登录。
前往管理面板。
在左侧菜单中,在用户管理下点击权限链接。
您现在在用户权限控制部分。
在文本框中输入The Dude并点击查找用户。
现在您可以看到一个设置 The Dude 权限的表单。
如图中所示,选择是管理员并点击提交:
发生了什么?
你已成功更改 The Dude 的授权级别;此用户现在是Test Forum 1的管理员。从您的管理员账户注销并作为 The Dude 重新登录,您就可以开始探索管理员能做什么了。
管理员可以承担两组任务;这些与管理帖子和管理主题相关。
管理帖子
现在,您以 The Dude 的身份登录,作为管理员,如果您查看任何帖子并查看帖子的操作区域,您将看到所有管理员可以对帖子执行的操作按钮。
编辑和删除
在本章前面已经讨论了从用户的角度编辑帖子并删除它们。对于管理员来说也是一样,只有一个简单但相当重要的区别:在默认的 phpBB 配置中,管理员可以编辑和删除任何主题的帖子,而不仅仅是他们自己的帖子。
编辑主题的第一篇帖子
当管理员编辑讨论中的第一篇帖子时,有一些额外的选项,因为第一篇帖子包含一些与主题相关的信息。例如,更改帖子的主题会更改主题的主题。
还有一些选项可以更改帖子的类型。主题类型的可能选项如下所示:
如果你将主题发布为公告或置顶,它将保持在主题列表的顶部。这两种类型之间有一个区别是显示在主题标题旁边的图标。另一个(更重要)的区别是,置顶主题显示在主题列表第一页的顶部,而公告则显示在所有列表页的顶部。这意味着,如果你的论坛中有如此多的主题以至于它们跨越了几个页面(默认情况下,每页有 25 个主题),则标记为公告的主题将显示在所有页面的顶部,而置顶主题仅显示在第一页的顶部。以下是一个置顶主题和公告的示例。
关于编辑主题的第一篇帖子,还有一点具体的是,您在编辑界面有删除它的选项。
如果帖子包含投票,投票也可以编辑或删除。
这里有一些关于编辑主题中第一条帖子的其他具体信息。尝试列出的情况是个好主意,只是为了确保你做起来感到舒适。
如果这是主题中唯一的帖子,并且你删除了它,主题也会被删除。
如果第一条帖子包含投票并且你删除了帖子,投票将保留。
如果你删除第一条帖子后还有其他帖子,主题将保留。主题的标题将保留从删除的帖子主题中。
投票可以从主题中安全移除,同时保持其他一切不变。
查看帖子的 IP 地址
如果你点击 IP 操作图标,你会看到 IP 信息屏幕。
你在这屏幕上看到的是用户的 IP 地址,使用此 IP 地址发布的用户列表,最后是其他 IP 地址列表(如果有)。以下是一些可能对你有用的信息:
IP 地址是一个数字标识符,每个连接到互联网的计算机都是唯一的。IP 代表互联网协议。全球的互联网服务提供商(ISP)在每次请求互联网连接时都会为其客户分配 IP 地址。这意味着如果你连接到互联网,断开连接,然后重新连接,第二次分配给你的 IP 地址可能与第一次不同。
如果你点击上述截图所示的查找 IP 地址链接,phpBB 将尝试解析(以更友好的形式表示)IP 地址。这个功能可能并不总是有效,因为并非所有 IP 地址都可以解析。在上面的例子中,数字 IP 地址将被解析如下:
IP 地址的最后部分(videotron.ca)提供了关于互联网服务提供商(ISP)的信息。一些公司有自己的 IP 地址,它们表现得就像它们自己的 ISP 一样。解析帖子的 IP 地址有时可以提供关于发帖人雇主或发帖人 ISP 的信息,或者如果没有解析出来,则没有信息。请记住:
一个用户可以与多个 IP 地址相关联,这很常见,因为 ISP 会更改分配给其客户的 IP 地址。此外,一个成员可以使用多个计算机和互联网连接来发布帖子(例如,家用电脑和办公电脑)。
几个用户可能使用相同的 IP 地址。你可能首先想到的可能性是某个人注册了新的用户名,并从这两个用户名中发帖。尽管这是一个可能的场景,但并不一定总是如此。两个用户可能有相同的 ISP(或者可能在同一家公司工作),因此可能有相同的 IP 地址。另一个解释是两个用户是朋友,其中一个人正在使用另一个人的电脑和互联网连接来发帖。还有另一个情况——两个用户从同一个互联网俱乐部(游戏俱乐部、互联网咖啡馆等)发帖。
在 IP 信息界面中,点击用户名会弹出用户个人资料页面。
在同一界面中,点击搜索按钮将列出特定用户的全部帖子。
管理主题
管理主题是版主拥有的、普通用户没有的第二组选项。管理主题的一种方法是通过更改此主题的第一篇帖子。这在本章前面的管理帖子部分已经讨论过(你可能想回去看看;这里讨论的其他选项都是与主题相关的)。
在每个主题的底部,版主可以访问四个操作图标,如下所示:
按照它们出现的顺序,它们的意思是:
删除主题:永久从数据库中删除主题。
移动主题:将主题从当前论坛移动到另一个论坛。另一个论坛指的是同一公告板中的论坛。
锁定主题:用户(除版主和管理员外)不能再在此主题中发帖。
拆分主题:将主题分成两个。
删除、锁定和解锁主题
所有这些选项实际上都很简单易用。你只需列出一个主题,然后选择相应的操作图标。phpBB 会要求你确认所选操作。就这样!解锁图标仅在已锁定主题中显示。
移动主题
为了测试这个功能,你需要至少两个论坛。所以在你继续之前,让我们首先创建一个新的论坛。
行动时间——创建论坛
以管理员身份(你在安装时创建的用户账户)登录,然后点击转到管理面板链接。
在左侧菜单下,在论坛管理中点击管理。
在第一个字段中输入新论坛,然后点击创建新论坛。
你会看到一个新表单;保持原样,然后点击创建新论坛。
点击左上角的 phpBB 图标返回论坛。
发生了什么?
你已经创建了一个新的论坛。不用担心细节;它们将在本章的后面更详细地讨论。好的,回到移动主题。这仅仅涉及将一个主题移动到另一个论坛,这在有人在公告板上发帖位置不合适时通常需要。现在登出并作为 The Dude 重新登录。
主持人通过选择 操作图标来移动主题。以下确认屏幕会显示:
此屏幕允许主持人选择要将主题移动到的论坛。还有一个在旧论坛中留下阴影主题的复选框(默认选中)。选择此选项将在旧论坛中留下指向新位置的链接。链接看起来就像一个正常的主题,除了在标题前有已移动字样,如下所示:
拆分主题
有时讨论会偏离原始主题;在其他时候,人们在同一主题中讨论两个不同的问题——帖子开始重叠,难以跟随讨论。为了避免这种情况下产生的混淆,主持人可以将讨论拆分为两个主题。为此,主持人点击拆分图标 。以下是为拆分主题提供的特殊界面:
实际上,拆分主题涉及创建一个新主题来容纳一些已经存在的消息,同时从它们最初发布的主题中移除。因此,新主题需要一个标题,一个要居住的论坛,以及至少一个帖子。
拆分主题控制面板显示了一个用于标题的文本字段和一个下拉菜单来选择现有的论坛。每个帖子旁边都有一个复选框。有两种拆分选项:
要单独选择每个帖子。检查每个单独的帖子很耗时,但在完全重叠的两个单独问题讨论时这是一个选项。
选择一个帖子然后将其完整的讨论拆分。这在讨论在某一点上完全转向不同方向时适用。在这种情况下,选中的帖子是新主题的开始。
两个小贴士:
尤其是在负载很重的论坛上,在拆分主题之前暂时锁定一个主题是个好主意。这给主持人足够的时间重新思考细节,同时防止其他用户同时发帖并增加混乱。
请记住,新创建的主题的第一条消息的作者成为新主题的作者。
一同完成——主持人控制面板
phpBB 有一个名为主持人控制面板的功能,它提供了管理主题的所有上述操作的访问权限。要访问此界面,请点击位于每个论坛页面右下角的管理此论坛链接。
这就引出了“版主控制面板”界面(下一页截图):
此界面在每个主题旁边都有一个“选择”复选框,底部还有多个操作按钮。它允许您选择多个主题并对它们执行一次性操作。
点击主题标题会弹出“拆分主题”界面。
所有操作(删除、锁定、解锁、移动和拆分)的工作方式与本章前面已经讨论的方式完全相同,只是界面不同,以便一次更改多个主题。
以下截图显示了“版主控制面板”:
管理员体验
就是这个。您已经来到了最重要的部分——管理您的论坛。您已经看到了本章以及第二章中描述的一些之前的功能,但现在您需要采取更系统的方法,确保您了解您的管理选项以及如何使用它们。
本节将随后描述一些您可能比其他功能更频繁使用的 phpBB 管理基本功能。对于更高级和特殊的功能,请确保您阅读第五章,其中详细介绍了与安全相关的问题、表情符号、用户组和其他问题。
为了测试接下来将要描述的内容,您需要登录为具有管理权限的用户。您的论坛可以有多个管理员,但无论如何,至少存在一个管理用户账户——在安装 phpBB 时创建的账户。我们将使用此账户登录,点击“前往管理面板”链接,然后开始探索管理选项。
管理面板概览
“管理面板”有两个主要区域(在 HTML 术语中称为框架):
左侧的导航区域,其中包含指向所有管理选项的链接。它被分为类似选项的组,如论坛管理、用户管理等。
右侧的内容区域,当您从导航区域点击链接时,会加载适当的内容。
您的“管理面板”首页看起来如下所示:
“管理面板”首页还有一些关于论坛使用的通用统计数据,以及一个“谁在线”部分,其工作方式与访问者在论坛首页上可以访问的方式类似(参见本章前面的“访客体验”部分),只不过这个部分还有一个 IP 地址列。点击 IP 地址会将您重定向到一个第三方网站,该网站提供一些您可能认为有用的 IP 相关工具。
导航菜单的前三个选项相当直接,你可能想尝试一下,以便在浏览管理面板时感觉更舒适。它们实际上不是管理选项,而是指向论坛首页和管理面板的链接。左上角的 phpBB 标志也是一个链接,指向论坛的首页。
现在,让我们更仔细地看看导航菜单上的其他选项组。
论坛管理员
正如标题所说,这是一组供你管理论坛的选项,包括创建、编辑、删除或重新排列论坛及其类别,以及设置它们的使用选项和规则(称为权限)。
论坛管理
点击论坛管理员选项组中的管理链接会弹出论坛管理界面。此界面允许你创建、编辑和删除论坛,并将它们组织到类别中。
创建新论坛和类别
在版主体验部分已经简要讨论了创建新论坛的最简单方法。现在让我们更详细地探讨。以下截图显示了在上一节中添加了新论坛后的界面。如果你没有按照版主体验部分描述的操作进行,你将看到默认的 phpBB 外观,如下所示,只是没有新论坛这一行:
行动时间——创建新类别
在论坛管理界面的第二个文本字段中输入Fun。
点击创建新类别。
在创建类别后,点击点击此处返回论坛管理行中的链接。
发生了什么
你已经创建了一个新的空白类别(因为还没有包含任何论坛)。完成上述步骤后,论坛管理屏幕将如下所示:
在这一点上,因为新类别仍然是空的,访客看不到对论坛主页所做的任何更改。
现在让我们向新类别添加一些论坛。
行动时间——创建新论坛
在论坛管理界面中你刚刚添加的Fun类别后面的文本框中输入Funny pics。
点击创建新论坛。你现在会看到一个以下形式的表单:
在描述字段中,输入网络上的搞笑图片集合。
保持类别下拉菜单不变。
保持论坛状态下拉菜单不变。
在自动修剪部分保持默认设置。
点击创建新论坛按钮。
点击链接点击此处返回论坛管理。在这个时候,我们正在重复练习,但有一些修改。
要开始创建另一个新论坛,输入Funny quotes,但这次在第一个文本字段中输入。
在描述字段中,输入这里您可以找到管理员觉得有趣的搞笑引言网站链接。
将分类下拉菜单中的值从测试分类 1更改为娱乐。
将论坛状态下拉菜单中的值从解锁更改为锁定。
在自动修剪部分,选择启用。
在自动修剪部分,将第一个文本值从7更改为30。
在自动修剪部分,将第二个文本值从1更改为7。
点击创建新论坛按钮。
点击点击此处返回论坛管理链接。
发生了什么
这里是您刚刚在管理面板中看到的结果:
这是您的用户将看到的内容——主页上更改后的版块:
现在,让我们退一步,看看确切发生了什么,使用与前面行动时间部分相同的数字:
您为您的新论坛提供了名称。
您启动了创建新论坛的过程。
您为您的论坛提供了描述。
您使用了 phpBB 提出的分类值。
您使用了 phpBB 提出的锁定/解锁论坛状态值(在这种情况下,解锁)。这意味着用户可以在此论坛中发帖。锁定,如您所知,意味着用户不能在论坛中发帖,但管理员和版主仍然可以。
您使用了 phpBB 的默认值自动修剪选项,即不使用此选项。如果您启用自动修剪功能,phpBB 将删除所有在指定时间内未活跃的主题。主题的不活跃是从最后发布到该主题的时间开始计算的。
您完成了新论坛的创建。
您返回到论坛管理界面。
您再次开始创建新论坛的过程并设置了标题。
您指定了论坛描述。
这次您没有使用建议的值,而是更改了论坛分类。这个分类是由 phpBB 提出的,因为您在步骤 9 中将论坛名称输入到测试分类 1下,而不是娱乐下。
您决定将此论坛锁定,以便用户无法发帖,但您仍然可以。
您已启用自动修剪选项。
您已设置 phpBB 应删除所有超过 30 天的主题,从本主题最后发布日期开始计算。
您已将 phpBB 设置为每七天检查一次主题以进行自动删除。
您完成了新论坛的创建。
您返回到论坛管理界面。
精细调整现有论坛和分类
在创建论坛后,可以进一步管理它——编辑、删除或相对于其他论坛在版块中的位置。
编辑
您可以通过点击位于分类/论坛标题旁边的编辑链接来编辑现有的分类或论坛。编辑表单看起来与创建新论坛的表单完全相同,并且以相同的方式工作。
删除
你可以通过使用它们标题旁边的删除链接来删除类别和论坛。这里有一个具体点:当你删除一个已经存在一段时间并且有人在其中发帖的论坛或类别时,你可能不想删除所有帖子。为了简化这个过程,phpBB 允许你在删除选定的主题之前,将现有主题移动到另一个论坛或类别。
当你删除一个类别时,你可以选择将所有论坛移动到新的类别,如下所示(此界面显示删除论坛和论坛名称,但实际上是指删除类别;你会在实际删除论坛的界面中看到区别):
当你想删除一个论坛时,你将有一个选项,可以将所有主题移动到另一个论坛。与类别删除不同,当你删除一个论坛时,你甚至可以选择删除主题和帖子。在使用此选项之前,请再次思考。删除你社区的发帖可能不是一个好主意。
改变显示顺序
你可以通过使用每个论坛或类别旁边的向上移动和向下移动链接来更改在论坛首页上显示类别和论坛的顺序。
行动时间 - 调整显示顺序
点击测试类别 1类别旁边的向下移动链接。
点击新论坛论坛旁边的向上移动链接。
发生了什么
娱乐类别现在是用户首先看到的第一个类别。此外,在测试类别 1中,你已经更改了论坛的顺序,使得新论坛在测试论坛 1之前显示。以下是调整后用户将看到的你的论坛。
使用 Resync 选项
如果你发现你的板上出现了奇怪的现象,请首先尝试使用Resync选项来恢复。无论出于什么原因,如果存在数据不一致的情况,Resync将尝试将数据恢复到一致状态。
Resync 不会对论坛数据造成损害。所以请不要担心,你不会破坏任何东西。(好吧,不要将最后一句话当作挑战。)如果你对是否应该使用此选项有疑问,只需使用它即可。另一方面,如果你发现自己经常使用它,可能存在其他问题;隔离症状,并在 phpBB 社区论坛上寻求解决方案。
谁能做什么——设置论坛权限
phpBB 对运行论坛的安全方面非常重视。这就是为什么有一个强大且选项丰富的权限和用户特权系统。你将在第五章中找到有关权限系统的更多详细信息,该章节包含了一些高级 phpBB 特性的细节。你还可以在 phpBB 用户指南中找到更多信息。所以在你开始玩弄权限之前,确保你知道你在做什么。现在,我们只是快速查看一下最常用的权限,并将细节留到以后。
设置论坛权限有两种模式:简单和高级。使用简单模式,你可以从预设值列表中选择权限模式(一组高级权限组合在一起以便更容易使用)。简单模式的一些示例选项是“公开论坛”、“注册用户论坛”和“隐藏论坛”。
这些简单选项是由 phpBB 团队精心分析和选择的,因此在使用它们而不是高级选项之前,这可能是最安全的事情,直到你能够舒适地管理论坛和用户权限。让这个规则成为你的指导原则:除非你有充分的理由不这样做,并且你知道你在做什么,否则请使用简单模式。
最常用的两种简单模式选项是“注册用户”和“公开”。为了有一个大致的了解,在一个“公开”论坛中,访客不需要是注册用户就可以发帖。在一个“注册用户”论坛中,只有注册用户可以发帖。在这两种情况下,只有版主和管理员可以使用更高级的功能,如指定主题类型(置顶和公告)或编辑和删除其他人的帖子。
默认情况下,phpBB 创建的所有论坛都是公开的。一个良好(且常见)的做法是在创建论坛后将其权限更改为“注册用户”。
时间行动——在简单模式下设置论坛权限
从左侧导航中的论坛管理选项中选择权限:
选择搞笑图片论坛并点击查找论坛按钮。
从简单模式选项下拉菜单中选择注册用户并点击提交。
刚发生了什么?
现在,只有注册用户被允许在“搞笑图片”论坛中发帖。你是通过在简单模式下设置 phpBB 权限来做到这一点的。
修剪
修剪是一个允许你清理旧的不活跃主题以释放数据库空间的特性。你已经看到了自动修剪功能是如何工作的。修剪与自动修剪的不同之处在于,它是你主动发起的,而不是自动完成的。
在使用此功能之前三思而后行——删除主题是不可逆的!您确定不再需要这些主题了吗?请记住,您的社区成员已经花费了大量时间撰写所有这些帖子。您想扔掉他们的帖子吗?在删除人们的主题之前,考虑购买更多的数据库空间。如果您仍然肯定想要修剪帖子,以下是方法。
行动时间—修剪论坛
从左侧导航菜单中选择论坛管理员选项中的修剪。
如果您想清理所有论坛,请选择所有论坛。您还可以选择修剪单个论坛。
输入30作为天数。
点击执行修剪。
发生了什么?
您刚刚删除了所有论坛中超过 30 天未活跃的主题。这是此操作的样本结果,这是关于删除了多少主题和帖子的报告。
使用常规管理员选项进行系统管理
现在让我们转到常规管理员选项组,它允许您执行基本的系统管理任务。
配置
您可以通过点击左侧导航菜单中的常规管理员选项下的配置链接来访问常规配置选项。(不用担心跳过备份数据库;这个选项的描述稍后会有说明。)
这将打开包含非常基础的论坛设置的“常规配置”表单,例如域名、启用私人消息等。您已经从第二章中了解了这些设置。
数据库备份和恢复
做数据备份是个好主意,以防万一出了什么问题。您的托管提供商可能会制作这样的备份副本;您也可以使用 phpMyAdmin 或使用 MySQL 命令行工具进行备份。如果您使用的是不同的数据库系统,您可能有其他选项。如果您可以访问 phpMyAdmin,请使用它。如果您的托管提供商正在制作副本,了解他们的频率和恢复数据库所需的工作量。不要让数据丢失是您的责任,这应该被认真对待。
惊吓到你了吗?很好。现在,让我们看看好消息:如果您担心没有访问数据备份工具的权限,请放心,phpBB 为您提供了数据库备份工具。有时这可能成为您的唯一选择,所以让我们来看看。
行动时间—备份您的论坛数据
从导航菜单中点击备份数据库。
在您看到的备份选项表单中,点击开始备份,保留所有值为默认。您会看到一个请等待的消息。
一个文件对话框会询问您如何处理请求下载的phpbb_db_backup.sql文件。将此文件保存到您的计算机上的一个选定的文件夹中。
发生了什么
你刚刚创建了一个包含数据库 SQL 指令的备份文件,并将其保存在你的电脑上。妥善保存这些备份文件是个好主意,通过使用合适的文件名和目录来保持它们有序。例如,文件名可以包含备份创建的日期。偶尔,将这些文件烧录到 CD 上;你永远不知道你的电脑何时会崩溃,导致你丢失数据备份。
行动时间——从备份副本恢复数据库
在管理面板的左侧导航菜单中点击 恢复数据库。
定位一个现有的备份副本文件(你可以使用在前一个练习中创建的 phpbb_db_backup.sql 文件)。
点击 开始恢复。
如果一切正常,你会收到一条消息,表明恢复成功。
发生了什么
你已从保存在你电脑上的备份副本中恢复了你的论坛数据库,其中包含所有配置、论坛、主题、用户:简单来说,就是你的论坛运行所需的所有数据。
根据数据库的大小,执行备份和恢复操作所需的时间可能会有所不同。对于非常大的数据库,这些操作可能会因为你的主机提供商施加的一些服务器限制而失败。如果你遇到问题,请务必阅读第五章以获取有关数据库备份和恢复选项的更多信息,并在 phpBB.com 或 phpBBHacks.com 论坛上寻求建议。
大规模邮件
你可以使用 phpBB 向所有用户或单个用户组发送电子邮件。这个功能非常容易使用:你只需从左侧菜单中选择 大规模邮件 链接,选择收件人,输入主题和消息正文,然后点击 电子邮件 按钮。这可能会向所有用户发送电子邮件。
“希望如此”,因为有可能这个功能对你不起作用。由于所有这些发送垃圾邮件(即垃圾邮件)的人,互联网提供商和主机公司正在采取措施反对所有看起来像大规模邮件的东西。所以如果你数据库中有大量用户,或者你的主机有严格的邮件使用规则,你可能无法向用户发送大规模邮件。
如果尝试发送邮件而不进行任何配置更改失败,你可以尝试使用你的 ISP 的 SMTP 服务器。邮件设置位于“配置”链接下的“一般管理”部分。
phpBB 邮件发送器的工作方式是将所有收件人添加到 BCC 中。想象一下你在你最喜欢的电子邮件环境中发送一封普通电子邮件。现在想象你将所有用户添加到 BCC(盲碳拷贝)字段中。结果是:邮件被发送给所有收件人,他们无法看到 BCC 列表上的其他人。
表情符号
你知道笑脸,那些可爱的小图标(也称为表情符号),你可以用它们来让你的帖子更加生动,并表达一些情感,同时也可以给读者一个提示,了解如何对你的文本做出反应。好消息是:phpBB 默认自带一套笑脸包,并且足够灵活,允许你添加、编辑和删除成员在帖子中使用的笑脸。
点击通用管理选项组中的笑脸,将弹出笑脸编辑工具。
编辑或删除笑脸非常简单。只需使用每个笑脸旁边的相应链接即可。你还可以添加新图标,甚至可以添加包含在特殊文件(.pak)中的新图标批量。更多相关信息请参阅第五章。
使用词汇屏蔽过滤词汇
phpBB 允许你屏蔽成员在帖子中使用的词汇。屏蔽意味着用一个不那么糟糕的词汇替换一个糟糕的词汇。实际上,这不必是一个单词本身;它可以是一个单词的一部分或一个短语。
行动时间——创建词汇过滤器
点击导航菜单上的词汇屏蔽链接。
在新屏幕中,点击添加新词汇。将出现一个新的表单:
在词汇字段中输入The Dude Sucks。
在替换字段中输入The Dude Rocks!。
点击提交。
发生了什么
你为发布文本引入了一个新的词汇替换过滤器。现在你可以前往论坛前端测试这个功能的效果。
一些附加信息:
你选择屏蔽的词汇不仅会在发布文本中屏蔽,还会在帖子/主题标题、私信、用户名、投票答案和投票问题中屏蔽。
词汇替换仅在显示时进行。在数据库中,phpBB 存储原始文本。所以如果你决定移除词汇屏蔽,原始文本将开始显示。
你可以使用 ***** 通配符来匹配部分单词。在之前的例子中,如果你选择匹配并替换 The Dude su*,这将匹配所有类似短语,如 The Dude sukz, The Dude sux 等,并且所有这些都将被替换。
用户管理简介
管理用户是一项你可能经常做的活动。有时用户会遇到资料问题、忘记密码、不再能访问旧电子邮件账户等问题。这时,你需要介入帮助用户。
如标题所示,本节是一个介绍,只包含你可能会频繁使用或不太常用的功能。更高级和较少使用的功能将在第五章中讨论。
编辑用户资料
要编辑用户资料,点击用户管理选项中的管理链接。
您已经熟悉基于用户名选择用户的屏幕。如果您不确定用户名的拼写,请使用查找用户名功能。
在您输入(或找到)用户名后,点击查找用户按钮将显示用户资料。编辑资料的表单与用户在论坛前端看到的相同,只是增加了一个仅管理员可见的特殊字段部分:
选项相当直观:
您可以停用用户,这样用户就无法再登录了。
您可以禁止此用户使用私人消息或头像。禁止使用 PM 意味着用户不能发送 PM,但可以接收其他用户的 PM。
您可以为用户分配一个等级(等级和头像将在后面进一步讨论)。
您可以删除此用户。
删除用户
要删除用户,按照上述说明操作,然后在编辑表单底部勾选删除此用户?复选框,并点击提交。删除用户是永久的;您无法撤销。然而,删除用户并不意味着删除用户发布的所有帖子。当用户被删除时,该用户的所有帖子都变为“访客”帖子。此时,用户名被回收并可用于新的注册。
权限
设置用户权限的界面可以通过在用户管理导航组中的权限链接访问:
您将再次看到熟悉的选择用户表单。选择要编辑的用户后,您将看到用户权限控制屏幕:
在这里,您可以选择将此用户设为管理员,这将自动给用户访问管理面板的权限,并将用户设为所有论坛的版主。简而言之,这意味着用户将拥有与您完全相同的权限。
另一个选项是按论坛选择性地将用户设置为版主。您已经这样做过了;还记得您是如何在版主体验部分开始时将 The Dude 设为版主的吗?
在这里,简单权限列是空的。如果您点击高级模式,详细权限也是如此。这是因为这些选项仅适用于私人论坛,并且列出的论坛中没有私人论坛。私人论坛和详细权限将在书中进一步描述。
禁止用户
是的,这不是一项愉快的任务,淘汰用户。但你能怎么办?这就是生活,事情就是这样发生的。世界上有各种各样的人,有时隐藏在网络的匿名性背后,有些人开始做一些他们通常不会做的事情。比如使用糟糕的语法。或者忘记在星期四发帖。当然,只是开个玩笑。
无论如何,想法是,由你来定义你特定社区的不当行为,但到了最糟糕的时候,你最好知道你的选择。
要访问禁止控制界面,请使用左侧导航菜单中的用户管理下的禁止控制链接。
禁止用户的界面一开始可能有些令人困惑,但实际上它有助于快速了解当前定义了哪些类型的禁止。表单由三个包含两个表单字段每组的三组组成。这三组代表禁止用户的三种方式,两个字段分别用于添加和移除禁止。表单本身包含有关可用选项的一些帮助信息。
当你使用任何三种方法之一禁止用户,并且用户尝试访问论坛时,他们将看到以下消息:
禁止用户
虽然你可以在造成损害之后禁止用户,但禁止某些用户名是一种预防措施。当一个用户名(或其一部分)被禁止时,它不能用于注册。因此,这个功能在用户名被占用之前使用,以防止其被占用。禁止用户名的表单包含添加和移除规则的界面。该表单可通过左侧的禁止名称链接访问。
以下示例展示了如何禁止以 Mod(如版主)或 Admin 开头的一切,以防止冒名顶替者使用暗示他们不仅仅是普通用户,而是拥有特殊社区权力的用户名。
摘要
概述 phpBB 的基本功能是一项漫长的旅程。这是真的,因为 phpBB 是一个功能丰富的公告板系统,为所有用户类型——普通成员、版主和管理员——提供了很多灵活性。从哲学的角度来看,理论上和实践上都知道,更大的灵活性往往伴随着复杂性的增加。但对于 phpBB 的大多数功能来说,情况并非如此,因为它们真的很直观且易于使用。
如果你完成了本章中的行动时间部分,你现在应该对你在新的 BB 上如何运作有一个相当好的了解。如果你没有做练习部分,现在是你回去做它们或者只是把书放一边,开始尝试使用你最喜欢的公告板系统 phpBB 的时候了。
第四章:自定义您的论坛
现在你已经安装了 phpBB 并在管理控制面板中积累了一些经验,你准备好开始改变论坛外观和功能的更高级方面了。改变这些 phpBB 区域对于给你的论坛赋予一个独特的身份,使其在在线论坛中脱颖而出至关重要。论坛的外观主要受 phpBB 的样式系统控制,该系统管理论坛的颜色、图像和视觉布局。可以通过安装从 phpBB 相关网站下载的修改脚本来添加、删除或更改功能。
到本章结束时,你将了解以下内容:
phpBB 2.0 样式的基础
编辑 phpBB 文件的正确方法
如何添加和删除样式
常见的样式安装问题
自定义样式的途径
创建和修改样式的益处
更改论坛图像的方法
如何添加新的论坛功能
phpBB 样式
如果你查看几个不同的 phpBB 论坛,你可能会注意到每个论坛都有一些差异。它们可能使用不同的颜色和图像,以不同的顺序显示功能,或者完全省略某些功能。通过使用不同的 phpBB 样式,可以实现这些多种效果。phpBB 的样式是由布局、颜色和图像的组合创建的论坛外观。当你安装 phpBB 时,默认样式 subSilver 也被安装了。subSilver 是在 phpBB 论坛上最常用的样式,但已经公开发布了超过两百种不同的样式。论坛通常提供多个样式供用户选择。
注意
在处理 phpBB 时,你有时会看到术语样式、主题和模板被互换使用。在本章中,主题和模板被定义为整体样式的两个较小方面,以减少混淆。这是在 phpBB 的代码和管理控制面板中最常使用这些术语的方式。即使后者有时也会用主题代替样式。
样式的结构
为了有效地自定义样式,你必须首先了解构成该样式设计的各个部分。样式,就像房子一样,是由更小的组件构成的,这些组件共同工作以形成一个框架。这个框架,就像房子的墙壁一样,为显示论坛的内部内容提供了一个结构。这些框架可以是非常复杂的创作,所以在我们进入样式的实际自定义之前,让我们看看这些基本部件是如何组合和存储的。
样式元素
样式由三个主要的样式元素组成,或更小的部分,它们共同工作以创建样式的整体视觉外观。这些是模板、主题和图像集元素。每个样式都是自包含的,并包含所有必要的样式元素以正确运行。
风格的第一部分也是最重要的部分是模板元素。模板元素是一组包含用于生成论坛视觉布局的全部标记的文本文件。标记主要由超文本标记语言(HTML)和 phpBB 自己的特殊模板功能组成,但也可以包括客户端脚本语言,如 JavaScript。模板文件用于安排论坛显示的大部分信息。你可以通过查看文件名来识别模板文件;所有模板文件都以tpl结尾。一些例子包括index_body.tpl、viewtopic_body.tpl和message_body.tpl。尽管这种情况很少见,但多个风格使用一组模板文件,具有不同的主题和/或图像集是可能的。
论坛风格的主题元素是一组用于定义论坛视觉装饰的格式化规则。主题最常见的用途是指定字体、颜色、背景颜色和页面元素的边框。主题元素可能难以定位,因为它们可以存储在三个不同的位置。大多数风格将主题数据存储在一个或多个层叠样式表(CSS)文件中,例如subSilver.css和formIE.css。CSS 文件的名字会随着每个论坛风格的不同而变化,但很多时候,至少会有一个以论坛风格命名的 CSS 文件。一些风格将它们的 CSS 格式化规则放在overall_header.tpl模板文件中,而不是单独的 CSS 文件中。其他可能结合使用overall_header.tpl技术和某些值的数据库存储。subSilver 风格使用组合方法,但也包括一个可以在手动更改后使用的 CSS 文件。
图像集元素包括构成某种风格的全部图像。一些例子包括文件夹图像、投票结果条形图以及“回复”和“新主题”等特定语言的按钮。还有一些图像主要用于装饰目的,例如背景或页眉图像。装饰图像有时被视为主题的一部分,而不是图像集的一部分。
除了已经讨论过的模板文件之外,模板元素还可以包含与主题和图像集元素相关的两个特殊配置文件。主题配置文件theme_info.cfg用于保存与模板关联的主题数据库数据。这些保存的数据可以在以后导入到另一个论坛的数据库中。在大多数情况下,你很少需要编辑此文件。它通常是自动生成或按需提供的。第二个配置文件包含模板配置数据。在大多数情况下,这仅仅是一个列表,列出了风格图像集中的图形文件。这些模板配置文件的名字基于它们匹配的模板,例如subSilver.cfg。
风格存储
论坛上所有可用的样式细节都存储在论坛的 SQL 数据库中。数据库仅包含已安装样式的列表、每个样式的相关模板元素名称以及一些有限的主题数据。不会在您的数据库中存储图像集数据。
另一方面,样式元素存储在论坛文件系统的 templates 目录中。templates 目录包含唯一命名的子目录,每个子目录对应一组模板文件。templates 的每个子目录将包含一个或多个样式的模板、主题、图像集和配置文件。在安装或创建新样式之前,templates 中唯一的子目录将是 subSilver。
在大多数情况下,templates 目录将包含另外两个子目录:admin 和 images。admin 子目录将包含用于显示管理控制面板的模板文件。images 子目录将包含样式使用的图像集,并且可能包含以语言命名的子目录,例如 lang_english 或 lang_dutch,用于显示不同语言的文本。一些更高级的样式可能包含除 admin 和 images 之外的其他目录。
编辑 phpBB 文件
在本章中,您将学习并使用一项新的技能,这对您作为 phpBB 论坛管理员来说非常有用。您已经了解了一些通过管理控制面板可用的强大配置和功能,但还有很多更多,这些功能只能在编辑 phpBB 的文件时访问(或在某些情况下添加)。在更改文件时,您必须小心遵循适当的程序,因为 phpBB 是一组精致且复杂的脚本。这样做可以节省您很多麻烦,正如许多人亲身体验的那样。
注意
您将在本书的几个后续部分再次提醒这些程序。在手动编辑任何文件之前,尽量遵循这些程序,即使没有提醒。这一点非常重要,因为这些程序在处理问题时可以节省您大量时间。
在编辑任何文件之前,您应该做的最重要的事情是备份该文件。这仅仅意味着创建文件当前状态的副本。如果您在编辑后遇到问题,可以使用备份替换已编辑的文件。这将有效地将您的论坛恢复到文件预编辑状态。在您的 phpBB 体验中,您肯定会需要使用文件的备份。每个人在某个时候都会犯错误,这没有什么可羞愧的。在其他时候,事情可能根本不起作用。无论原因如何,如果您在执行任何操作之前进行备份,那么对 phpBB 论坛来说,很少有错误是永久致命的。
当你编辑 phpBB 文件时,使用正确的程序类型非常重要。phpBB 使用三种类型的文件:图形文件、包含程序代码的文本文件和包含显示代码的文本文件。图形文件是你在任何网站上都会看到的标准图像文件,应该使用 Jasc Paint Shop Pro、Adobe Photoshop 或其他能够处理它们的任何程序进行编辑。然而,文本文件是特殊的。在图形文件中犯错误不会损坏你的论坛,但在显示代码文件或程序代码中犯错误可能会轻易地破坏你的论坛。
phpBB 的所有程序代码文件都包含操作和显示 phpBB 论坛和网站所有方面的必要脚本。它们是 phpBB 的骨架。这些文件可能有.php、.inc或.cfg的文件名扩展名,并且是在 Unix 文本文件格式中创建的纯文本文件。这主要意味着在编辑文件时,你需要使用能够理解 Unix 文本格式的程序。大多数简单的文本编辑软件都不会有问题。Microsoft Notepad,可能是 Microsoft Windows 操作系统中最常用的文本编辑器,无法完全理解 Unix 格式。它将 Unix 文本文件的所有内容显示在一行上,所以 Notepad 不是 phpBB 管理员的最佳选择。WordPad 编辑器,也包含在 Microsoft Windows 中,能够无任何问题地读取 Unix 文件。大多数专门的 phpBB 程序员使用具有与 PHP 编程语言相关的特殊功能的更高级的文本编辑程序。一些流行的例子是 EditPlus、TextPad 和 PHPEdit,但还有更多可供选择。然而,对于这里的示例,你可能不需要比 WordPad 更复杂的任何东西。
显示代码文件是模板元素的.tpl文件和之前我们了解过的主题元素的.css文件。像程序代码文件一样,这些是保存为 Unix 文本文件格式的纯文本文件。对于本章的示例,我们再次选择 WordPad 来编辑这些文件。有一些专门的 HTML 编辑程序,如 Dreamweaver MX,可以用来编辑模板文件。这些程序往往会产生与解决的问题一样多的问题,所以你可能现在想避免使用它们,除非你非常熟悉你选择的程序。
最后,关于编辑程序和显示代码文件还有一个注意事项。在保存这些文件时,你需要确保以正确的文件格式保存。这些应该是纯文本文件,所以你必须以那种格式保存。要在 WordPad 中保存编辑后的 phpBB 文件,只需点击保存工具栏图标或从文件菜单中选择保存。WordPad 应该自动正确保存文件。如果你必须选择另存为,确保在保存类型选择列表中选择文本文件。
注意
Microsoft WordPad 可能能够读取 Unix 文件格式,但它不会以该格式保存文件。相反,它以 个人电脑(PC)格式保存文件。
安装新样式
修改您论坛外观的最简单方法之一是下载并安装一个新的 phpBB 样式。基于色彩方案、热门电影、电视节目、爱好、运动等主题,已经创建了数百种不同的样式。这些样式中,大多数可以免费下载和使用,尽管也有一些商业样式和样式设计师。提供样式下载的一些网站还提供演示论坛,您可以在不下载任何内容的情况下预览任何样式。下载 phpBB 样式的两个最佳网站是:
phpBB 样式数据库:
www.phpbb.com/styles/。
phpBBHacks 模板数据库:
www.phpbbhacks.com/templates.php。
注意
记住,一些在线社区在提到一个完整的样式时,使用的是“模板”或“主题”这样的术语,而不是样式元素的名称。phpBBHacks.com 通常就是这样使用“模板”一词的。
确保选择与您使用的 phpBB 版本兼容的样式。上述两个网站将列出每个样式的兼容 phpBB 版本,但其他网站可能不会。此外,请记住,一些其他网站携带用于与内容管理系统(如 PHP-Nuke)一起使用的特殊移植版本的 phpBB 样式。这些样式将不与原始口味的 phpBB 论坛兼容,反之亦然。
一旦您选择了并下载了新的样式,您需要将样式安装到您的论坛上。如果一切准备妥当,安装过程并不困难。但如果过程或样式的创建处理不当,您可能会觉得有些令人畏惧。
大多数下载将以 ZIP 文件格式提供。在您能够安装下载的样式之前,您需要解压缩 ZIP 文件。您可以使用各种软件程序来完成这项任务。如果您以 ZIP 文件格式下载了 phpBB,您可能已经熟悉了解压文件的过程。即使您不熟悉,也有许多解压软件程序可供下载。其中一些更著名的名称包括 WinZip、WinAce 和 WinRAR。其中一些,如 ZipGenius (www.zipgenius.it/) 或 XAce,是免费的。WinZip 有一个向导模式,非常易于使用,所以我们在这里不会详细讨论解压过程。
创建副本样式
为了说明目的,本章将讨论一个名为 subBook 的示例样式的使用。这个样式不是下载和解压的,而是作为 subSilver 样式的快速重命名副本创建的。如果您想创建自己的 subBook 样式以便跟随,请按照以下简单说明操作。
行动时间——创建副本样式
复制 templates/subSilver 目录。该复制应包含在 subSilver 下找到的所有相同文件。
将复制目录的名称更改为 subBook。
将 subSilver.cfg 和 subSilver.css 文件分别重命名为 subBook.cfg 和 subBook.css。
打开 theme_info.cfg 文件进行编辑。在这个文件中,您将看到 subSilver 被多次使用。将每个实例更改为 subBook。请注意,不要删除或更改文件中的其他任何内容。记住要遵循您之前学到的正确编辑程序。
subSilver 样式的名称在您的 subBook 目录中的模板文件内大约有四十到五十行被引用。确切文件和次数取决于您使用的 phpBB 2.0 版本。当我们从 subSilver 创建新样式时,我们需要将这些引用更改为新样式的名称(在我们的例子中是 subBook)。显然,这一步骤将花费一些时间。这不会影响我们的安装或卸载示例,因此您现在可以跳过大部分内容。一些高级文本编辑器具有特殊的搜索和替换功能,可以帮助您更快地完成这项工作。至少,您应该在 overall_header.tpl 文件上执行这些步骤。
保存并关闭所有打开的文件。
发生了什么?
phpBB 可用的所有样式都是以存储在 templates 目录中的一组文件为基础的。创建新样式的最简单方法是将其他样式的文件复制过来,并对其中一些复制的文件进行一些修改。这些文件是配置文件,例如 subSilver.cfg 和 theme_info.cfg,phpBB 使用这些文件来安装和管理样式。在这种情况下,层叠样式表文件 subSilver.css 也被重命名了。因此,overall_header.tpl 中对 subSilver.css 的引用也必须更改为该文件的新名称。完成这些步骤后,您将获得一个新样式,您可以随意编辑它,而不会影响您论坛的其他样式。
逐个安装元素
一旦您有了要安装的新样式,无论是从下载还是复制 subSilver,您都需要将此样式的目录和文件放入您论坛的 templates 目录中。phpBB 的管理控制面板可以自动检测放入此目录的所有样式。如果您的论坛位于远程服务器上,就像大多数论坛和网站一样,那么您将必须通过您的网络托管公司支持的一种方法将目录和文件上传到该服务器。这通常是通过 文件传输协议 (FTP)、SSH 或其他设置。一旦您将文件复制或放入 templates,您已经完成了样式安装的三分之二:
将新样式的文件放置在您的论坛文件系统中后,您现在可以通过 phpBB 的管理控制面板安装样式。使用管理员账户登录到您的论坛,并进入控制面板。在导航菜单框架中,滚动到样式管理部分。这里有几个选项;目前我们只对添加链接感兴趣。点击此链接进入样式管理页面。
样式管理页面列出了 phpBB 在您的templates目录中检测到的所有未安装的样式。您可能会注意到这个页面既使用主题也使用样式来指代样式。这种混淆源于我们只是通过将它们放置在templates目录中来安装了图像集和模板样式元素。剩下的只是安装主题元素,从而完成样式的安装。要安装主题,只需点击列表中条目旁边的安装链接。现在,phpBB 将在用户资料和 phpBB 配置页面中找到的下拉选择列表中显示该样式:
故障排除
phpBB 是一套复杂的脚本,所以即使是像安装样式这样简单的事情也可能给您带来问题。这些问题有很多原因,从设计师的错误到文件复制错误,但所有这些问题都很容易解决。让我们来看看论坛管理员在过去遇到的一些更常见的问题。
样式未出现在管理中
如果您已经将样式复制到templates目录中,但在样式管理页面中看不到该样式,通常是因为样式目录中应该存在的theme_info.cfg文件有问题。请确保此文件已被复制,并且文件名没有更改。如果文件存在且命名正确,那么问题可能出在文件内部。一些样式在分发时此文件中存在错误。
打开theme_info.cfg进行编辑。它应该类似于下图中显示的 subSilver 文件。请注意,每一行都以$subSilver[0]开头,后面跟着其他字符。subSilver部分非常重要,必须与样式的templates目录的名称完全相同,并且不能包含任何空格。当然,每个模板的名称都会不同。phpBB 会将所有这些视为完全不同的事物:
subSilver
sub Silver
Subsilver
SubSilver
subsilver
这张截图显示了一个未修改的 subSilver theme_info.cfg的部分。在这种情况下,只有我们的第一个选项subSilver是正确的。检查theme_info.cfg的每一行,并对文件进行必要的更正,或者如果需要,重命名样式的templates目录。在某些情况下,后者将是纠正问题的更简单方法。其他样式将在目录和theme_info.cfg中使用不同的名称,但这两个地方的名字必须相同。
配置文件无法打开
有时 phpBB 可能难以找到模板元素的配置文件。当这种情况发生时,无论是安装期间还是正常论坛操作期间,论坛都会向用户显示一个严重错误消息,如以下图所示,提到模板的名称。这个名称是错误消息的一个重要部分,因为它告诉你 phpBB 使用了什么名称来查找配置文件。当模板名称显示为 subSilver 时,phpBB 在templates/subSilver目录中找不到名为subSilver.cfg的文件。同样,名称 subBook 意味着 phpBB 在templates/subBook目录中查找subBook.cfg。这里的模式应该是清晰的:
为了修复这个错误,你需要确保 phpBB 可以找到相关的文件。就像样式在“样式管理”中未出现时的错误一样,实际文件和目录的名称必须与错误信息中的名称完全相同。Subbook不等于subBook。首先,在templates目录中查找,并确保存在一个具有模板名称的子目录。接下来,在该子目录内查找模板配置文件。如果目录或文件名称错误,将它们重命名为正确的拼写应该可以修复错误。
如果没有名为templates的子目录,或者即使接近正确名称的子目录,有两种方法可以暂时修复错误。第一种方法是重命名另一个子目录(以及其中的模板配置文件)为 phpBB 试图找到的名称。在这样做的时候,一定要记下原始名称,以便稍后快速更改回来。第二种方法更好,即复制另一个模板并重命名它。这个步骤与本章前面“创建副本样式”部分中的步骤相同,只是你不需要编辑theme_info.cfg文件。在暂时修复了问题后,你可以尝试卸载有问题的样式,或者找到更持久的解决方案,比如替换样式的templates文件。
删除已安装的样式
在某个时候,你可能会决定要从你的 phpBB 论坛中删除你添加的风格。与安装风格相比,这是一个更简单的过程。删除风格有两个步骤:从数据库中删除风格和主题信息,以及删除风格的templates目录。
在管理控制面板中,将导航菜单向下滚动到风格管理部分。点击管理链接将加载一个风格管理页面,列出论坛上当前安装的风格。它看起来与你已经见过的安装页面非常相似。通过点击某个风格旁边的删除链接,你将从论坛的 SQL 数据库中删除与该风格相关的所有信息。在真正删除之前,你会被要求确认删除。任何在个人资料中选择了风格的用户,在删除该风格后,他们的选择将自动更改。他们的个人资料设置将被更改为管理控制面板常规配置页面上的板默认风格。
注意
如果你论坛上只安装了一种风格,你就无法删除它。你也不能删除板默认风格
删除风格的第二个方面需要删除该风格相关的子目录,该子目录位于templates目录中。这通常是通过与安装时将风格复制到templates目录相同的方式进行。由于可能有多个风格使用单个模板或图像集元素,并且具有不同的主题,你应该确保删除这些文件不会损坏你在管理控制面板中未删除的任何风格。
创建或定制
到目前为止,我们只看了安装已经存在的新的风格。然而,这只是我们改变 phpBB 外观的众多方法之一。我们的其他两种选择是创建一个全新的风格或定制已经安装的风格,比如 subSilver。这两种选择都有一些优点和缺点。
创建一个新风格真的可以为论坛注入活力。如果你的论坛外观独一无二,你的访客更有可能记住它。你可能记得自己过去访问过的某些独特外观的网站。此外,你不必花时间浏览数百种现有的风格来寻找你喜欢的或与论坛主题搭配得好的风格。有时你可能甚至找不到适合你主题的风格!自己创建风格的诱惑很大。
另一方面,创建一个新的风格是件很费劲的工作!对于正常的 phpBB 操作,需要许多图形,你可能想要用你自己的图形替换它们中的大部分。你可能甚至想要创建新的图形并修改模板文件以创建新的视觉效果。本质上,你将设计一个完整的网站。如果你不是经验丰富的网页设计师或图形艺术家,你可能觉得这项任务超出了你当前的技术水平。
当你自定义现有的风格时,与创建一个新的风格相比,你会节省很多时间。现有的结构将已经完整,除了你想要做的任何更改。你可以快速替换任何图像或颜色来改变论坛的氛围,正如你将在本章后面看到的那样。原始风格创建者的工作将作为指导,帮助你发展知识。然而,如果你自定义了一个风格,那么相同的现有结构将限制你,除非进行大幅度的更改。很可能自定义的风格将与原始风格有相似之处,许多人会一眼就能看出。
那么,哪种方法更好?这实际上取决于你想要改变论坛外观的程度。有很大可能性,你可以找到一个现有的风格来自定义,它不会对你限制太多。然而,如果你看了足够多的风格,你会发现其中许多至少部分基于原始的 subSilver 风格。对于独特的东西,你必须创建一个新的风格。
在本章的剩余部分,我们将学习如何自定义现有的风格。然而,示例将使用本章早期创建的 subBook 风格。这种方法将允许我们保留论坛的原始 subSilver 风格,同时对我们选择的 subBook 副本进行任何更改。
在第六章中,我们将详细讨论设计一个全新的风格。
注意
如果你之前没有创建和安装 subBook,或者没有替换 subBook 模板文件中所有 subSilver 名称的使用,你现在可能希望这样做。如果你喜欢,你可以使用 subSilver,但这可能会导致你的论坛在后续章节的示例和截图中看起来与它们大不相同。
通过样式表进行自定义
修改论坛外观的最快方法是更改其颜色、字体和其他视觉(但非图形)装饰。当我们之前查看风格的基元素时,我们了解到主题通过层叠样式表(CSS)的格式化规则定义和控制这些概念。CSS 格式化规则向使用 HTML 等标记语言结构的文档添加风格数据,例如字体、颜色、大小、边框和间距的规范。由于 phpBB 创建此类文档以显示论坛,因此更改论坛外观这些部分的推荐方法是 CSS。
CSS 规则可以存储在三个不同的位置:在外部 CSS 文件中,例如 subBook.css,在 overall_header.tpl 中,或者将 overall_header.tpl 方法与一些数据库存储相结合。subSilver 使用组合方法,因此 subBook 也将采用相同的方法。
在管理面板中编辑样式表
我们可以先看看组合方法中的数据库存储部分。它允许我们通过管理控制面板编辑样式表的一些方面。输入到管理功能中的值被放入 SQL 数据库中,稍后用于 phpBB 显示的每一页。
要访问样式编辑工具,请访问管理控制面板的 样式管理 部分,并点击 管理 链接。这将加载您在探索删除已安装样式时看到的相同的 样式管理 页面。然而,我们现在对 编辑 链接而不是 删除 链接感兴趣。点击 编辑 将加载 编辑主题 页面,该页面提供了一个简单的表单,用于更改颜色、字体、文本大小以及一些其他主题方面。
行动时间——编辑样式表
在页面上找到标记为 背景颜色 的行。
在这一行有一个包含文本 E5E5E5 的表单字段。删除该文本。
在表单字段中输入 CC0000。使用数字零,而不是大写字母 O。
滚动到页面底部并点击 保存设置 按钮。
在下一页,点击文本 点击此处返回样式管理 中的 Here 字样。这将带您回到 样式管理 页面,您的更改将在此处反映。
刚才发生了什么?
如其名所示,编辑主题 页面允许您更改论坛主题的一些方面。每个可更改的方面都有一个匹配的表单字段,例如论坛页面背景色的 背景颜色。通过将 E5E5E5 替换为 CC0000,您将页面背景颜色从浅灰色更改为红色。如果您将 CC0000 替换为 E5E5E5 并再次 保存设置,更改将被撤销。
编辑其他主题组件
您不仅可以更改页面的背景颜色。编辑主题 页面的前两个选项实际上允许您修改样式的两个方面,尽管它们的标签中可能使用了 主题。对 主题名称 的更改将在板风格选择列表和 样式管理 中反映。选择一个新的 模板 可以更改论坛的整体布局,同时保持当前的配色方案。您论坛的 templates 目录中的所有模板都将列在这个选择框中,即使它们目前没有被安装在某个风格中使用。
剩下的三十八个选项以三列格式呈现。第一列,主题元素,描述了单个设置,而第二列则包含当前值。当你安装一个新的样式时,一些值可能自动提供,也可能不提供;这因样式而异。这两列与你的需求最为相关。
第三列,简单名称,可以包含一些关于这些设置用途的额外描述信息。如果你查看 subSilver 的编辑主题页面,你可以在实际操作中看到这一点。不幸的是,phpBB 在安装新样式时没有导入简单名称数据的方法,因此这列通常会被忽略。你可以输入自己的简短描述,但除此之外,只有 subSilver 会使用这一列:
由于这个页面有如此多的选项,让我们集中讨论可以输入的值类型、最常用的设置以及你最可能想要更改的设置。许多设置是其他设置的替代版本,因此详细查看每一个都不是必要的。所有选项都列在本节末尾的表中。
注意
并非所有模板都会以相同的方式使用每个设置。一些模板甚至不会使用提供的所有设置。你应该将这里提供的描述视为设置可以使用的通用指南,而不是必须使用的指南。这里有很大的灵活性,一些模板正是利用了这一点。
允许的值
可以输入几种类型的值,并且大多数设置只接受一种类型。那些限制为一种类型的值可以归入文件名、颜色、字体大小和字体样式设置。所有其他设置接受文件名、颜色和 CSS 类名值,但在这些设置的每个组中只能使用一种类型的值。
文件名设置——CSS 样式表和背景图片——应仅用于样式templates目录中现有文件的名称。虽然可以使用不在templates子目录中的文件,但这通常需要编辑多个模板文件。一些样式,包括 subSilver,在首次安装时可能不会使用这对中的一个或两个。无论如何,请确保为CSS 样式表填写一个值,因为你可能以后会需要它。背景图片是可选的。
颜色设置需要十六进制颜色代码。十六进制颜色代码,有时也称为 HTML 颜色代码,是由六个字母和数字组成的组合,代表一种颜色,通常以井号符号(#)开头。许多网站提供了显示这些代码示例的图表和列表。当将十六进制颜色代码输入到本页面的颜色设置中时,你必须不包括井号符号。颜色设置只接受六个字符值,因此包括井号将导致代码的最后一位被截断!这可能会导致一些奇怪的颜色效果。你可能想为颜色设置输入一个颜色名称,如红色或绿色。如果你这样做,你将得到一些奇怪的结果。许多网站上有不同的十六进制代码列表。两个好的列表可以在www.htmlgoodies.com/tutors/colors.html和webmonkey.wired.com/webmonkey/reference/color_codes/找到。
字体大小设置仅限于简单的整数,如 9、10 或 15。这些通常与像素或点测量的字体大小相关,但测量类型可能因样式而异。由于某些样式也可能使用百分比测量,你可能想在确定样式表中使用的单位类型之前不修改这些设置。
最后一个受限值设置——字体样式——接受逗号分隔的字体名称列表。一个良好的值示例是Verdana, Arial, Helvetica, sans-serif。如果你想在一个列表中包含一个由多个单词组成的名称,请将其放在单引号或双引号内:例如,‘Verdana’,‘Trebuchet MS’。你也可以使用单个名称,但使用列表会更好。当提供列表时,将使用查看者计算机上安装的第一个字体。
更灵活的设置允许你使用文件名、颜色或 CSS 类名作为值,正如之前所述。文件名值受到与文件特定设置相同的限制。颜色值可以是十六进制颜色代码,包括这次使用的井号符号,或者简单的名称,如蓝色。CSS 类名是层叠样式表(Cascading Style Sheet)格式化规则的名称。它们通常是由全部小写字母和数字组成的简短名称。将被命名的格式化规则将用于控制主题元素控制的所有内容的显示。
常用和修改过的元素
你已经在上一节中学习了几个设置,例如字体大小和样式。现在让我们来检查一下在编辑主题页面中的一些更有用的选项。
表格单元格颜色
表格单元格颜色 1、表格单元格颜色 2、表格单元格类 1 和 表格单元格类 2 元素很有趣,因为它们可能是最常用的。phpBB 中任何显示表格行数据的方面,如成员列表、论坛和主题,都可以使用这些元素来实现交替行颜色效果。为了与 phpBB 的内部编码兼容,表格单元格类 1 通常具有 row1 的值,而 表格单元格类 2 则有 row2 的值。这是一种不成文的标准,但并不总是被使用。
字体颜色
许多论坛管理员喜欢更改的两个选项,但经常在没有帮助的情况下找不到,是 字体颜色 2 和 字体颜色 3。所有字体颜色设置都用于为各种文本着色,但这两个用于论坛中几个位置(如在线用户列表)上管理员和版主用户名的特殊颜色。字体颜色 3 分配管理员名称的颜色,而 字体颜色 2 则详细说明了版主名称的颜色。
再次强调,这些颜色也在其他地方使用,所以如果您更改它们,请确保在论坛周围查看。很容易将名称颜色更改得很好,却发现您的表格标题或 BBCodes 代码变得难以阅读。
一旦您已将元素编辑到您的偏好,您应该在 编辑主题 页面的底部点击 保存设置 按钮以将新值存储到数据库中。您将看到一个确认消息,表明设置已更新,并且新的设置应该在消息之后加载的任何页面上反映出来。
以下表格列出了主题元素的名称并定义了它们:
主题元素名称
描述
CSS 样式表
附加到级联样式表文件的文件名。
背景图片
作为论坛背景使用的图片。在 subSilver 中不使用。
背景颜色
页面背景的颜色。
文本颜色
所有页面的默认文本颜色。
链接颜色
所有未访问链接的默认颜色。
已访问链接颜色
所有已访问链接的颜色。
活动链接颜色
点击链接时,它将改变颜色。在 subSilver 中不使用。
悬停链接颜色
当鼠标指针移到链接上时,它将变为这种颜色。
表格行颜色 1
表格行的背景颜色,通常非常浅。
表格行颜色 2
另一种通常中等的表格行背景颜色。
表格行颜色 3
第三行背景颜色,很少使用,通常是 darkest。
表格行类 1
表格行的 CSS 类名。在 subSilver 中不使用。
表格行类 2
第二组行的类名。在 subSilver 中不使用。
表格行类 3
第三行集合的类名。在 subSilver 中不使用。
表格标题颜色 1
表格标题的颜色。在 subSilver 中也用于页面边框。
表格标题颜色 2
第二个标题颜色。也用于 subSilver 中的表格边框。
表格标题颜色 3
第三个标题颜色。也用于 subSilver 中的内部表格边框。
表格标题类 1
表格标题单元格的 CSS 类名。
表格标题类 2
第二组表格标题单元格的类名。
表格标题类 3
第三组标题的类名。
表格单元格颜色 1
各种常见表格单元格的背景颜色。
表格单元格颜色 2
可选的表格单元格背景颜色。
表格单元格颜色 3
另一个表格单元格的背景颜色。在 subSilver 中未使用。
表格单元格类 1
表格单元格的 CSS 类名。常用于交替行颜色。
表格单元格类 2
第二个单元格类名。常用于交替行颜色。
表格单元格类 3
第三种可能的类名。在 subSilver 中未使用。
字体样式 1
大多数文本的默认字体样式。
字体样式 2
第二种字体样式,有时用于主题标题。
字体样式 3
第三种字体样式。常用于代码 BBCode 标签。
字体大小 1
最小字体大小。
字体大小 2
中等字体大小。
字体大小 3
最大的字体大小,用于大多数文本,包括帖子。
字体颜色 1
引用 BBCode 文本颜色。
字体颜色 2
代码 BBCode 文本颜色。也是版主用户名颜色。
字体颜色 3
表格标题单元格的文本颜色。也是管理员用户名颜色。
Span 类 1
用于 HTML span 标签的 CSS 类名。在 subSilver 中未使用。
Span 类 2
另一个用于 span 标签的类名。在 subSilver 中未使用。
Span 类 3
第三个用于 span 标签的类名。在 subSilver 中未使用。
通过更改 CSS 样式来改变您网站的外观
组合样式表存储方法的第二部分处理模板 overall_header.tpl 文件中放置的 CSS 格式化规则。这些格式化规则,或 CSS 类,控制论坛显示的许多方面。通过直接编辑 CSS 类,您可以创建比通过 编辑主题 工具可能实现的更广泛的设计更改。|
第一步是定位 templates/subBook/overall_header.tpl 中的 CSS 类。在 WordPad 中打开该文件,并向下滚动到包含 的另一行之间。每个类有两个主要部分:一个类名,也称为选择器,和一个声明块。
类名是一个简短且描述性的名称,将用于将单个类与论坛页面上的元素关联起来。名称可能与 HTML 标签的名称相同,例如 body, td, hr 或 font,或者以点开头的作者创建的名称,例如 .postbody 或 .quote。两种名称的组合,如 td.row1,也是可接受的。你还会看到包含以逗号分隔的名称的类;这是将一个类应用于所有命名元素的一种快捷方式。
声明块由一个或多个用大括号括起来的声明行组成。每条声明行包含一个属性名和值,由冒号分隔,并以分号结束。实际上,可以在一行文本中放置多条声明行,只要每条声明以分号结束,你将在文件中看到几个这样的例子。属性名和值指定了实际的格式化特性,如颜色、边框等。以下是一个用于下划线文本的示例行:
text-decoration: underline;
大多数样式的样式表也会包含以 /* 开头和以 */ 结尾的注释行,这些注释行解释了每个类将影响论坛的哪些显示元素。注释行本身不影响任何布局特性。一个完整的类可能类似于这个示例。
td.row2
{
color: black;
/* White Background */
background-color: #FFFFFF;
}
在你达到需要为你的论坛添加新功能的地步之前,你通常不需要非常频繁地更改类名,如果需要的话。另一方面,编辑声明块将让你几乎可以做任何事情。通过检查文件中的现有条目,你可以很好地了解通过在各个类中添加或删除声明行可以做什么。
注意
存在着成千上万种属性名称和值的组合。还有一些类型的类名在这里没有涵盖,或者没有在 subSilver 和 subBook 中使用。关于超出本书范围的可层叠样式表(CSS)的更多信息,请查看以下资源:
184 手动选择的样式表资源:www.cbel.com/style_sheets/
W3Schools CSS 教程:www.w3schools.com/css/
css-discuss Wiki css-discuss.incutio.com/
在 overall_header.tpl 中,你会看到许多包含特殊 模板变量(如 {T_BODY_BGCOLOR})的声明行。模板变量是 phpBB 的一个特殊功能,用于将数据替换到从模板文件生成的布局中。模板变量的可识别特征包括以大括号开头和结尾,并且只包含字母、数字、下划线和点。你不会看到名称包含分号、冒号或大多数其他特殊字符的模板变量。样式表中的任何模板变量都将被“编辑主题”工具的“主题元素”值替换;它们是数据库和 overall_header.tpl 结合发挥作用的地方。有关模板变量及其匹配的主题元素名称的列表,请参阅本节末尾的表格。
模板变量也可以应用于其他类型的主题元素的类。例如,查看 subBook 的 overall_header.tpl 中的第一个类。这个 body 类影响 HTML
标签,从而影响整个网页,在与滚动条相关的声明行中使用了几个表格颜色元素。如果浏览器支持这些元素,这些行将改变浏览器滚动条中某些部分的颜色。滚动条属性不是标准 CSS 功能的一部分,并且仅在特定浏览器中起作用,例如微软的 Internet Explorer。Netscape 和 Mozilla 浏览器忽略滚动条属性。要找到一个有趣的例子,说明你可以如何改变论坛的外观,找到 .bodyline 类。这将在 body 类下方大约八行的地方。在行尾附近,你可以看到 border 属性,它管理论坛页面的边框。它目前应该有创建一个实心、一像素宽、浅蓝色边框的值,颜色可以在 编辑主题 中更改。现在,将单词 solid 替换为 dashed。保存此更改并查看论坛的索引页面——现在它有一个虚线边框。你也可以尝试 dotted, ridge 和 groove 以获得其他效果。通过改变同一区域 1px 代码的数字部分,你可以增加和减少边框的宽度。尝试 10px 和 dotted 一起使用,以获得一个不寻常的视图。
注意
在 subBook/overall_header.tpl 中找到的样式表代码在 subBook/simple_header.tpl 中重复,并在 subBook/admin/page_header.tpl 中经过一些修改后重复。如果你想在论坛的所有部分保持相同的样式,对其中一个文件所做的任何更改也应应用于其他文件。
使用外部样式表
通过在overall_header.tpl中放置样式表,phpBB 通过“编辑主题”页面给你提供了很多控制,但这也带来了代价。样式表必须在每个页面上重新加载,这可能会使非常繁忙的论坛变慢。一个替代方案是使用外部样式表文件,例如subSilver.css和subBook.css。网络浏览器不会像刷新内部样式表那样频繁地刷新外部样式表,这会导致页面尺寸更小,加载时间更快。然而,这种类型的样式表不支持“编辑主题”实用程序,因此该实用程序几乎变得无用。“编辑主题”仍然控制管理员和版主用户名颜色,以及根据样式,行类和颜色。
要为 subBook 启用外部样式表,请在templates/subBook/overall_header.tpl中找到以下行:
这一行是一个 HTML 注释行,由于开头和结尾附近有!--和--字符序列。就像层叠样式表注释行一样,它对页面布局没有影响。通过删除注释字符,可以使这一行成为外部样式表文件的引用。这一行应该看起来像这样:
你还应该删除overall_header.tpl中的所有 CSS 类,否则它们将覆盖外部样式表中的相同类。如果你对那些 CSS 类做了任何更改,在从overall_header.tpl中删除代码之前,在subBook.css中做出相同更改。你将在subBook.css中找到相同的类,但你不能在外部样式表文件中使用模板变量。如果你在simple_header.tpl和admin/page_header.tpl中做出这些相同的更改,你可以通过单个样式表文件控制整个论坛的外观。注意,admin/page_header.tpl中的最后一行将略有不同。你需要在这行中的templates之前添加../,以便样式表在使用此文件的页面上正确显示。这些页面通常是管理控制面板页面,只有你可能看到(除非你给其他用户管理员权限)。admin/page_header.tpl的最后一行是:
下表列出了模板变量和相关主题元素:
模板变量
主题元素名称
{T_HEAD_STYLESHEET}
CSS 样式表
{T_BODY_BACKGROUND}
背景图片
{T_BODY_BGCOLOR}
背景颜色
{T_BODY_TEXT}
文本颜色
{T_BODY_LINK}
链接颜色
{T_BODY_VLINK}
已访问链接颜色
{T_BODY_ALINK}
活跃链接颜色
{T_BODY_HLINK}
悬停链接颜色
{T_TR_COLOR1}
表格行颜色 1
{T_TR_COLOR2}
表格行颜色 2
{T_TR_COLOR3}
表格行颜色 3
{T_TR_CLASS1}
表格行类 1
{T_TR_CLASS2}
表格行类 2
{T_TR_CLASS3}
表格行类 3
{T_TH_COLOR1}
表格标题颜色 1
{T_TH_COLOR2}
表格标题颜色 2
{T_TH_COLOR3}
表格标题颜色 3
{T_TH_CLASS1}
表格标题类 1
{T_TH_CLASS2}
表头类 2
{T_TH_CLASS3}
表头类 3
{T_TD_COLOR1}
表格单元格颜色 1
{T_TD_COLOR2}
表格单元格颜色 2
{T_TD_COLOR3}
表格单元格颜色 3
{T_TD_CLASS1}
表格单元格类 1
{T_TD_CLASS2}
表格单元格类 2
{T_TD_CLASS3}
表格单元格类 3
{T_FONTFACE1}
字体样式 1
{T_FONTFACE2}
字体样式 2
{T_FONTFACE3}
字体样式 3
{T_FONTSIZE1}
字体大小 1
{T_FONTSIZE2}
字体大小 2
{T_FONTSIZE3}
字体大小 3
{T_FONTCOLOR1}
字体颜色 1
{T_FONTCOLOR2}
字体颜色 2
{T_FONTCOLOR3}
字体颜色 3
{T_SPAN_CLASS1}
段落类 1
{T_SPAN_CLASS2}
段落类 2
{T_SPAN_CLASS3}
段落类 3
通过图片进行自定义
论坛外观的另一个重要部分是通过图片来创建的。论坛图片可以分为两大类:一类是仅用于外观的,另一类则具有某种功能。前者可能包括论坛的标志或菜单链接图片,而后者可能包括新帖子指示器和发帖按钮。通过替换这些图片中的任何一个,您可以创建一个新的用户界面,并同时调整论坛的设计。如果您是一位图形艺术家或对创建自己的图片有经验,您可以创建一些令人惊叹的图片来活跃您的论坛。
当然,您也可以从 phpBB 社区下载新的图形。正如之前提到的,phpBB.com 和 phpBBHacks.com 提供风格下载,同时也提供一些图形集。他们的一些图片下载包括排名和表情符号图片,但您也可以找到正常论坛按钮的套装。一些风格作者还制作了特殊的 PSD 图像套装,这些套装可以使用 Adobe Photoshop 和其他图像编辑器来创建新图像。如果您安装的风格有 PSD 套装,那么在以后添加论坛新功能时可能会很有用。
安装新图片以改变您网站的外观
在 phpBB 论坛中安装新图片有两种方式。第一种是替换现有图片。替换图片需要找到或创建一个图片,将其重命名为与论坛上已使用的图片相同的文件名,删除现有图片,并将新图片放在相同的位置。这是一种快速将新图形添加到论坛的方法,但它将限制您只能使用之前放置的相同类型的图片。如果您有一个像数码照片一样的 JPEG 图片,想要用于 subSilver 或 subBook 中的 新主题 按钮,您将不得不将其转换为 GIF 图片,在这个过程中会损失一些图片质量。对于这种情况,使用安装新图片的第二种方法:添加一个具有新文件名的图片会更好。
然而,为了使 phpBB 能够检测到新的文件名,你可能必须编辑你安装新图片的样式的模板配置文件。如果你还记得本章前面的内容,这些文件的名字与 templates 子目录的名字相匹配,例如 subSilver.cfg 或 subBook.cfg,并列出了论坛上找到的许多图形。列表中的条目通常类似于以下示例:
$images[‘name’] = "$current_template_images/image.gif";
$images[‘name’] = "$current_template_images/{LANG}/image.gif";
如果你用 WordPad 打开 subBook.cfg,你应该会看到几行这种格式的文本。一般来说,你应该只编辑一行中最后一个反斜杠之后和最后一个引号之前的部分,例如示例中的 image.gif。如果你的新图片不在样式的 images 子目录中,比如 templates/subBook/images,那么你需要将 $current_template_images 替换为指向图片的正确路径。通常,将新文件直接放入样式的 images 目录中会更简单。特殊的 {LANG} 占位符允许 phpBB 使用支持多种语言的图片的不同版本。
你可能预期在配置文件中找到的一张图片——论坛的 phpBB 标志——实际上并不在那里。要更改标志的文件名,你必须编辑 overall_header.tpl。标志的 HTML 图像标签如下所示:

注意,phpBB 的标志是 logo_phpBB.gif 文件。大多数人希望快速更改标志,所以这是一个很好的文件来尝试替换或重命名。
Hacking phpBB
仅通过 phpBB 修改论坛的外观只是你可以执行的自定义操作的一个方面。对于一些有趣的变化,你很可能会想给你的论坛添加一些全新的功能。你也可能想移除一些你计划不使用的功能。为了添加新功能、移除现有功能或以其他方式更改 phpBB 论坛的能力,你必须编辑构成 phpBB 核心的 PHP 脚本文件。你可能还需要编辑或添加新的模板文件到论坛上安装的样式中。进行这类更改的过程被称为 修改 或 hacking phpBB。
MODs 和 Hacks
在线 phpBB 社区中提供了许多更改 phpBB 功能的说明。这些下载可能包括更改核心 phpBB 文件或 SQL 数据库的步骤说明,添加新的论坛文件,或这三个类别的任何组合。这些下载通常被称为 MOD 或 Hacks。Hacks 是在 phpBB 1 时代使用的原始术语,并且在一些 phpBB 社区中仍然广泛使用。随着 phpBB 2.0 的推出,从“modifications”一词的缩写形式来的 MODs 术语也变得流行起来。为了避免混淆,本章中将使用 修改 一词。
phpBB 修改
修改究竟包括什么?这取决于修改的范围。非常简单的修改通常包括一个包含更改现有 phpBB 文件说明的文本文件。更复杂的修改可能还包括要添加到 phpBB 的新文件和一个特殊的安装程序文件。一些极其复杂的修改通常包括所有这些,以及已经编辑过的原始 phpBB 文件的副本。所有这些文件都将一起放入一个压缩文件中,通常是 ZIP 格式。
虽然是一群开发者创建了 phpBB,但修改通常是需要修改效果的个别 phpBB 用户的工作。phpBB 是开源的,并按照 GNU 通用公共许可证发布,因此它及其任何衍生作品(如修改)可以免费提供给他人。修改作者将他们的作品提供给他人,希望其他论坛管理员能从中受益,并最终回馈给更大的 phpBB 社区。因此,存在大量不同编码方法和写作风格的修改。一些修改也处于开发阶段,你应该小心使用。它们通常包含可能导致你的论坛访客烦恼的错误、安全漏洞或不完整的特性。
找到大量 phpBB 修改下载的最佳位置是:
phpBBHacks.com: www.phpbbhacks.com/
phpBB 官方网站: www.phpbb.com/
许多修改作者也会在自己的网站或其他 phpBB 社区上发布他们的作品。如果可能的话,确保你只下载描述为与你的 phpBB 版本兼容的修改。有许多 phpBB 1 和 phpBB 2 的版本,但并非所有修改都适用于每个 phpBB 版本。现在主要在phpBBHacks.com找到的 phpBB 1 修改将无法在任何 phpBB 2 版本上运行。一些 phpBB 2 修改可能只与 phpBB 2.0 的早期或后期版本兼容。
安装一个修改
当你找到并下载你想要安装的修改时,你需要遵循一系列步骤,将新代码放入你的论坛并完全激活它。像许多其他事情一样,所需的精确步骤因每个修改而异。然而,所有修改都存在一种通用的标准方法。首先,让我们安装这个简单的修改。它为每个用户的帖子添加了一个按钮,允许其他人快速搜索该用户的所有帖子。
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/viewtopic_body.tpl
#
#-----[ FIND ]------------------------------------------
#
//-->
#
#-----[ IN-LINE FIND ]------------------------------------------
#
#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
{postrow.SEARCH_IMG}
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# End
行动时间——安装一个小修改
定位你论坛的templates/subSilver/viewtopic_body.tpl文件。使用你的文本编辑程序打开此文件。
使用文本编辑程序的搜索功能在文件中找到此行文本。在许多程序中,此功能可以通过菜单访问或通过在 Windows 系统上按Ctrl+F来访问。
//-->
现在,找到该行中的文本。
在之后,输入一个空格和文本{postrow.SEARCH_IMG}。该行的最终版本应类似于以下示例:
//--> {postrow.SEARCH_IMG}
保存并关闭文件。如果需要,将其上传到您的网站,替换那里的现有文件。如果您愿意,可以使用templates /subBook/viewtopic_body.tpl文件重复所有这些步骤。
前往您的论坛并查看任何帖子。您应该在帖子下方看到一个新的搜索图像。
刚才发生了什么?
恭喜,您刚刚安装了您的第一个 phpBB 修改版!大多数修改版包含一系列与上一页类似的说明。作者希望您将这些说明作为将修改版添加到 phpBB 文件的基本指南。通过在您的viewtopic_body.tpl文件中放置一小段新代码,您已经启用了可以与论坛帖子一起显示的搜索按钮。
安装下载的修改版
下载并希望安装的修改版后,您必须首先解压缩下载的文件,如果它是 ZIP 文件或其他存档文件格式。这样做时,将创建一个或多个新文件,以及可能包含更多文件的目录。当只有一个文件时,它通常是一个简单的文本文件,您可以在 WordPad 中打开它。文件的名称通常是readme.txt, install.txt, install.mod或类似的东西。为了举例,让我们使用install.txt。
注意
如果修改版包含一个install.mod文件,您可能无法通过双击它来打开它,就像其他文件一样。.mod文件扩展名已经由一种流行的音乐文件格式使用了多年,所以像 WinAMP 这样的音乐播放器通常会尝试打开双击的.mod文件。在这些情况下,您必须通过 WordPad 的文件 | 打开菜单打开文件。
install.txt将包含安装修改版更改的所有说明,以及作者的致谢和关于更改的注释。较大的修改版可能包括一个readme.txt和一个install.txt文件。在这种情况下,通常在执行任何其他操作之前检查readme.txt是个好主意,因为它可能包含install.txt中未找到的特殊说明。
一些修改以段落形式简单列出,但大多数使用一个常见的模板,包括标题和称为操作的简单命令。修改标题将包含基本信息,例如修改的名称、版本号、作者、描述以及安装难度和时间的估计。有关修改及其历史的注意事项也可能在这里找到,因此请务必仔细阅读标题。操作描述了使用包含简短描述性名称的标题以及一条或多条代码的修改安装步骤。
下面是一个操作标题的示例,它可能出现在指令文件中。
#
#-----[ ACTION NAME ]------------------------------------------
#
每个操作的名称将替换文本ACTION NAME。有许多种类的操作,每种操作都有不同的含义。当在一系列指令中使用时,操作名称通常全部大写。
注意
在对任何文件进行任何操作之前,请务必备份您被指示更改的任何文件。如果您需要刷新记忆,请参考本章前面的编辑 phpBB 文件部分。
复制操作
这个标记为复制的操作是指将文件放置到某些新的位置。通常,要复制的文件是修改的一部分,必须上传到您的论坛。有时它们已经在论坛中,只需移动即可,但这样的特殊情况应在修改说明中注明。
#
#-----[ COPY ]------------------------------------------
#
db_update.php to db_update.php
functions_new.php to includes/functions_new.php
templates/*.* to templates/subSilver/*.*
上面的示例是一个典型的复制操作。每一行列出要复制的文件在左侧,以及复制的目标在右侧。除非另有说明,否则目标路径将与论坛的主要目录相关。在示例中,您将db_update.php放置在主目录中,与viewtopic.php和profile.php以及functions_new.php一起位于includes/目录中,以及修改的templates/目录中的所有文件都位于论坛的templates/subSilver/目录中。特殊表示法*.*是一种快速表示“此目录中所有文件”的方法。
SQL 操作和编辑数据库
当黑客添加新功能时,它们通常以某种方式通过论坛的 SQL 数据库进行跟踪。为了使这正常工作,您需要修改数据库。修改作者将使用三种方法之一或多个来包含这些更改。第一种方法,并且在最近创建的修改中最为流行,是包含一个安装脚本文件。安装文件是具有.php文件扩展名的特殊文件,可以为您更改数据库。它们通常命名为install.php或db_update.php,但名称可以有所变化。要使用这些文件,通常只需将它们放置在论坛的目录结构中(复制操作会处理这一点)并运行该文件。
这一部分可能对您来说有些难以理解。学习如何安装修改的人经常问,“运行 文件是什么意思?” 要运行 .php 文件,您需要像访问普通网页一样在您的网络浏览器中访问它。一个很好的比较是思考您的论坛的 viewtopic.php,它显示所有主题。每次您在论坛中阅读一个主题时,您就是在运行 viewtopic.php 文件。仅仅访问您上传的 db_update.php 文件就会开始编辑数据库的过程。一些复杂的安装程序可能会引导您完成几个步骤。
注意
许多安装脚本在您在运行文件之前使用管理员账户登录到论坛之前将不会工作。始终确保首先登录,并在运行后立即删除安装文件!保留安装脚本可能会带来重大的安全风险!
包含数据库更改的第二种方法是在安装说明中的 SQL 操作部分放置一个 SQL 查询命令列表。第三种方法是将相同类型的列表放置在一个单独的文本文件中,该文件可能被命名为 sql.txt 或 schema.sql。其他名称也是可能的,但重要的是要注意,任何扩展名为 .sql 的文件都是一个包含 SQL 查询的文本文件。当使用这两种方法中的任何一种时,您需要执行以下两项操作之一:创建自己的安装脚本或手动运行更改。
创建自己的安装脚本并不难。实际上,有一些生成器可以为您创建 db_update.php 文件!可以在 www.phpbbhacks.com/forums/db_generator.php 找到这样一个生成器。只需从 SQL 操作或文件中复制 SQL 查询,并将它们粘贴到这个或另一个生成器中,提交表单,您将看到 db_update.php 文件的代码。您可以直接从该页面下载文件,将其放置在您的论坛中,并以您运行作者提供的安装程序相同的方式运行该文件。
注意
一些 SQL 查询可能与 db_update.php 生成器不兼容。这些通常会产生在运行时显示解析错误的安装脚本。如果发生这种情况,请访问友好的 phpBB 支持论坛,并寻求帮助以使查询兼容。
为了手动更改数据库,你可以使用 phpMyAdmin 或其他类似的数据库管理工具。然而,在执行此操作之前,你可能需要编辑 SQL 查询。当你安装 phpBB 时,你有一个选项可以输入一个数据库表前缀。phpBB 使用此选项的值作为所有数据库表名的开头。修改中的每个查询都应该提及一个数据库表名,例如phpbb_posts或phpbb_config。如果你的选择的表前缀是myforum_,在使用查询之前,你需要将表名更改为myforum_posts和myforum_config。安装脚本文件通常会自动进行此更改,所以如果你不熟悉这个过程,你应该考虑生成一个。以下是一些查询,在更改表前缀前后可能看起来是这样的:
CREATE TABLE phpbb_tracker (
tracker_id mediumint(8) DEFAULT ‘0’ NOT NULL,
tracker1 tinyint(1) DEFAULT ‘0’ NOT NULL,
tracker2 varchar(40) NOT NULL,
PRIMARY KEY (tracker_id),
);
CREATE TABLE myforum_tracker (
tracker_id mediumint(8) DEFAULT ‘0’ NOT NULL,
tracker1 tinyint(1) DEFAULT ‘0’ NOT NULL,
tracker2 varchar(40) NOT NULL,
PRIMARY KEY (tracker_id),
);
INSERT INTO phpbb_tracker (tracker_id, tracker1, tracker2)
VALUES (1, 3,’Some text’);
INSERT INTO myforum_tracker (tracker_id, tracker1, tracker2)
VALUES (1, 3,’Some text’);
使用正确的格式编写查询后,打开 phpMyAdmin,如果需要,在左侧列中选择你的数据库。点击SQL标签或查询窗口链接。这两个选项都会加载一个包含大文本框的页面。从修改说明或文本文件中复制 SQL 查询,并将其粘贴到这个框中。点击执行按钮应该会自动在数据库上运行这些查询。
打开操作
这个简单的操作会告诉你需要编辑的文件的名字和位置。你应该在 WordPad 或你喜欢的文本编辑程序中打开这个文件,并准备好对其进行修改。如果你还没有备份文件,现在就备份。所有跟随打开操作的其他操作都应该在这个操作列出的文件上执行,直到你到达说明的末尾或另一个打开操作。
#
#-----[ OPEN ]------------------------------------------
#
includes/functions.php
查找操作
每个查找操作后面都跟着一行或多行代码,这些代码应该包含在最后一个打开操作中的文件内。你的目标是找到这段代码,这应该是一个简单的任务。大多数文本编辑程序,包括 WordPad,都有一个查找或搜索功能,这使得在整个文件中搜索变得快速且简单。查找功能应该可以通过程序的菜单访问,或者在 Windows 程序中,通过按Ctrl+F。
不幸的是,有些问题可能会使查找行变得繁琐。首先,phpBB 已经发布了几个版本。每个版本都有一定的代码更改,所以 phpBB 2.0 将针对早期版本进行一些修改,其中查找代码与最新版本的代码有很大不同。在这些情况下,如果你认为版本之间的相关更改似乎很小,那么通常最好不安装修改。另一个问题是,一些修改试图查找已经被其他修改更改或删除的代码。一些作者试图通过只列出每行的前几个字符来绕过这个问题。这种做法由于对查找指令之后动作的误解,又产生了另一个问题。最后,一些代码行在某些文件中出现了不止一次。你可能只需要编辑特定的出现,或者编辑所有实例。
我们如何解决这些问题?有时这并不容易。如果你找不到某些查找代码,首先尝试的解决方案是搜索代码的小部分。假设你很难找到这个指令的行:
#
#-----[ FIND ]------------------------------------------
#
‘SOME_TPL_VARIABLE’ => $some_php_variable,
寻找行中的关键部分,如SOME_TPL_VARIABLE,即使它已经被其他修改或 phpBB 的某个版本更改,也可能帮助你找到该行。在安装修改时,适应代码行的能力是一项关键技能,你可能需要随着时间的推移发展这项技能。
当处理文件中多次出现的行或代码块时,请记住,大多数修改都是根据从上到下的顺序编写的。比如说,你有一个包含两个查找命令的指令,第二个查找命令的代码在文件中出现了两次。作者通常是指让你在第一个查找命令的代码之后找到第一次出现的位置。
添加操作
有三种方法可以向文件中添加新代码:在...之前,添加;在...之后,添加;和替换为。这些添加操作将始终跟随查找操作,并参照查找操作中的代码。对于在...之前,添加操作,动作之后的代码应该放在文件中查找操作代码之前的一行。对于在...之后,添加操作,代码将放在查找操作代码之后的一行。替换为操作将删除查找操作的代码,并用新代码替换旧代码。
大部分情况下,这些是简单的步骤。关于之前添加和之后添加操作的一个要点非常重要,那就是始终将新代码放在新行上,与其他所有代码分开。正如已经提到的,一些修改作者在他们的查找操作中只包含部分代码行。这种做法的问题在于,修改用户倾向于在查找操作之后立即在同一行上添加新代码。这会将新代码直接放在原始代码的中间,从而产生一系列语法错误,这可能会使论坛无法访问。如果你总是通过在完全新的行上插入代码来在查找代码之前或之后添加代码,你应该能够避免这个问题。
为了说明文件代码应该如何看起来,这里有一些示例动作序列和正确的结果代码。为了这些例子的目的,假设一个包含以下代码的文件已经在打开操作中引用。
$number1 = $number2 = $number3 = 0;
$number1 = $x + $y;
$number2 = $y + $z;
$total = $number1 + $number2 + $number3;
echo ‘The total is: ‘ . $total;
?>
首先,一个简单的查找和之后添加的组合:
#
#-----[ FIND ]------------------------------------------
#
$number1 = $x + $y;
$number2 = $y + $z;
#
#-----[ AFTER, ADD ]------------------------------------------
#
$number3 = $a + $b;
这个序列应该创建:
$number1 = $number2 = $number3 = 0;
$number1 = $x + $y;
$number2 = $y + $z;
$number3 = $a + $b;
$total = $number1 + $number2 + $number3;
下一个查找和之前添加的组合:
#
#-----[ FIND ]------------------------------------------
#
$number1 = $x + $y;
$number2 = $y + $z;
#
#-----[ BEFORE, ADD ]------------------------------------------
#
$my_array = array(‘a’ => 1, ‘b’=> 2, ‘x’ => 3, ‘y’ => 4, ‘z’ => 5);
while( list($key, $value) = each($my_array) )
{
$$key = $value;
}
应用这个序列后,文件将包含:
$number1 = $number2 = $number3 = 0;
$my_array = array(‘a’ => 1, ‘b’=> 2, ‘x’ => 3, ‘y’ => 4, ‘z’ => 5);
while( list($key, $value) = each($my_array) )
{
$$key = $value;
}
$number1 = $x + $y;
$number2 = $y + $z;
一个查找操作后跟一个替换为操作可能是:
#
#-----[ FIND ]------------------------------------------
#
$total = $number1 + $number2 + $number3;
#
#-----[ REPLACE WITH ]------------------------------------------
#
$average = ($number1 + $number2 + $number3) / 3;
那个序列会将文件的结尾转换为以下代码片段。
$average = ($number1 + $number2 + $number3) / 3;
echo ‘The total is: ‘ . $total;
?>
最后,这里是对之前查找和之后添加序列的另一种版本。这次,查找操作只包含行的一部分。应用该序列的结果应该与给出完整行相同。
#
#-----[ FIND ]------------------------------------------
#
$number1 =
$number2 =
#
#-----[ AFTER, ADD ]------------------------------------------
#
$number3 = $a + $b;
内联操作
尽管你已经了解到在新的行上添加代码的重要性,但有时你需要在同一行内更改一段代码。内联操作用于此目的。这里有四种:内联查找;内联之前添加;内联之后添加;以及内联替换为。理想情况下,你会看到一个带有长段代码的查找操作,然后是一个带有该行短片段的内联查找,接着是其他三个内联操作之一。就像使用它们的正常对应物一样使用它们,但这次不要在单独的行上添加新代码。你实际上会在当前行内插入代码。在几个使用内联操作的修改中,你可能需要在几个不同的地方更改一行。
使用上面相同的简短文件,这里是一个内联替换为动作序列的例子,它编辑了一行中的两个部分。
#
#-----[ FIND ]------------------------------------------
#
echo ‘The total is: ‘ . $total;
#
#-----[ IN-LINE FIND ]------------------------------------------
#
total
#
#-----[ IN-LINE REPLACE WITH ]------------------------------------------
#
average
#
#-----[ IN-LINE FIND ]------------------------------------------
#
$total
#
#-----[ IN-LINE REPLACE WITH ]------------------------------------------
#
$average
那个序列会改变文件的结尾,看起来像这样:
$average = ($number1 + $number2 + $number3) / 3;
echo ‘The average is: ‘ . $average;
?>
最后一个操作
几乎每个修改的说明都以这个动作的某种变体结束:
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# End
这是说明的最后一步。它作为提醒,要求您保存更改,关闭任何剩余的打开文件,并在必要时将编辑后的文件传输到您的论坛。完成这些操作后,您应该完成修改安装。您应该使用管理员账户、普通用户账户,并在必要时使用版主账户彻底测试安装。许多修改为具有不同权限的账户添加了不同的功能。为了测试目的,最好一次只安装一个修改。如果您同时安装三个或四个修改,并在论坛中遇到错误,您可能很难找到原因。
以下表格提供了修改动作的快速参考:
动作名称
定义
复制
将一个或多个文件从一个位置复制到另一个位置。
SQL
在您的论坛数据库上运行一个或多个 SQL 查询。这些通常应该在安装修改的其余部分之前完成。
打开
打开文件以备编辑。从这一步开始直到最后一步或另一个打开操作,所有操作都应在该文件上执行。它后面跟着一个单个的文件名。
查找
这在文件中定位代码,并跟随代码。
之后,添加
在先前的查找操作之后的代码之后放置以下代码,在新的一行上。它始终跟随一个查找操作。
在之前,添加
在先前的查找操作之前的代码之前放置以下代码,在新的一行上。它始终跟随一个查找操作。
替换为
删除先前的查找操作中找到的代码,并在其位置替换以下代码。它始终跟随一个查找操作。
在行内查找
通常跟随一个查找操作。在较长的代码行中定位以下代码。
在行内之后,添加
在先前的行内查找代码之后放置以下代码,在同一行代码上。它始终跟随一个行内查找操作。
在行内之前,添加
在先前的行内查找代码之前放置以下代码,在同一行代码上。它始终跟随一个行内查找操作。
在行内替换为
删除先前的行内查找中的代码,并在同一行上替换为以下代码。它始终跟随一个行内查找操作。
保存/关闭所有文件
表示文件更改的结束,并提醒您保存更改。它是修改的最后一个动作。
添加 SQL
这是 SQL 动作的较旧形式,与该动作具有相同的意义。
模板的问题
修改安装的一个非常重要的方面仍然存在,就在您以为您已经完成的时候。当您安装修改时,您会发现几乎所有的修改或添加模板文件的说明中只会提到子 Silver 模板。到这时,您应该在您的论坛上至少安装了一个其他模板。由于存在如此多的模板,作者在说明中提及所有这些模板并不实际。由于每个 phpBB 论坛都可能在某个时候安装了子 Silver,并且许多模板都是基于子 Silver 构建的,所以只提到那个模板,并且有一个不言而喻的理解,即它实际上是对所有模板的引用。
模板的问题在于您必须为所有已安装的模板安装每个修改的模板文件更改,即使说明中没有告诉您这样做。此外,如果您安装了修改并后来安装了新的模板,您必须将这些修改应用到那些模板上。如果您忘记修改模板,使用该模板的任何论坛成员将无法访问修改的功能,除非他们切换到您编辑过的另一个模板。
这个领域另一个问题是模板本身的代码。虽然许多模板是从子 Silver 创建的,但相当多的是不是。后者往往在其文件中有一些非常不同的标记语言编码。除非您将其分解为单个模板变量,否则在查找操作中定位代码几乎是不可能的。您可能实际上必须重写新的模板文件或代码以匹配替代模板的外观,这可能会非常头疼。
卸载修改
有时,您可能需要在安装修改后将其移除。也许您发现两个修改相互冲突,或者修改没有达到您的期望。无论原因如何,卸载通常比安装更容易。
有两种方法可以移除修改对您文件所做的更改。由于您在编辑任何文件之前都创建了备份,因此您可以替换当前文件为那些备份副本。这将使论坛的文件恢复到修改安装之前的相同状态。如果您对文件所做的更改除了安装此修改之外,那么您不应该恢复备份文件。在这种情况下这样做会导致您其他更改丢失。
第二种方法是按照安装的说明进行操作,但反转动作命令。例如,如果说明有一个查找动作后跟一个添加动作,您将找到并删除添加动作的代码。在查找和替换组合的情况下,您将搜索替换代码,删除它,并将查找代码放置在那个位置。为了进一步说明这些概念,以下示例删除了在早期修改安装练习中添加到帖子中的搜索按钮。
行动时间——卸载小修改
在文本编辑程序中定位并打开您论坛的templates/subSilver/viewtopic_body.tpl文件。
使用文本编辑程序的搜索功能在文件中定位此行文本。再次强调,大多数程序允许通过菜单访问此功能或在 Windows 系统上按Ctrl+F。
//--> {postrow.SEARCH_IMG}
现在,定位该行中的文本{postrow.SEARCH_IMG}。
删除此文本及其前面的单个空格。该行应再次看起来像最初的样子:
//-->
保存并关闭文件。如有必要,将其上传到您的网站,替换那里的现有文件。如果您愿意,也可以用templates/subBook/viewtopic_body.tpl文件重复所有这些步骤。
前往您的论坛并查看任何帖子。您应该看到搜索图片不再显示。
发生了什么?
通过反转您为安装搜索按钮修改所采取的动作,您已经从您的论坛中移除了它。您不是找到原始代码并添加到它,而是搜索了修改后的代码。然后您移除了原始修改添加的额外代码。这恢复了被更改的文件到其原始状态。
移除其他更改
移除新文件和数据库更改的需求是之前示例中审查的两种移除文件更改方法共有的。修改添加的新文件处理起来既快又简单:只需删除它们。移除数据库更改是卸载的一个更复杂的方面;然而,phpMyAdmin 是一个方便的工具,可以简化这一过程。当一个修改添加了一个新表或表中的一列时,您可以在 phpMyAdmin 中找到这个添加项,并点击旁边的删除链接,这通常是一个垃圾桶图标。phpMyAdmin 将要求您确认删除(或称为当处理表或列时的删除,称为删除);这样做,更改就会消失。
示例修改
自 phpBB 首次出现以来,已经发布了数千个针对 phpBB 的修改版本,供公众使用。想想您可能想要添加到或从 phpBB 论坛中删除的任何功能,可能已经至少有一个修改版本。每周都会创建并发布新的修改,因此通过这种方法定制论坛的可能性是无限的。
最受欢迎的修改之一是庞大的文件附件修改模组,包含超过 140 个文件。它为 phpBB 的帖子论坛添加了新功能,允许用户上传文件,这些文件将附加并显示在他们的帖子中。另一个常用的例子是修改个人资料,以前称为“向个人资料添加新字段”。这种修改是一个向用户注册和编辑个人资料表单添加新信息字段的指南。可以添加多种不同类型的字段,从简单的文本输入框到下拉选择列表。新字段中存储的数据也可以在公共个人资料、主题、帖子和其他论坛中的其他地方显示。
数十种修改改变了或添加了新的 BBCodes。用户和管理管理工具、在线游戏、商店、聊天室、最近的主题、下载系统、phpBB 错误修复或升级以及网站门户是一些其他广泛使用的修改示例。
这些列表只是描述可用于您的修改类型的一个表面。如果您花时间查看列出修改的网站,您肯定会找到一些您想在论坛上安装的东西。如果您仔细查看,您可能会发现许多可用于自定义论坛的东西。
移动元素
可以在不花费时间搜索详细修改的情况下对论坛进行一些布局修改。虽然您可以找到这些修改的下载,但修改通常处理布局问题不佳。模板之间的差异,有时是其他修改创建的,经常迫使论坛管理员在没有帮助的情况下重新排列布局。为了移动这样的元素,您至少需要具备基本的 HTML 编码知识。
您可能已经注意到,subSilver 和 subBook 在其论坛索引页面的底部有一些统计数据和一个登录框。您可以做出的一种流行更改是将这些元素中的一个或多个移动到页面的另一个部分。通过在index_body.tpl中找到创建它们的布局代码并将其放置在文件顶部附近,您可以强调用户应该登录或论坛上的用户和帖子数量。
向您的论坛添加新元素
在您的论坛中创建新区域通常需要完整的修改,包括说明。然而,有一些简单的事情可以在不进行修改的情况下完成。其中之一是在论坛的页眉菜单中添加一个新的链接。
行动时间——添加菜单链接
定位并打开用于编辑的templates/subBook/overall_header.tpl文件。如果您喜欢,可以使用subSilver overall_header.tpl文件代替。
在此文件中找到包含代码的行。该行的开头将有几个制表符。
在你刚才找到的代码之前的新行中插入以下代码:
{L_WHO_IS_ONLINE}
4. 将更改保存到文件并查看您的论坛。你可能需要重新加载或刷新论坛页面,但你应该会看到一个新的在线用户链接,它位于论坛顶部附近的链接之一。
发生了什么?
你的论坛的菜单链接,如个人资料、常见问题解答和搜索,是由存储在overall_header.tpl模板文件中的 HTML 创建的。通过复制创建这些链接的一行或一系列行并稍微修改这一行,你可以创建一个新的菜单链接。在这种情况下,新的链接指向viewonline.php文件,该文件显示当前正在访问论坛的用户列表。如果这些步骤被写成修改,它们可能看起来像这样:
#
#-----[ OPEN ]------------------------------------------
#
templates/subBook/overall_header.tpl
#
#-----[ FIND ]------------------------------------------
#
#
#-----[ BEFORE, ADD ]------------------------------------------
#
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# End
添加新语言
论坛管理员常见的另一种修改是安装新的语言文件。如果你计划让许多精通英语以外的语言或无法阅读英语的访客访问,你可能需要从 phpBB.com 的下载部分下载并安装一个语言包。每个语言包都会在用户资料和行政控制面板的板语言下拉列表中添加一个新选项。选择该选项将使论坛以该语言显示。帖子不会翻译,但许多链接和其他默认文本将会翻译。
在添加语言包时,你应该记住你可能需要编辑新的语言文件。一些修改可能包括新的语言文件或编辑语言文件的说明。如果你添加了新的语言而没有将这些更改复制到该语言,那么一些文本将不会出现在你的论坛上。这种情况与修改和模板类似;你必须编辑每种语言,即使修改说明只提到一种。
摘要
phpBB 在许多方面都是一款优秀且功能强大的论坛软件。定制可能性是其中最强有力的。通过你在本章中获得的知识和技能,你可以给你的论坛进行一次彻底的面貌更新,或者扩展其功能,使其超越你想象的任何事物。具体来说,你学习了:
phpBB 风格创建论坛的外观
编辑样式组件允许你改变外观的任何方面
修改是更改 phpBB 功能的说明,通常具有特殊格式
如何安装和删除从网站下载的样式和修改
编辑 phpBB 文件和解决错误的方法
后续章节将通过讨论创建个人风格和修改的细节来对这些主题进行一些扩展。
第五章。论坛管理
在前面的章节中,您已经了解到您的版面是如何工作的以及如何自定义其外观。一些高级主题被跳过了,这样您可以专注于最重要的和最广泛使用的 phpBB 功能。现在是时候掌握 phpBB,并深入了解将使您成为真正的 power-phpBB-admin 的细节。
在本章中,您将了解:
使您的版面多语言化
配置头像
管理表情符号
分配等级
论坛权限
用户权限
用户组和组权限
数据库备份和恢复——再次审视
人类的一面——版主、网络战争和封禁
使您的版面多语言化
phpBB 是为了支持同一版面中的多种语言而开发的。整个界面(屏幕、消息、按钮、电子邮件等)被翻译成 50 多种语言。翻译者不是 phpBB 团队的成员,而是母语为英语的志愿者,这保证了翻译的正确性和准备好安装到您的版面。因此,您为您的社区提供了更好的服务,为他们提供了一个他们感到更舒适的界面。
行动时间——为您的论坛添加西班牙语支持
前往 phpBB.com 下载页面 www.phpbb.com/downloads.php。
滚动到语言和图像包部分,找到西班牙语(西班牙语)行:
选择您首选的压缩类型——ZIP 或 GZIP,并下载所选格式的两个存档。让我们以 ZIP 格式为例。第一个 ZIP 文件包含 phpBB 界面的文本,第二个包含界面图形,如新帖子、引用等按钮。这些图形仅适用于默认的 subSilver 主题。
解压缩第一个文件,lang_spanish.zip(如果您使用托管服务,请通过 FTP 上传),到您的 phpBB 目录中的language目录。这应该在language目录下创建一个lang_spanish子目录。
解压缩第二个文件,subSilver_spanish.zip,到选定的目录。当您这样做时,您会注意到它有一个嵌套的目录结构,在您的选定目录中,您将有一个subSilver/images/lang_spanish路径。如果您遵循此路径,您将找到许多 GIF 文件。
将最后一个目录(lang_spanish,包含所有 GIF 文件的目录)复制(和/或通过 FTP)到您的相应 phpBB 目录,templates/subSilver/images。
发生了什么?
在您成功解压缩 ZIP 存档并复制其内容后,您的论坛结构将如下截图所示:
现在如果您登录到您的论坛并访问您的个人资料,您会看到版面语言下拉菜单现在有两个值,如图所示:
如果您将偏好设置改为西班牙语,您将看到整个论坛都使用西班牙语界面。¡Hola!
现在您已安装了两种语言,但英语仍然是论坛的默认语言。如果您的社区主要是西班牙语使用者,您可以考虑更改默认语言。为此,您需要前往管理员面板,并在常规管理下遵循配置链接。
头像:启用和配置
头像是那些位于所有帖子用户名下的小图像,在查看用户资料时也会显示。在 phpBB 中它们默认是禁用的,但可以通过管理员面板轻松启用。
使用头像有三个选项,它们不是互斥的;您可以选择其中的任意数量。
第一个选项是启用所谓的相册头像:可以作为头像使用的图像由您选择,并托管在 phpBB 运行的同一服务器上。用户只能从提供的图像中选择他们偏好的头像。
第二个选项是启用远程头像:头像图像可以托管在互联网上的任何服务器上,用户只需通过图像 URL 地址(以http://开头)链接到它。
第三个选项是允许用户上传头像:用户将他们的图片复制到您的服务器上,phpBB 在显示帖子时会从那里读取它们。
在做出决定时,所有这些选项都有其优缺点需要考虑。
远程头像在服务器安全方面是您最安全的赌注;一切都掌握在用户手中,您的论坛不负责托管或管理这些图像。然而,一些用户可能想要使用硬盘上的图像,而这些图像在互联网上无处可寻。此外,由于互联网的动态性,许多页面甚至整个网站可能在一天之内出现和消失。这意味着今天用户选择的图像明天可能就不可用了,并且一些浏览器(如 Internet Explorer)将显示一个损坏的图像图标,这看起来并不美观。或者即使头像可用,但托管在速度较慢的网站上,它可能会减慢整个页面的加载速度。当版主使用不允许热链接的服务器上的头像时,可能会出现问题。此外,您无法控制头像的大小。有人可能会将一个非常大的图片作为头像,从而破坏整个主题的外观。
使用相册头像,您可以控制图像的大小,因为您是选择它们的人。缺点是这些图像会增加您的带宽使用量,并且对用户来说过于限制性,因为他们只能从预定义的选择中挑选一个图像。
上传的头像可能会导致带宽增加,这对于用户众多的繁忙论坛来说可能是一个问题。另一个问题可能是,一些主机可能不允许您使用文件上传,因为普遍的担忧是用户对服务器所做的任何操作都可能具有潜在的危险性。除此之外,上传的头像还有许多好处,例如定义图像的像素大小和字节数。使用上传的头像,用户可以自由使用他们能找到的任何可能的图像,而不仅仅是互联网上可用的图像。
要配置头像,您需要以管理员身份登录,转到管理员面板,并显示通用配置表:
这是在配置表中的头像部分看起来像什么:
前三个字段代表前面讨论的三个头像选项。接下来的三个字段仅适用于上传的头像,而最后一个字段仅用于相册头像。
要更熟悉头像选项,最好的做法就是启用所有三个选项,并尝试使用头像。之后,您就可以做出选择了。
小贴士
获取相册头像
您可以从www.phpbb.com/styles/获取您相册的头像。点击下载,然后头像。将包解压到配置中指定的avatars目录内的子文件夹中(默认为images/avatars/gallery)。
小贴士
不要忘记权限
如果您启用了头像上传,您必须确保指定的包含图像的目录(默认为images/avatars)是可写的,这意味着 Linux 系统上的chmod 777。在第二章中解释了设置文件权限。
您可以为相册头像设置类别;实际上,您至少需要有一个类别。这意味着您必须将所有相册头像复制到主头像相册目录的子目录中。例如,您会将dog.gif和cat.gif复制到images/avatars/gallery/pets,即使您托管的是一个宠物爱好者网站,而pets将是您永远需要的唯一相册。无论如何,这个功能有助于您保持相册的有序。
管理表情符号
phpBB 自带一组默认的表情符号,但您可以更改默认设置或添加新的表情符号。实际上,您的用户可能要求您添加更多表情符号,因为默认的表情符号可能不足以表达他们的情感。或者,可能只是因为您的某些成员习惯在其他他们访问的论坛中看到不同的表情符号,并怀念您论坛中的那些可爱图形。
如您所知,表情符号和表情图标是同义词。"表情符号"是一个更广泛使用的术语,而"表情图标"可能更准确,因为并非所有的小圆脸都在微笑。另一个有趣的事情是,"smilie"这个词可以拼写成"smilie"和"smiley"。phpBB 更喜欢"smiley",但谷歌搜索结果显示"smilie"的结果更多,所以它显然更常用。在这本书中,我们采用了"smilie"。
phpBB 为您提供以下功能:
编辑或删除现有表情符号
逐个添加新表情符号
使用特殊的.pak文件批量添加新表情符号
使用您当前安装的表情符号创建.pak文件;如果您已经创建了许多想要与其他 phpBB 管理员分享的表情符号,这是一个好主意。
表情符号的特性
让我们先看看表情符号由什么组成。每个表情符号都有:
一个图像:如和这样的表情符号图像位于您论坛目录结构的images/smilies目录中。
一段代码:代码是发帖者需要输入(或通过点击相应的图像自动输入)的字符序列,以便在帖子中显示所选表情符号。对于前面提到的示例图标,相应的代码是😄和:?。有时一个表情符号可能有多个代码,因此有几种方法可以在帖子中包含相同的图像。您可以使用😄或😄或😁,结果始终是图像。
一种情感:这是表情符号的人类可读表示。它可能(取决于浏览器)在读者将鼠标悬停在帖子表情符号上时显示为工具提示(在 HTML 术语中,它是img标签的alt属性)。
这里有一对图像展示了示例。左侧插图显示了写作时的帖子;右侧插图显示了在 Internet Explorer 浏览器窗口中(鼠标悬停在表情符号上)显示的帖子。
表情符号管理面板
所有表情符号操作都可以通过管理面板中的表情符号链接在常规管理部分下访问:
点击此链接将显示现有表情符号列表:
这张插图显示了列表被截断在中间。随着新表情符号的添加,列表可能会变得相当长。您可以看到表情符号的所有属性——代码、图像以及它们所代表的情感——以及您可以对其执行的可能操作。
在进行以下练习之前,备份您的images/smilies目录可能是个好主意,以防您想恢复到默认表情符号。
编辑或删除表情符号
要编辑或删除一个表情符号,请使用旁边相应的链接。
在操作时要小心,因为当您点击删除时,将不会有“您确定吗?”的确认;表情符号将被永久删除。删除表情符号意味着它不能再用于帖子中;这也意味着任何使用此表情符号的旧帖子将显示代码,但不会显示图像。
删除表情符号不会从服务器上删除实际图像,因为很可能这个图像也被其他表情符号使用。例如,如果您删除了带有😄代码的表情符号,的图像不会被删除,因为它也被😄表情符号使用。即使您删除了使用特定图像的所有表情符号,该图像也会留在服务器上,并且可以通过定义新的表情符号稍后使用。
要编辑表情符号,请使用旁边的编辑链接。这将弹出一个包含所有表情符号属性表单,如图所示。
表情图像文件下拉字段列出了您板安装的images/smilies文件夹中找到的所有文件。从下拉菜单中选择一个图像文件会显示此图像在旁边。
添加新表情符号
添加新表情符号最简单的方法是使用现有图像。
行动时间——使用现有图像添加新表情符号
在表情符号管理面板中,点击添加新表情符号按钮。显示的表单与编辑表单相同。
在第一个字段中,输入:mg:。
在第二个字段(下拉菜单)中选择icon_mrgreen.gif。
在最后一个字段中,输入Mr. Green。
点击提交。
发生了什么?
您使用相同的现有图像创建了一个新的格林先生表情符号。换句话说,您为用户使用此表情符号定义了新的方式。现在用户可以通过两种方式在他们的帖子中显示格林先生:使用默认代码:mrgreen:或新代码:mg:。
现在让我们添加一个全新的表情符号。假设您取了格林先生的图标并将其全部涂成橙色。现在让我们称这位先生为 Mr. Orange 并将文件命名为mr_orange.gif。
行动时间——添加自定义表情符号
将mr_orange.gif文件复制/FTP 到您的images/smilies目录。
前往表情符号管理面板并点击添加新表情符号按钮。
在第一个字段中,输入:mrorange:。
在第二个字段中选择mr_orange.gif。
在最后一个字段中,输入Mr. Orange。
点击提交。
发生了什么?
您刚刚为您的板添加了一个全新的闪亮表情符号。您现在可以在表情符号列表中看到它。
使用.pak 文件添加表情符号
您可能想知道如何创建像上面示例中使用的 GIF 文件。嗯,这是一个超出本书范围的话题,但您可以在互联网上找到许多工具和教程。如果您不想处理图形,不用担心;对您来说有好事。网上有很多表情符号图像可供下载和使用在您的论坛上。为了简化安装,phpBB 有一个使用.pak文件批量添加表情符号的功能。这个“pak”代表“包”。
如果您访问www.phpbb.com/styles,点击下载,然后表情符号,您将看到一系列可供选择的表情符号包。让我们选择其中一个包下载,名为更多表情符号的包。
如果您下载eusasmiles.zip并解压它,您会看到它包含多个 GIF 文件和一个eusa.pak文件。不要被这个文件未知的扩展名吓到,它只是一个纯文本文件。如果您用任何文本编辑程序(如 Windows 中的记事本或 WordPad)打开它并查看文件内容,您会注意到它只包含表情符号属性,由字符序列=+:用作分隔符。
例如,文件的最后一行说:
eusa_silenced.gif=+:Silenced=+::-#
这意味着:-#是表示静音的表情符号代码,其图标图像名为eusa_silenced.gif。
现在让我们使用提供的.pak文件快速将大量新表情符号添加到论坛中。
行动时间——使用.pak 文件添加表情符号
将未压缩的内容(GIF 图像和.pak 文件)复制到您的公告板images/smilies目录中。
前往管理面板中的表情符号管理区域,并点击导入表情符号包按钮。您将看到表情符号包导入表单。
在下拉菜单中,选择eusa.pak。
保持其他字段不变。它们代表您对现有表情符号的处理选项以及如何处理任何冲突。
点击导入表情符号。
发生了什么?
您一次添加了大量的新表情符号。您现在可以在表情符号列表中看到它们,就在您在上一个练习中添加的橙先生表情符号之后。新的表情符号列表将看起来像这样:
创建.pak 文件
您可以使用现有的表情符号配置创建一个.pak文件。您可以用它进行备份或分享您的图标。比如说,您不仅创建了橙先生,还创建了白先生、粉先生、棕先生和金发先生,并且按照为橙先生相同的程序手动添加了它们。
现在让我们创建一个.pak文件,该文件将包含您已添加的所有表情符号属性,这样您就可以与其他 phpBB 管理员分享您的表情符号。
注意
本章中使用的图片可在书籍的下载区域 www.packtpub.com 获取。
动手时间——创建 .pak 文件
前往表情符号管理并点击 创建表情符号包 按钮。
您可以获取有关使用 .pak 文件的信息,以及下载为您生成的 .pak 文件的选择。下载它。默认情况下,该文件名为 smilies.pak,但您始终可以将其重命名为其他名称,例如 reservoir_dogs.pak 等。
包含文件包含您论坛上所有表情符号的所有属性,但实际上您只需要您的 五个 自定义表情符号。因此,在文本编辑器中打开 .pak 文件,删除所有不必要的行,只留下您的五行。现在 .pak 文件的内容应该看起来像:
mr_orange.gif=+:Mr. Orange=+::mrorange: mr_white.gif=+:Mr. White=+::mrwhite: mr_pink.gif=+:Mr. Pink=+::mrpink: mr_brown.gif=+:Mr. Brown=+::mrbrown: mr_blonde.gif=+:Mr. Blonde=+::mrblonde:
将这个 .pak 文件与五个图片一起压缩。
发生了什么?
您已经创建了一个包含您创建的所有表情符号的 .pak 文件。如果您想安装您自定义的表情符号,您可以将其发送给其他 phpBB 管理员。
分配等级
等级是给予社区成员参与信用的一种另一种方式。默认情况下只有一个等级:网站管理员 等级。您可以创建两种类型的等级:按帖子数量划分的等级 和 特殊等级。第一种类型的等级是自动的,并且随着成员不断发帖而分配。第二种类型不依赖于帖子数量,您可以根据需要使用管理面板中的用户管理功能进行分配。
等级被赋予名称,通常像 新用户、爱好者、论坛迷 等这样的名称。等级可以可选地包含等级图片。当查看用户的帖子时,分配给用户的等级名称将显示在用户名下方,等级图片将显示在等级名称下方,在头像上方。以下是一个分配等级时帖子作者信息区域的外观示例:
在这个示例中,The Dude 是您从上一章中已经知道的用户名,论坛巫师 是等级名称,五个星星是等级图片,而油漆刷点画是用户的头像。
以下示例将帮助您获得一些分配等级的实际经验。为了第一个示例,让我们假设您已经创建了五个等级图片。这些图片是 GIF 格式,分别显示一个、两个、三个、四个和五个蓝色星星,如下所示:
rank1.gif:
rank2.gif:
rank3.gif:
rank4.gif:
rank5.gif:
如果制作 GIF 文件不是您的强项,别担心,您可以从互联网上下载等级图片:当然,一个可以查看的地方是 phpBB.com 网站。访问样式部分,然后点击 下载,接着点击 等级图片。您也可以在 phpBBHacks 网站上找到许多等级图片,网址为 www.phpbbhacks.com/rankimages.php。
行动时间——创建自动等级
在您的论坛的 images 目录中,创建一个名为 ranks 的子目录。这将把与等级相关的图片与其他图片分开。
将上面列出的文件(rank1.gif 至 rank5.gif)复制到新创建的目录中。
在管理面板中,点击管理菜单中的 等级 链接(最后一个链接)。
点击 添加新等级 按钮。
您将看到 等级管理 表单。按照说明填写:
点击 提交。
重复步骤 4 至 6,直到使用完所有等级图片。最后,您的等级设置将如下所示:
发生了什么?
您已成功设置了一个自动排名系统,该系统将在每个成员的帖子用户名后显示等级名称和等级图片。具体的等级将由 phpBB 根据该成员的总帖子数来确定。
实际上,您可能希望使用更多的帖子数量,但为了测试功能,这已经足够了。
现在我们来看看创建特殊等级的程序以及如何将特殊等级分配给您认为特别成员的方法。
行动时间——创建和分配特殊等级
在等级列表中点击 添加新等级。
按照说明填写表单:
点击 提交
现在,在左侧菜单中,点击 用户管理 部分的 管理 链接。
在文本框中输入 The Dude 并点击 查找用户。
滚动到用户管理表单的底部。在 等级标题 下拉菜单中,选择 年度达人。
点击 提交。
发生了什么?
步骤 1-3:您创建了一个特殊等级,这意味着它与帖子数量无关。最小帖子数 字段留空,因为它不适用于特殊等级。实际上,即使您在其中输入了某些内容,phpBB 也会忽略该值。在这个例子中,您没有创建新的等级图片,而是重新使用了现有的表情图片。
步骤 4-7:您已将新创建的特殊等级分配给用户。如果您现在访问您的论坛前端,并找到 The Dude 的帖子,您将看到新的等级。
理解论坛权限
论坛权限已在 第三章 中讨论,但现在我们将采取更深入的方法,以便我们可以更精确地指定谁可以在您的论坛上做什么。
让我们从定义两个重要术语开始:权限类型和权限级别。
权限类型和权限级别
权限类型和权限级别是处理 phpBB 权限时的重要术语,理解这些将有助于你在考虑如何分配和控制权限时:
权限类型是用户在版面上可以执行的操作,如查看、回复、投票等。当你考虑权限类型时,想想“什么”,在“可以做什么?”
权限级别反映了关于谁可以执行特定操作的限制。每个用户至少有一个权限级别。当你考虑权限级别时,想想“谁”在“谁可以做到?”
以下列表讨论了存在的权限类型(“什么”),以及它们为用户提供的能力。(你已经知道这些动作的含义,因为它们在前面的章节中已详细描述。)
视图:用户可以看到在版面首页存在一个论坛。
阅读:用户可以列出论坛主题,阅读帖子,查看成员资料和他们的联系信息。
回复:用户可以在现有主题中发表帖子。
发帖:用户可以开始新主题。
编辑:用户可以编辑自己的帖子。
删除:用户可以删除自己的帖子,前提是还没有人回复过它们。
置顶:用户可以开始置顶主题。这取决于帖子权限——如果你不能发帖,你当然不能发置顶主题。
公告:用户可以开始公告。就像置顶类型一样,帖子权限是一个先决条件。
投票:用户可以在投票中投票。
创建投票:用户可以为其他人创建投票。
权限级别,或“谁”,也可以被视为用户类型。
这里是可能的权限级别:
所有人:访问该版面的人;这包括当前未登录的成员。
注册用户:在版面上注册并当前登录的成员。
私人:一个单独分配的特殊权限级别。为了使处于此级别的用户能够与其他人私下交流,必须授予该用户对私人论坛的私人访问权限。这是权限中最复杂的一部分,所以如果你还不理解,不要害怕。这里将有一些例子来阐明这个概念。
版主:可以对该论坛做任何事情的版主。
管理员:版面管理员(就像你这样的人,可以访问管理面板)。
简单和高级模式设置权限
如你所知,有两种设置权限的方式:简单模式和高级模式。简单模式已在第三章中讨论,正如你所知,它为你提供了预定义的权限选项。
如果你访问高级模式,你会看到我们上面讨论的所有可能的权限类型和权限级别。为此,以管理员身份登录,转到管理员面板,在论坛管理部分点击权限,查找任何论坛,然后点击高级模式。以下是你会看到的内容:
此屏幕显示了所有权限类型(显示为表头)和权限级别(这些是下拉框中的值)。上面插图所示的高级权限在简单模式中显示为注册用户,如下面的插图所示:
我们已经看到简单模式是一种更快、更简单的方式来设置权限。现在让我们找出简单模式——公开、注册、私人和版主——的确切含义,以及它们组合了哪些高级权限设置。
关于这些模式的大致想法是,它们定义了谁可以在所选论坛中发帖(例如,所有人都可以在公开论坛中发帖,但只有登录的成员可以在注册用户论坛中发帖,等等)。
除了公开模式外,所有其他简单模式都有一个选项,其名称中包含[隐藏]。这意味着没有足够权限的用户不仅不能发帖,甚至无法看到这样的论坛存在。
这里是对简单模式权限的更详细解释:
公开:所有人(权限级别 ALL)都可以查看公开论坛,阅读它,回复话题,并开始新话题。注册并登录的成员(权限级别 REG)甚至可以编辑和删除自己的帖子、投票和创建投票。
注册用户:所有人都可以查看和阅读论坛。注册用户(REG)可以发帖、开始话题、编辑和删除自己的帖子、投票和开始投票。
注册[隐藏]:与上述相同,但所有人现在都无法查看或阅读论坛——他们必须注册才能这样做。
私人:论坛对所有用户可见,仅为了看到它的存在,但它是私人的,只有明确允许访问此论坛的用户才能阅读帖子、发帖、开始话题、编辑和删除自己的帖子、投票和开始投票。本章的下两个部分将解释如何授予用户私人访问权限。关于私人论坛的另一个特定之处在于,私人成员也可以发表粘性帖子。然而,公告仍然是“仅限版主”区域。
私人[隐藏]:与上述相同,但所有人现在都无法看到这个论坛的存在。这是一个真正受保护和私人的论坛。
版主:与注册用户和私人相同,但只有版主可以阅读、发帖、开始话题、投票等。一个用户必须在这个论坛中是版主才能使用它。在其他论坛中成为版主并不意味着用户可以访问这个论坛。
版主[隐藏]:与上述内容相同,除了 ALL 甚至看不到这样的论坛存在。
下表解释了与上述要点相同的内容,但更详细。你会发现这实际上是一种理解权限的好方法。
x
公开
注册用户
注册用户[隐藏]
私人
私人[隐藏]
版主
版主[隐藏]
查看
ALL
ALL
REG
ALL
PRIVATE
ALL
MOD
阅读
ALL
ALL
REG
PRIVATE
PRIVATE
MOD
MOD
发布
ALL
REG
REG
PRIVATE
PRIVATE
MOD
MOD
回复
ALL
REG
REG
PRIVATE
PRIVATE
MOD
MOD
编辑
REG
REG
REG
PRIVATE
PRIVATE
MOD
MOD
删除
REG
REG
REG
PRIVATE
PRIVATE
MOD
MOD
置顶
MOD
MOD
MOD
PRIVATE
PRIVATE
MOD
MOD
公告
MOD
MOD
MOD
MOD
MOD
MOD
MOD
投票
REG
REG
REG
PRIVATE
PRIVATE
MOD
MOD
创建投票
REG
REG
REG
PRIVATE
PRIVATE
MOD
MOD
在设置权限时,选择一种简单的模式总是一个好主意。这些模式已经被 phpBB 团队精心挑选,以匹配最常用的论坛类型。如果你觉得你需要不同的东西,你总是可以切换到高级模式。在这种情况下,首先使用简单模式设置和保存权限,然后再编辑它们,并切换到高级模式进行微调。
行动时间——创建和微调私人论坛
以管理员身份登录并转到管理员面板。
前往论坛管理下的管理。
在这个类别中创建一个新的类别名为特殊论坛,然后在这个类别中创建一个新的论坛名为The Dudes 论坛。
在论坛管理下点击权限链接。
从选择一个论坛下拉菜单中选择The Dudes 论坛并点击查找论坛。
您现在位于论坛权限控制区域和简单模式。
选择私人[隐藏]并点击提交。
重复步骤 5。
点击高级模式以切换到更强大的编辑表单。
在置顶列中,将 PRIVATE 值更改为 MOD。
点击提交以保存设置。
发生了什么
步骤 1-3:您已创建了一个新的类别和一个新的论坛。
步骤 4-7:您已使用简单模式设置论坛权限。您已设置权限,以便只有特殊私人成员可以查看、阅读、发布等,在论坛上。唯一私人成员不能做的事情是发布公告。(当然,如果用户不是版主,他们只能编辑或删除他们自己的帖子,而不能编辑其他私人成员的帖子。)
步骤 8-11:您再次设置了权限,这次使用的是高级模式,并禁止私人成员发布置顶帖子。
现在,如果你访问你的论坛首页,你会看到新的类别和新的论坛(因为你以管理员身份登录,可以查看和做任何事情),但一旦你登出,论坛和整个类别将不再可见。
在接下来的两个部分中,我们将了解如何通过将某些成员设为私有成员,使私有论坛对某些成员可见。
理解用户权限
你已经知道如何使用管理员面板的权限区域将用户设为版主;让我们看看你还能做什么。如果你记得,用户权限可以通过用户管理部分下的权限链接访问:
你可以看到,除了在这里设置版主状态外,你还可以为每个论坛指定用户权限(换句话说,指定仅适用于特定用户的论坛权限)。请注意,您只能为此选项使用私有论坛;对于所有其他类型的论坛,论坛权限将应用,并且用户权限不能覆盖它们。
注意
根据定义,私有论坛至少设置了一种权限类型为私有。
在上一节中,我们将Dudes 论坛创建为一个私有论坛,因此现在在用户权限控制区域,我们可以允许或禁止用户访问私有论坛。允许访问意味着此用户成为私有成员,可以执行私有成员被允许执行的所有操作——用户将拥有论坛管理中为私有级别设置的权限类型(例如阅读、发帖等)。
行动时间——将 Dudes 论坛的 Dude 设为私有用户
以管理员身份登录并转到管理面板。
在用户管理下选择权限。
输入The Dude并点击查找用户。在此阶段,你会看到类似于本节开头所示的上一幅插图。
在Dudes 论坛行中,将第一个下拉菜单从禁止访问更改为允许访问。
点击提交以保存权限设置。
发生了什么?
你已经允许 The Dude 访问私有 Dudes 论坛。通过这样做,你使 The Dude 成为此论坛的私有成员,并让他享受论坛管理员中设置为私有的所有权限类型。
如果你再次重复步骤 1-4,然后点击高级模式,你会看到一个如下所示的屏幕:
高级模式表单允许你在每个用户的基础上更加精确,通过关闭默认允许私有成员的某些权限类型。在置顶和公告列中,你没有选项,因为这些权限类型在设置论坛权限时被设置为 MOD 而不是私有。
有另一种限制用户权限的方法,这与权限无关——允许或拒绝每个用户的私人消息和头像,以及激活或停用用户的能力。这可以通过在管理员面板(用户管理员部分下的管理链接)中编辑用户的个人资料并使用以下说明中的仅管理员可见的特殊字段来完成:
用户组和群组权限
用户组是您根据认为合适的某些标准创建用户组的一种方式。您不必使用用户组——在默认的 phpBB 安装中,不存在任何组,但这可能是一个有用的功能。
用户可以通过使用用户组 顶部导航菜单图标来访问用户组。作为管理员,您也可以使用此链接;它还为您提供了某些管理选项。当群组管理员访问此链接时,也会弹出管理群组的界面。
每个群组都有一个管理员。这位社区成员负责管理群组,不要与论坛管理员混淆。群组管理员在论坛主题或帖子中没有特殊权限;他们只在管理的群组中拥有特殊权限。他们可以向群组添加和移除成员,可以接受或拒绝成员申请,并可以更改群组类型。
存在哪些类型的群组?一个群组可以是公开的、封闭的或隐藏的。
一个公开的群组对每个人都是可见的,并接受新成员。为了成为群组成员,用户需要申请加入。群组管理员可以接受或拒绝申请。他或她还可以在不要求这些成员先申请的情况下添加成员到群组。
一个封闭的群组是不接受申请的群组。群组管理员仍然可以添加新成员。
一个隐藏的群组就像封闭群组,但不会显示给用户。只有登录的群组成员才能看到它。群组管理员会添加新成员。
行动时间——创建新群组
以管理员身份登录并转到管理面板。
在群组管理员菜单部分下点击管理链接:
点击创建新群组按钮。
按照所示填写表格:
点击提交。
发生了什么?
您已成功创建了一个名为测试的新用户组,世界闻名的用户The Dude担任管理员。这个群组是公开的,并接受成员申请。
如果您现在访问论坛的前端,转到用户组,查看测试群组的信息,您将看到以下屏幕:
由于你仍然以管理员身份登录,你可以看到更改组类型和添加/删除成员的组管理员选项。你不会看到会员申请界面,因为没有当前申请。此外,因为你不是这个公开组的成员,你看到的是加入组按钮。
点击加入组按钮申请成为组成员。这将向组管理员发送一封电子邮件,通知有新的待处理申请。管理员登录,进入用户组(上面的屏幕),接受或拒绝此申请。如果申请被接受,你成为组的成员,并会收到一封电子邮件通知这一事实。
行动时间—编辑组
你仍然以管理员身份登录;前往管理面板。
在组管理员下,点击管理。
测试组被选中;点击查找组。
如所示更改组名和描述。同时,将组状态更改为隐藏组。
点击提交以保存更改。
发生了什么?
你已成功编辑了组。这是一件简单的事情,就像创建组一样。但这次你在编辑组表单上有两个额外的复选框:你可以删除组,并且在更改组管理员时,你可以选择前管理员是否作为普通成员留在组中或从组中移除。
组权限
管理员有设置组权限的选项。组管理员无法控制它们。组权限的工作方式与用户权限相同。唯一的区别是你可以为每个组设置一次权限类型,它将适用于组中的所有成员。这可以节省你大量的工作。尽管成员是组的组成部分并且有组权限,但你仍然可以基于每个用户覆盖这些权限。这意味着,例如,你可以指定用户组的所有成员都可以发布公告,但随后禁止组中特定用户这样做。
组权限可通过管理面板导航菜单中的权限链接访问组管理员部分:
你可能想要执行的一个常见任务是创建一个只能由特定用户使用的特殊隐藏论坛(例如,一个供版主使用的论坛,他们可以在不公开讨论的情况下讨论版面或用户相关的问题)。
为了做到这一点,你需要:
创建一个私有[隐藏]论坛。
创建一个私有组。
允许组访问使用私有论坛。
到目前为止,我们已经讨论了前两点。我们已经创建了一个名为 The Dudes 论坛的特殊私有隐藏论坛,并且你有一个名为 The Dudes gang 的隐藏组。现在最后一点:给予 The Dudes gang 访问 The Dudes 论坛的权限。
行动时间—设置分组权限
以管理员身份登录,并转到管理面板。
在导航菜单的分组管理员部分下选择权限。
在下一屏中,选择The Dudes gang并点击查找分组。
在分组权限控制表单中,切换到高级模式。
将The Dudes 论坛行上的所有下拉菜单从关闭更改为开启。
点击提交以保存权限设置。
发生了什么?
您已经为The Dudes gang用户组授予了权限,使其能够在The Dudes 论坛中阅读、发帖、投票等。这里有一些额外的点供您思考并实验。
您可以使用高级模式通过选择性地开启/关闭来授予权限;没有必要全部开启或全部关闭。
简单模式不能用于设置分组权限,在本书所基于的 phpBB 版本中不能使用。
论坛版主和分组版主是完全独立的。The Dude 是 The Dudes gang 的分组版主,但不是 The Dudes 论坛的论坛版主。
您可以通过设置组的是否版主状态,使组中的每个人都能成为版主。
分组权限是设置权限的一种快速方式,但您仍然可以使用用户权限来更具体地设置。用户权限会覆盖分组权限。
您可以拥有几个具有不同论坛访问权限的用户组。例如,您可以设置一个名为“初级 Dudes”的公开组,该组只能阅读****The Dudes 论坛,而古老的The Dudes gang用户组仍然可以发帖。
再次查看数据库备份和恢复
您已经知道如何使用 phpBB 的备份和恢复工具。提到过,如果您有一个非常大的数据库,并且您的托管提供商对服务器资源使用设置了某些规则,它们可能不会按预期工作。所以现在让我们看看使用其他方法来实现相同的结果。MySQL 是本节中使用的 RDBMS;它是运行 phpBB 最流行的。
使用 phpMyAdmin
phpMyAdmin 可用于备份和恢复您的论坛数据库。它有一个导出工具,可以帮助您创建一个表的 SQL 转储或数据库或甚至服务器上所有数据库的 SQL 转储。SQL 转储是一个包含创建表或数据库所需的所有必要 SQL 命令的文本文件。phpBB 的数据库备份和恢复工具使用相同的 SQL 转储。
如果您感到好奇,可以使用文本编辑器打开一个 SQL 转储,您会看到一系列以如下开头的 SQL 命令:
-- phpMyAdmin SQL Dump
-- version 2.6.0-rc2
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Dec 14, 2004 at 10:45 PM
-- Server version: 3.23.47
-- PHP Version: 4.3.0
--
-- Database: ‘forums’
--
-- --------------------------------------------------------
--
-- Table structure for table ‘phpbb_auth_access’
--
CREATE TABLE ‘phpbb_auth_access’ (
‘group_id’ mediumint(8) NOT NULL default ‘0’,
‘forum_id’ smallint(5) unsigned NOT NULL default ‘0’,
‘auth_view’ tinyint(1) NOT NULL default ‘0’,
‘auth_read’ tinyint(1) NOT NULL default ‘0’,
‘auth_post’ tinyint(1) NOT NULL default ‘0’,
‘auth_reply’ tinyint(1) NOT NULL default ‘0’,
‘auth_edit’ tinyint(1) NOT NULL default ‘0’,
‘auth_delete’ tinyint(1) NOT NULL default ‘0’,
‘auth_sticky’ tinyint(1) NOT NULL default ‘0’,
‘auth_announce’ tinyint(1) NOT NULL default ‘0’,
‘auth_vote’ tinyint(1) NOT NULL default ‘0’,
‘auth_pollcreate’ tinyint(1) NOT NULL default ‘0’,
‘auth_attachments’ tinyint(1) NOT NULL default ‘0’,
‘auth_mod’ tinyint(1) NOT NULL default ‘0’,
KEY ‘group_id’ (`group_id`),
KEY ‘forum_id’ (`forum_id`)
) TYPE=MyISAM;
--
-- Dumping data for table `phpbb_auth_access`
--
如果这看起来像是一种外星语言,请不要担心;您不需要了解任何这些。这只是为了给出 SQL 转储看起来像什么的例子。重要的是要知道如何创建它们并使用它们。
phpMyAdmin 的好处在于它允许你创建单个表的 SQL 转储,而不是整个数据库的单个文件。这很好——如果你需要稍后恢复数据库,并且你的托管提供商对上传文件的大小有限制,那么你可能可以通过将可能很大的数据库分割成几个较小的 SQL 转储来绕过上传限制。
让我们看看一个例子,它将帮助你理解使用 phpMyAdmin 进行数据库备份和恢复的流程。为了本例以及本章后面的其他示例,让我们假设包含你的论坛的数据库被命名为 forums,你的数据库用户名为 dbuser,访问数据库的密码是 dbpass。
时间行动——创建 SQL 数据库转储
你目前位于“forums”数据库的前页。它看起来如下所示:
点击标签,将跳转到如下页面:
你可以在数据库的顶部左侧的导出下看到所有表。在这里,你可以单独选择要转储的表。点击全选以转储所有表。
将所有其他字段保留在默认值。请务必检查结构和数据复选框都已选中。
选择另存为文件复选框。
点击Go。
你将弹出一个文件对话框窗口,询问在什么名称和位置保存转储文件。使用 mydump.sql 作为文件名,并保存到你认为最合适的位置(例如,一个用于存放所有备份转储的目录)。
发生了什么?
你已经成功创建了包含你的论坛数据库中所有表和数据的 SQL 转储文件。在步骤 2 中,你看到了如何选择性地选择要包含在转储中的表,从而创建几个较小的转储,这些转储一起包含所有数据库表和数据。
如果你现在点击标签,你将被带到允许你执行 SQL 查询的页面。
在截图的第二部分,在文本文件位置标题下,你可以上传一个 SQL 转储到你的数据库中执行。这是操作的“恢复”部分。通常在完全不同的服务器和空数据库上完成(例如,当你切换托管提供商并移动你的论坛时)。
在图例中所示的情况下,你可以看到有一个 8192KB(或 8MB)的限制;你不能上传比这更大的备份。如果你的 SQL 备份更大,你必须将其分成更小的块。另一个好选择是向你的提供商解释情况(他们可能会建议你使用 FTP 上传文件,然后他们可以从那里使用像命令行 MySQL 实用程序这样的工具导入它)。
使用 MySQL 命令行工具
如果你可以从命令行访问 MySQL,那么大型数据库就不会成为问题;你应该能够进行备份,并在需要时进行恢复。第二章已经讨论了如何使用mysql实用程序从命令行连接到 MySQL。在这里,我们将讨论另一个实用程序:mysqldump。
使用 mysqldump 创建备份
如其名所示,这是一个用于从 MySQL 数据库创建 SQL 备份的实用程序。它有很多选项,你可以通过使用--help选项调用实用程序来始终调查这些选项,如下所示:
mysqldump --help
你也可以在dev.mysql.com/mysqldump上阅读有关此实用程序的说明,这是 MySQL 在线手册。
这里有一个如何使用此实用程序创建forums数据库备份的示例:
mysqldump -u dbuser -pdbpass forums > mydump.sql
这行普通的英语意思是“创建一个名为 forums 的数据库的 SQL 备份,并将这个备份写入当前目录下名为 mydump.sql 的文件中。为了证明我有权访问这个数据库,我给你我的用户名,它是 dbuser,以及我的密码,它是 dbpass。”请注意,选项-p和密码是粘合在一起的;在-u选项和用户名之间没有空格。
如果你可以在服务器上创建一个计划任务(一个cronjob),你可以让这个命令行每天执行以创建一个新的数据库副本。这个命令可能因服务器而异,主要是在右尖括号后面的部分,其中指定了备份文件名及其位置。
你甚至可以更进一步,通过创建压缩的 SQL 备份并删除原始备份来节省硬盘空间,原始备份可能很大。在 Linux 系统中,你可以使用tar归档程序;你可以作为一个 cronjob 运行的整个命令可能类似于:
mysqldump -u dbuser -pdbpass forums > mydump.sql ; tar cz mydump.sql -f mydump.tgz ; rm f mydump.sql
现在 这 才是真正的系统管理员工作!如果你想要用普通的英语翻译这句话,它意味着“创建我的论坛数据库的 SQL 备份,并将其写入 mydump.sql 文件中。压缩 mydump.sql 并创建 mydump.tgz 文件。现在删除不再需要的 mydump.sql 文件。”
使用 mysql 实用程序恢复数据库
要恢复数据库,意味着从现有的 SQL 备份中创建一个新的数据库。现在我们有一个包含forums数据库所有内容的mydump.sql文件,让我们创建一个名为forums-copy的新数据库,并将内容复制到那里。你可以在 phpMyAdmin 中这样做,但我们将看到如何从命令行操作。
动手时间——从 SQL 备份创建数据库副本
在命令行中,输入 mysql -u dbuser pdbpass 并按 Enter 键。
输入 CREATE DATABASE forums-copy; 按 Enter 键。
输入 \u forums-copy. 按 Enter 键。
输入 \. mydump.sql 按 Enter 键。如果一切正常,你们会看到很多这样的消息:Query OK, 1 row affected (0.00 sec)
发生了什么?
你们已连接到数据库服务器。
你们创建了一个新的数据库。
你们已选择了新的数据库(forums-copy)用于后续操作。
你们已执行了 mydump.sql 文件。根据文件所在位置,可能需要调整文件路径。
其他工具
有时候你们可能不会使用命令行 MySQL 工具或 phpMyAdmin。或者托管提供商的限制可能使得 phpMyAdmin 对你们的大规模转储不可用。不要绝望,还有希望!你们可以使用一些专门设计的工具来处理大型数据库。其中一个很好的工具叫做 BigDump,可以从 www.ozerov.de/bigdump.php 免费下载。
它通过分块执行你的转储的小部分内容,直到所有 SQL 命令都执行完毕,来绕过服务器限制。
论坛的人性面:争论战和封禁
让我们暂时放下系统管理的内容,以审视运营在线社区的人性面来结束这一章。你们最有可能遇到的情况,几乎每个论坛管理员都会遇到,所以做好准备或者至少意识到你们并不孤单是很好的。
无论你们的论坛是关于什么的,它很可能开始是一个只有少数几位好伙伴在其中的小型论坛。也许这个论坛将是你们现有网站的一个补充;它的论坛可能会讨论你们网站的内容,在那里你们会回答问题并获得建议。
如果你们有一个内容有趣的网站,你们的社区很可能会逐渐增长。随着越来越多的人加入,会有更多不同的意见被分享。偶尔可能会爆发争论战,其中一些社区成员开始交换敌意。不要慌张!这不是你们、你们的论坛或你们的网站的责任。这只是偶然发生。自从网络通信开始以来,这种情况就一直在发生,在 Usenet 群组、邮件列表等等。争论战是网络社区的一部分;这是人类的行为。
也可能有一些社区成员似乎喜欢挑起新的争论战,看起来他们来到论坛的唯一目的就是让你们社区的成员生活痛苦。这种情况是会发生的。互联网提供的匿名性可能会让一些人表现得与他们真实面目截然不同。你们必须学会接受这个事实。但这并不意味着你们必须容忍这种行为。一些受尊敬和重视的社区成员可能会开始限制他们的参与,甚至因为那些人的不良行为而彻底离开社区。这是你们不希望发生的事情。
在这种情况下很难,没有固定的方法。你必须使用你最好的判断力,你必须像领导者一样行动,并为你的社区树立榜样。在某个时候,你可能最终会写一些像“发帖前请阅读”这样的粘性帖子,类似于使用条款。这是一个好且必要的步骤,因为它设定了基本规则。没有规则就没有对错,每个人都可以对可接受的行为和不可接受的行为有不同的理解。你还需要在撰写这些规则时小心,不要使它们过于严格。这些规则需要被尊重,这就是为什么它们是规则。所以,不要设定不可能实现的目标和愿望清单作为规则;做一个现实主义者。
在某个时候,论坛可能会增长到如此程度,以至于你无法一直跟踪发生的事情。你需要有人来关注它。这就是版主发挥作用的地方。他们是你在论坛上的最佳助手。他们会自愿花时间让论坛成为和平讨论的更好场所。所以,请仔细选择他们。首先,你必须信任你的版主。但可能性是,你甚至从未见过这些人,你怎么能信任他们?再次强调,跟随你的直觉,并使用你最好的判断力。
禁止用户永远不是一件容易的任务。尽可能避免这样做,因为被禁止的用户会找到方法使用虚假 IP 地址一次又一次地重新注册,并且会继续滥用你的社区。而且,被禁止的用户会感到并表现得像受害者。所以,再次强调,尽可能避免禁止。尝试以和平的方式解决任何问题,尝试倾听那个用户的问题,并将禁止作为最后的手段。但当你决定禁止某人时,就要果断执行。
这里有一些可以帮助你进行论坛管理的更多提示。
为你的版主创建一个私人[隐藏]论坛。让他们在隐私中讨论论坛问题,并做出集体决策。
创建一个私人[隐藏]论坛,作为回收站。不要删除帖子,而是将其移至那里。当只有少数帖子需要删除,但其他方面主题是好的时,将相关的帖子分成一个新的主题,并将这个主题移至回收站。回收站可以帮助你在需要时了解发生了什么。授予你的版主访问回收站的权限,以便他们可以管理移至那里的主题。
当一些版主禁止用户时,他们会暂时禁止,然后在比如说一周后解除那些麻烦制造者的禁令。有时候这会有所帮助。
用户会对不同的事情进行投诉——你、论坛、其他用户等等。倾听他们的话。但记住:有很多人对论坛、生活以及一切都很满意。这是一种正常的行为——当你感到满意时,你不会写帖子来说你很满意,但当你对某件事感到愤怒时,你会立刻写下来。
阅读弗吉尼亚·希尔的《网络礼仪》一书。您可以在www.albion.com/netiquette/book/在线找到它。这本书写于很久以前,它讲述了 Usenet 群组中的网络战争,而不是在公告板上。因此,看到你不是唯一一个经历这种极端情况的人,你的板块也不是第一个遇到这种情况的,这会让人感到更加安心。你会在其中认出很多社区成员和描述的情况,这肯定会给你带来不少欢笑。比如关于网络战争的类型(“拼写之火”、“生活之火”)等话题,实际上非常有趣。
再次强调,这里没有固定的食谱,所有的板块都是不同且独特的,所以请运用你最好的判断力,成为一个领导者。祝你好运!
第六章:创建您的模板
制作自己的模板不仅可能非常有趣,也可能非常耗时。有许多小细节正等着被忽视,这就是为什么我建议您不要急于完成它。慢慢来,最终你会得到回报。
就像许多其他与设计相关的项目一样,创建一个吸引人的 phpBB 模板最具挑战性的事情之一就是得到布局的想法。你可能已经有了主页,并希望应用那个布局,但很多时候我看到人们围绕他们的 phpBB 模板布局构建他们网站的其余部分。
因此,在本章中,我们将从头开始,告诉您如何将基本的布局想法转化为构建整个模板。
让我先说,灵感,以及整个创造性过程本身,并不是少数人拥有的珍贵礼物。这是每个人都可以通过练习和耐心在一段时间内学会的东西。找到一些布局想法,并调整它们,直到你对结果满意;你花在这上面的时间越多,你就越会了解自己:你喜欢什么,不喜欢什么。很快,你就会发展出自己的风格,几乎可以把任何东西变成你想要的。
在寻找您未来的 phpBB 模板布局时,有无数的地方可以开始寻找;杂志、报纸、广告、主页、建筑、艺术,甚至基本的壁纸都只是我找到的有用的一些灵感来源。在咖啡店花半小时,用笔在餐巾纸上画线,可能会揭示最吸引人的布局。这完全取决于你愿意走多远,尽管我怀疑没有人能基于像…茶壶这样的东西构建出一个好的模板布局。
对于 phpBB 模板中需要的布局类型,你应该尝试寻找你可以使用的模式。例如,我们需要能够显示主题和帖子,可能还有空间放置一张图片和一个菜单。
本章中我将要构建的模板是基于我从一份报纸上得到的一个想法。实际上并不复杂:只是一张照片、一个标题和一些文字,我在一张纸上画了个草图以免忘记。我喜欢它的简洁、线条和相当大的图像。即使它第一眼看起来可能不像 phpBB 模板,我仍会尝试,同时向您展示如何克服路上必然会遇到的任何障碍:
绘制布局草图
我要做的第一件事是在 Photoshop 中制作模板的粗略基本布局。它不需要非常精确或准确,但足以获得模板的大致外观。首先需要决定一些重要的事情,从布局的宽度开始。将宽度设置为 100%是 HTML 网站和模板的一个非常流行的选择,但考虑到顶部的图片,这可能不是这个布局的最佳选择。我需要一个固定的大小。此外,为了防止整个布局变得过大,我决定将整个布局的宽度缩小到仅 780 像素。这将给论坛的两侧留下一些“空间”,并且看起来更像基于纸张的布局。在这个宽度下,为那些屏幕分辨率为 800x600 像素的用户分配了 20 像素的滚动条空间。
对于顶部的较大图片,我有一张很久以前为 Photoshop 比赛制作的旧 PSD 图片。我一直想在我的某个项目中使用这张图片,这似乎是一个好机会。图片的格式是 717x231 像素,大小适中,既不太大也不太小。
在图片下方将出现菜单。黑色线条下的论坛表格如果与背景颜色相同看起来不会很好,所以我给它们添加了浅灰色阴影。
由于我的 PSD 图片颜色与模板布局的其他部分不匹配,很难获得良好的色彩感觉。经过尝试新的背景和论坛颜色,以匹配图片,我最终将图片改为一个空白的灰色框,以便与论坛的浅灰色相匹配。然而,我仍然觉得这不是最佳解决方案;它看起来太空了。
通过尝试一些 Photoshop 画笔,我最终找到了一个带有油漆溅洒效果的画笔,用红色颜色我成功地得到了一种看起来像鼻出血的效果。可能有点恐怖,但它看起来相当好,简单且整洁。我用一种我认为适合图片的字体添加了标题“NoseBleed”,使其更具动感。
在这个早期阶段没有必要涉及太多细节;如果你有更好的想法,很容易稍后更改图片和颜色。毕竟,这只是一个草图!
我仍然不确定是否想要一个彩色背景,或者甚至为论坛两侧的白色“空间”添加背景图片,所以我把这个选项留开放。不过,目前我们尽量保持简单;全部为白色。
完成草图后,我将图片剪裁出来并保存为top_image.jpg,这样我们就可以开始创建模板了。
TPL 代表模板
浏览器中的每一页都由三个 .tpl 文件组成,包括 HTML 代码、层叠样式表代码(CSS)和 phpBB 变量。第一个文件始终是 overall_header.tpl,最后一个文件始终是 overall_footer.tpl。这三个 .tpl 文件的中部显示了我们可以在该特定页面上看到的实际内容。例如,如果我们正在查看论坛的索引页,我们看到的是 overall_header.tpl、index_body.tpl 和 overall_footer.tpl 的代码组合。或者如果我们转到登录页,显示的 .tpl 文件是 overall_header.tpl、login_body.tpl 和 overall_footer.tpl,依此类推。这非常方便,因为我们只需要编辑一个 .tpl 文件,即 overall_header.tpl,就可以更改浏览器显示的所有页面的顶部部分。
想象一下,如果你要在一张商务信纸上写一封信。信纸的顶部已经印有公司名称、标志和地址(overall_header.tpl),也许底部还有一行地址(overall_footer.tpl)。你会在中间写上你个人的信息(中间的 .tpl 文件)。无论你写了多少封信,无论信的内容有多不同,你都会始终有相同的页眉和页脚。是中间的 .tpl 文件让 phpBB 论坛变得生动起来。
然而,在我们开始编辑任何文件之前,我们会在 phpBB 模板目录中的 subSilver 文件夹中创建一个副本,并将其命名为 NoseBleed。有了副本,如果出现问题,我们总能回到原始的 .tpl 文件。
创建模板文件夹
为了让 phpBB 识别新的 NoseBleed 文件夹作为一个独特的模板,我们需要编辑一些文件。在文件夹中,有一个名为 subSilver.cfg 的文件,我们将其重命名为 NoseBleed.cfg。我们还把 subSilver.css 重命名为 NoseBleed.css,尽管现在这个文件并不需要。最后,我们需要在 theme_info.cfg 文件中将每个 subSilver 实例替换为 NoseBleed。如果你使用 WordPad 来做这个,你可以按 CTRL+H 来打开 替换所有 窗口,使这个编辑变得快速。
现在,我们可以从管理面板上传和安装新的模板。
.tpl 文档编辑器
在 .tpl 文件中使用的代码基本上,如前所述,是 HTML 代码。如果你已经对基本的 HTML 和 CSS 有一些了解,你无需担心,如果你没有,也不要担心。我们将通过详细的解释来逐步完成这个过程。
对于这一章,我们使用记事本来编辑.tpl文件。我们也可以使用像 Dreamweaver 这样的 WYSIWYG 编辑器进行编辑。它可能有一些优点,比如在编码时能够看到布局的大致视图。然而,我不建议使用这些编辑器可以自动插入的代码,因为 phpBB 可能会与这类代码冲突。我们也可以使用 Word、WordPad 或任何其他文本编辑器,只要我们记得将文档保存为纯 ASCII 代码,因为 phpBB 不能读取富文本格式的.tpl文件。
首先,从NoseBleed文件夹中打开overall_header.tpl文件;这是包含每个页面顶部布局的文件。记住,如果你是第一次使用 HTML,不要紧张;实际上,它并没有看起来那么困难。在代码的顶部,你会找到一个告诉浏览器这是一个 HTML 文档的部分。然后,我们有页面的标题、CSS 代码,然后在底部,我们有将显示我们布局的 HTML 代码。当 phpBB 加载.tpl文件时,它会从数据库中填充 phpBB 变量。这些变量都使用大写字母,并且总是看起来像这样:{PHPBB_VARIABLE}。
在代码标签之间,你会找到所有的 CSS 代码,例如:
/* Name of poster in viewmsg.php and viewtopic.php and other places */
.name { font-size : {T_FONTSIZE2}px; color : {T_BODY_TEXT};}
如果你将代码放在 CSS 中的/*和*/标签之间,浏览器将忽略它。如果你想为自己或他人留下注释,可以使用这个功能。上面特定的 CSS 样式被称为.name。在name前面的点不是一个类型错误,但当你准备添加自己的样式时,你应该注意这一点。一个名为.table的 CSS 样式只会影响你的 HTML 文档中应用了它的区域,例如:
Some text here
然而,一个没有点的名为table的 CSS 样式将对你的 HTML 文档中的每个表格产生影响。
但让我们开始构建我们的模板!
准备,设置,出发!
拿着草图,创建模板的最佳方式是简单地遵循草图,从顶部开始,一直工作到页面底部。如前所述,overall_header.tpl总是包含你在浏览器中看到的每个页面的顶部部分,因此这是我们首先需要工作的部分。在subSilver中,这个文件已经显示了图像和菜单,这是一个很好的方法,我们将保持我们自己的模板中相同的做法。
打开overall_header.tpl文件,并向下滚动到
标签开始的地方(这个标签之前的部分是 CSS,我们稍后会讨论)。我们需要做的第一件事是确保模板在浏览器中完全展开。默认情况下,浏览器会在页面的顶部和左侧添加边距,但我们可以通过将topmargin和leftmargin设置为零来消除这些边距。我们可以通过修改
标签来实现这一点:link="{T_BODY_LINK}" vlink="{T_BODY_VLINK}"
leftmargin="0" topmargin="0">
在模板中值得注意的下一件事是链接标签。如果我们添加以下链接:
...点击链接后,浏览器会将您带到,在这种情况下,到页面的顶部,它所在的位置。
然后我们有模板的表格结构。第一个表格从以下内容开始:
|
...但它显然没有结束。这不是错误;这是因为这个表格包围了整个论坛,包括在overall_header.tpl之后将加载的内容。 您可以在模板的任何其他地方找到这个表格的结尾: |
...在overall_footer.tpl文件中。
接下来我们改变包围整个论坛的表格的宽度。在 subSilver 模板中,这个宽度设置为 100%,但我们只想让我们的模板宽度为 780 像素。我们还添加了高度 100%,以在浏览器中从上到下拉伸模板:
|
由于cellpadding的大小,这个表格将使所有内容距离表格边框 10 像素。我们将宽度改为 780 像素而不是 100%,并添加高度 100%,以防我们稍后决定在论坛的每一边添加背景图片或颜色。由于默认情况下,内容在表格中间水平对齐——现在高度是 100%——我们需要将其对齐,使其出现在顶部。我们可以通过在表格的第一个 | 中添加一个valign标签来实现这一点。
在进行这些修改后,我们的表格代码应该看起来像这样:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||