phpBB安装插件MODs的一般方法

之前用过Discuz,感觉Discuz太花哨,并没有我想要的那种简约,于是改到了phpBB下。可能是刚开始用吧,感觉phpBB安装插件相对于Discuz要困难许多。不过官方是有文档的,英文的,写的很好,很容易看懂,但是为了更方便中国人看,我就翻译了一下。下面进入正题:

在开始前,你要首先下载好你想要的插件,在phpBB中就叫MOD,然后按照MOD自带的文档(一般是一个.txt或者.mod文件)来安装,我们要说的就是怎么来使用这个文档。

1、“COPY“行为

如果你在文档中看到了下面这样的内容

#
#-----[ COPY ]------------------------------------------
#
copy file.php to file.php
copy file.tpl to templates/subSilver/file.tpl

这意思就是让你把文件file.php上传到你phpBB的根目录,把file.tpl上传到使用的模板目录,完全不需要编辑它们

2、“OPEN”行为

当你看到下面的内容时

#
#-----[ OPEN ]------------------------------------------
#
common.php

你的任务就是用一个编辑器打开common.php这个文件

3、“FIND“行为

在“OPEN“行为后,你最可能看到的就是”FIND“行为了,因为在你做其他事情之前一般都要找到一个开始的地方

#
#-----[ FIND ]------------------------------------------
# around line 184
//
// Show 'Board is disabled' message if needed.
//

这里要做的就是在大约184行找到下面的内容,然后等待后面的“命令”

//
// Show 'Board is disabled' message if needed.
//

4、“BEFORE ADD“行为

在文档中,你可能会看到类似下面的东西

#
#-----[ BEFORE, ADD]--------------------------------------
#
include($phpbb_root_path . 'attach_mod/attachment_mod.'.$phpEx);

当你在“FIND”行为中找到内容后,你就按照上面说的在你找到内容的前面添加内容,在我们现在的例子中会得到下面的結果

include($phpbb_root_path . 'attach_mod/attachment_mod.'.$phpEx);
//
// Show 'Board is disabled' message if needed.
//

5、“AFTER ADD”行为

#
#-----[ AFTER ADD]------------------------------------------
#
include($phpbb_root_path . 'attach_mod/attachment_mod.'.$phpEx);

就跟“BEFORE ADD“行为类似,不过这一次不是要把内容加在前面,面是放在后面,效果如下

//
// Show 'Board is disabled' message if needed.
//
include($phpbb_root_path . 'attach_mod/attachment_mod.'.$phpEx);

6、“REPLACE WITH“行为

#
#-----[ REPLACE WITH ]------------------------------------------
#
<form action="{S_POST_ACTION}" method="post" name="post" 
onsubmit="return checkForm(this)" {S_FORM_ENCTYPE}>

这个行为通常要和“FIND”行为一起来使用,你必须要找到内容,然后才能替换它。但是当你的phpBB安装了其他MOD时,你一定要小心的使用这个行为。我们建议你最好使用我们后面就要讲到的“IN-LINE”行为来代替。下面举例说明“REPLACE WITH“行为的使用

#
#-----[ FIND ]---------------------------------------------
# around line 225
<form action="{S_POST_ACTION}" method="post" name="post" 
onsubmit="return checkForm(this)">

#
#-----[ REPLACE WITH ]---------------------------------------
#
<form action="{S_POST_ACTION}" method="post" name="post" 
onsubmit="return checkForm(this)" {S_FORM_ENCTYPE}>

在这个例子中,我要寻找

<form action="{S_POST_ACTION}" method="post" name="post" 
onsubmit="return checkForm(this)">

然后,用下面的内容替代

<form action="{S_POST_ACTION}" method="post" name="post" 
onsubmit="return checkForm(this)" {S_FORM_ENCTYPE}>

于是,最后的結果是

<form action="{S_POST_ACTION}" method="post" name="post" 
onsubmit="return checkForm(this)" {S_FORM_ENCTYPE}>

7、“IN-LINE FIND“行为

这个行为是与“IN-LINE AFTER, ADD”,“IN-LINE BEFORE, ADD”, “IN-LINE REPLACE WITH”有关的,我们将在后面介绍。这些行为是MOD作者最好应该使用的行为。
“IN-LINE“行为也是要与”FIND“行为一起来使用

#
#-----[ IN LINE FIND ]------------------------------------------
#
t.topic_title

这样看似乎很难理解,我将给出一个例子

#
#-----[ FIND ]------------------------------------------
#
$select_sql = ( !$submit ) ? ", t.topic_title, p.enable_bbcode, 
p.enable_html, p.enable_smilies, p.enable_sig, p.post_username, 
pt.post_subject, pt.post_text, pt.bbcode_uid, u.username, 
u.user_id, u.user_sig" : '';
#
#-----[ IN-LINE FIND ]------------------------------------------
#
t.topic_title,

这是要求你在“FIND”下面的内容中寻找“IN-LINE FIND“下面的内容”t.topic_title,“

8、“IN-LINE AFTER, ADD”行为

这个行为就像下面这样

#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
t.topic_desc,

该行为要与“FIND”和“IN-LINE FIND“行为一起使用,例如

#
#-----[ FIND ]------------------------------------------
#
$select_sql = ( !$submit ) ? ", t.topic_title, p.enable_bbcode, 
p.enable_html, p.enable_smilies, p.enable_sig, p.post_username, 
pt.post_subject, pt.post_text, pt.bbcode_uid, u.username,
u.user_id, u.user_sig" : '';
#
#-----[ IN-LINE FIND ]------------------------------------------
#
t.topic_title,
#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
t.topic_desc,

这时你要寻找完整的一行(原始的一行)

$select_sql = ( !$submit ) ? ", t.topic_title, p.enable_bbcode, 
p.enable_html, p.enable_smilies, p.enable_sig, p.post_username, 
pt.post_subject, pt.post_text, pt.bbcode_uid, u.username, 
u.user_id, u.user_sig" : '';

然后在找到的那一行中寻找下面的代码

t.topic_title,

接下来,直接在它后面添加

t.topic_desc,

最后,我们得到下面的結果

$select_sql = ( !$submit ) ? ", t.topic_title, t.topic_desc, 
p.enable_bbcode, p.enable_html, p.enable_smilies, p.enable_sig, 
p.post_username, pt.post_subject, pt.post_text, pt.bbcode_uid, 
u.username, u.user_id, 
u.user_sig" : '';

9、“IN-LINE BEFORE, ADD“行为

这个与“IN-LINE AFTER, ADD“类似,不过你要把代码加到前面而不是后面

#
#-----[ IN-LINE BEFORE, ADD ]------------------------------------------
#
, $topic_desc

例如

#
#-----[ FIND ]------------------------------------------
#
prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on,
 $error_msg, $username, $bbcode_uid, $subject, $message, $poll_title, 
$poll_options, $poll_length);
#
#-----[ IN-LINE FIND ]------------------------------------------
#
$poll_length)
#
#-----[ IN-LINE BEFORE, ADD ]------------------------------------------
#
$topic_desc,

这时你要寻找完整的一行(原始的一行)

prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on, 
$error_msg, $username, $bbcode_uid, $subject, $message, $poll_title,
 $poll_options, $poll_length);

然后在找到的那一行中寻找下面的代码

$poll_length)

然后直接在它前面添加

$topic_desc,

最后,我们得到下面的結果

prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on, 
$error_msg, $username, $bbcode_uid, $subject, $message, $poll_title,
 $poll_options, $topic_desc, $poll_length);

10、“INCREMENT”行为

#
#-----[ FIND ]------------------------------------------
#
Powered by <a href="http://www.phpbb.com/" target="_phpbb" 
class="copyright">phpBB</a> &copy; 2001, {%:1} phpBB Group<br />
{TRANSLATION_INFO}</span></div>
#
#-----[ INCREMENT ]-------------------------------------
#
%:1 +10

”INCREMENT“行为用来增加或者减小一数字,这对于调节模板的行跨度和列跨度非常有用。

要进行“INCREMENT“行为,首先要执行”FIND“或者”IN-LINE FIND“,你需要用{%:1}来代替你想要增加或减小的数字,如果你想要增加或减小多个数字,就用{%:2},{%:3},以此类推。。。

在“INCREMENT“行为中,你首先要声明要增加或减小哪个数字,然后说明增加或减小多少。增加用+,减小用-。如果你什么都不用,就表示增加1。下面是一些示例

#
#-----[ INCREMENT ]-------------------------------------
#
%:1

#
#-----[ INCREMENT ]-------------------------------------
#
%:2 -3

#
#-----[ INCREMENT ]-------------------------------------
#
%:3 +5

你还可以使用“IN-LINE INCREMENT“,方法与上面说的是一样的。

11、“SQL“行为

这个行为是要更改数据库(增加域、增加表、改变表等)

#
#-----[ SQL ]------------------------------------------
#
ALTER TABLE phpbb_topics ADD topic_desc varchar(255) DEFAULT '' 
AFTER topic_title

现在的意思就是让你执行这个SQL語句,最简单的方法就是使用类似phpMyAdmin的工具

12、“SAVE/CLOSE ALL FILES“行为

这是最后一步,当你把所有的东西都做完后,就可以保存关闭文件了。然后把它上传到你的服务器上,在你的phpBB中查看是否漂亮的完成了任务。如果出现了什么错误,就再次好好检查下你的安装文档。

注意:在进行这些工作前,备份你所有的东西!

13、“DIY INSTRUCTIONS“行为

#
#-----[ DIY INSTRUCTIONS ]------------------------------------------
#
CHMOD foo.php and bar.php to 777
Open in your web browser and follow the instructions in db_install.php

这里面包含了一些指示你完成安装的指令,比如执行SQL,CHMOD等。。。

14、MODx

这是一个基于XML的新式的MOD安装指导文件,通常你可以用你的浏览器打开这个文件,文件名字类似于“name_of_the_mod.xml“。

翻译了1个半小时,总算完成了,要睡了。如果您觉得ABitNo翻译的不够好,欢迎给出批评意见。

可以查看英文原文http://www.phpbb.com/kb/article/how-to-install-mods/

3 COMMENTS >>LEAVE<<

  1. AiSiphpbb

    我也是刚开始用phpBB,感觉phpBB的中文资料太少,ABitNo翻译的不错,比看E文省事多了!以后我会继续关注的。

  2. ABitNo
    @AiSiphpbb

    phpBB界面清爽,功能不是那么花哨,很好。不过用起来就是不怎么方便,安装个插件都是有点麻烦。不过这就像用Linux,刚开始或许你会觉得不好学,过段时间你就会得心应手,然后就再也放不下了。。

  3. BlueHornet

    This look interesting,so far.
    If there's anyone else here, let me know.
    Oh, and yes I'm a real person LOL.

    Bye,