ZigZagK的博客
魔改Links插件实现友链随机输出
2019年9月30日 23:29
Typecho
查看标签

一时兴起

逛MonsterX博客的时候发现了友链随机输出的这个方式,我觉得的确挺不错的,于是开始折腾。

研究了一下Links插件发现……并不能在不改动插件的情况下实现该功能……

那能怎么办喽,只能改插件了……

魔改插件

Links插件中,output函数是把所有友链解析为html之后直接接成一个超长字符串……所以为了实现随机显示,需要输出数组而不是字符串,从而进行shuffle操作(数组随机打乱)。

那么就是把:

$str = "";
foreach ($links as $link) {
    if ($link['image'] == NULL) {
        $link['image'] = $nopic_url;
    }
    $str .= str_replace(
        array('{lid}', '{name}', '{url}', '{sort}', '{title}', '{description}', '{image}', '{user}'),
        array($link['lid'], $link['name'], $link['url'], $link['sort'], $link['description'], $link['description'], $link['image'], $link['user']),
        $pattern
    );
}
return $str;

改成这样:

$number = 0;
foreach ($links as $link) {
    if ($link['image'] == NULL) {
        $link['image'] = $nopic_url;
    }
    $Links[$number++] = str_replace(
        array('{lid}', '{name}', '{url}', '{sort}', '{title}', '{description}', '{image}', '{user}'),
        array($link['lid'], $link['name'], $link['url'], $link['sort'], $link['description'], $link['description'], $link['image'], $link['user']),
        $pattern
    );
}
return $Links;

输出友链

既然有了友链数组,你就可以想干嘛干嘛了自己魔改啦,比如随机顺序输出:

$Links=Links_Plugin::output('
    <div class="mdui-col">
        <div class="mdui-card mdui-m-y-1 mdui-hoverable">
            <a href="{url}" target="_blank">
                <div class="mdui-card-header">
                    <img class="mdui-card-header-avatar" src="{image}" alt="{name}"/>
                    <div class="mdui-card-header-title">{name}</div>

<div class="mdui-card-header-subtitle">{description}</div>

</div>

</a>
        </div>

</div>

');
shuffle($Links); //PHP自带的函数,将数组随机打乱
$tot=count($Links);
for ($i=0;$i<$tot;$i++) echo $Links[$i]; //输出友链

效果可以查看友链页面

广告

插件已经上传到github了(内附较详细使用方法),戳这里

版权声明:本博客所有文章除特别声明外,均采用 CC BY 4.0 CN协议 许可协议。转载请注明出处!
请不要发毫无意义或内容不文明的评论。与本文无关评论请发留言板!
Yum
2020-04-26 00:59:52Yum
2020-04-26 00:59:52

无奈.jpg 我知道你该的那个友链插件怎么用。。。。

访客
2019-11-20 17:53:55ohmyga
2019-11-20 17:53:55

太强了!实现了我一直想做的功能 无奈.jpg

访客
qwq
2019-11-03 21:11:15qwq
2019-11-03 21:11:15

日记还是没法评论( ⊙ o ⊙ )啊!

访客
2019-11-03 22:01:06ZigZagK
2019-11-03 22:01:06
@qwq 

很抱歉日记评论暂时咕咕咕了

博主
2019-10-01 20:07:13初夏阳光
2019-10-01 20:07:13

我来了嘿嘿,等我给自己放完假就改 Bug !

访客
2019-10-04 12:44:40ZigZagK
2019-10-04 12:44:40
@初夏阳光 

大佬您怎么把博客改炸了 我的滑稽会冒汗

博主
2019-10-04 12:47:50初夏阳光
2019-10-04 12:47:50
@ZigZagK 

没有,是服务器炸了。正在修QaQ…

访客