树洞外链从2.4版本起加入自定义页面机制,用户可以根据当前模板开发自己的页面。本次将以一个最新的第三方页面 - 画廊为例 ,讲讲添加自定义页面的方法。
先来个演示:http://yun.aoaoao.me/demo/views/pages.php?id=gallery

360截图20160614121954096
360截图20160614121954096

注:画廊页面将会列出所有用户上传的文件,不管是不是公开。所以本页面并不适用于一些私密性图床。

1.下载

下载地址:http://yun.aoaoao.me/demo/f.php?k=1931a
下载后解压到主题目录下的pages目录下,以material为例,把所有文件解压到/content/themes/material/pages/下。如果你的主题没有该目录,请新建一个。

2.配置

树洞外链的每一个自定义页面都要在config.json中注册。打开pages目录下的config.json文件(没有请新建一个)。以material主题为例,内容如下:

[
    {
        "id": "explore",
        "file": "shares"
    },{
        "id": "exsplore",
        "file": "shares"
    },{
        "id": "exsddplore",
        "file": "shares"
    },{
        "id": "exsdddplore",
        "file": "shares"
    }
]`</pre>
这里共注册了4个页面,第一个就是“文件广场”,标示为explore,页面文件为shares.php,访问该页面时程序会引入pages目录下的shares.php文件。其他四个是测试时留下的。我们在后面添加一项,id为gallery,页面文件名为gallery。如下:
<pre class="language-json">`[
    {
        "id": "explore",
        "file": "shares"
    },{
        "id": "exsplore",
        "file": "shares"
    },{
        "id": "exsddplore",
        "file": "shares"
    },{
        "id": "exsdddplore",
        "file": "shares"
    },**{
        "id": "gallery",
        "file": "gallery"
    }**
]`</pre>
保存后访问http://您的域名/views/pages.php?id=gallery,测试能否正常显示。

### 3.修改

我们要在导航条上添加一个链接指向这个页面。以material为例。打开模板目录下的head.html,在导航条上添加:
<pre class="language-html">`&lt;li&gt;&lt;a href="~$zzurl~~views/pages.php?id=gallery"&gt;&lt;i class="fa fa-photo" aria-hidden="true"&gt;&lt;/i&gt; 画廊&lt;/a&gt;&lt;/li&gt;

默认情况下画廊每页展示12张图片,图片过多时会卡顿。你可以手动修改每页展示个数。打开pages目录下的gallery.php,修改第41行$pagesize=12; 即可。

题外话

在开发测试画廊页面时,我使用的是默认的上传方案,命名方式为f_+8位随机数,随机数采用PHP的rand函数生成。然而,我上传一个图片后,被文件名吓住了:

360截图20160614122739739
360截图20160614122739739

rand函数产生了10000000这个随机数!!!
这可是一千万分十一的概率啊!