0.0.1版:增加百度分享
发表于 :
2015-04-01 22:27
由 xiaotong
所有的phpBB模块都需要使用一个叫UMIL的库。
UMIL的全称是Unified MOD Install Library,可以从phpBB官网下载,最新的是1.0.5。
UMIL只是一个库,还需要一个install.php来调用它,install.php通过调用UMIL来安装模块。
如果将install.php和umil目录下的所有文件上传到phpBB的根目录下,并在浏览器中访问install.php,可以看到如下界面:
讨论代码在第55行(文件install.php中)
发表于 :
2015-04-01 22:46
由 xiaotong
在install.php网页上点击Advanced链接,会列出可以安装的版本,如下:
因为我们的代码里只有0.0.1版本的安装信息,所以界面中也仅有0.0.1版本可供选择。
如果今后我们的mod_progbbs有了其它版本,在界面中会列出所有可以安装的版本,可以升级或者降级。
讨论代码在第57行(文件install.php中)
发表于 :
2015-04-01 22:55
由 xiaotong
选中0.0.1版安装模块,并在显示所有结果中选择是,安装完后会看到:
增加了一个新的配置变量:allow_baidu_share。
Re: 0.0.1版:增加百度分享
发表于 :
2015-04-01 23:01
由 xiaotong
用install.php仅能安装模块的数据库部分。
phpBB的模块远没有WordPress那么智能,通常,每个模块会带一个install.xml文件。它用来“指导”论坛管理员怎么修改phpBB的源代码文件,它是一个xml文件,有模块的license,author,version,history等等信息,最重要部分在action-group element中。
action-group是一组动作,理论上,这一组动作完成后模块就安装完毕了。其中:
copy element是复制动作,把里面的所有文件复制到指定位置。
open element是打开动作,打开的目的是为了编辑,所以里面有edit element。edit element里面又有find element查找到指定位置,然后action element实施动作,比如before-add/after-add,分别在指定位置之前或之后加上代码等等。
php-installer element指定模块的安装文件。您可能会问,这个install.xml不是安装文件吗?估计phpBB把它认作"xml安装文件",php-installer是指的install.php文件。
diy-instructions element顾名思义是diy指南。告诉您怎么diy这个模块。
这个install.xml实际上是给人看的,然后按照里面的action-group一步步找到文件,找到位置,编辑……
所以phpBB是极客玩具,不像WordPress或者国内的Disscuz等智能与流行。
虽然有一个AutoMOD可以自动安装模块,但是实际使用中还是有些问题,还不如手工来的快。
不过手工安装也有手工安装的好处,基本上安装完一两个模块就会写自己的模块了,所以说勤动手还是有好处的。
而且,像WordPress那么智能,导致安装/卸载模块很容易,一些模块装了后玩玩而已,很快又卸载掉了,实际上并没有发挥模块的强大功力。
Re: 0.0.1版:增加百度分享
发表于 :
2015-04-01 23:06
由 xiaotong
前面我们的mod_progbbs在数据库中安装了一个allow_baidu_share配置选项,顾名思义,这是打开百度分享的选项。
这个配置选项并不会自动把百度分享加到网站上,下面我们开始写install.xml来使用allow_baidu_share开启百度分享。
讨论代码在第57行(文件install.php中)
发表于 :
2015-04-01 23:10
由 xiaotong
allow_baidu_share是一个配置选项,它的值可以为true或者false,分别对应开启或者关闭“百度分享”,默认值为false。
首先,在phpBB管理后台需要找一个地方来设置这个配置选项。
讨论代码在第39行(文件install.xml中)
发表于 :
2015-04-01 23:18
由 xiaotong
修改代码,修改的action是after-add,表示在找到的代码后面添加代码。
讨论代码在第40行(文件install.xml中)
发表于 :
2015-04-01 23:22
由 xiaotong
配置选项的名称和说明。
这里用到了宏。这个选项名称在后台不会显示为:ALLOW_BAIDU_SHARE,而是根据论坛语言,选择语言包的宏定义的值。
简体中文语言包里设定此值为:开启百度分享,所以在后台会显示: