18339358210

建站知识

网站建设资讯及网络营销知识

18339358210

  • 10+

    年服务经验

  • 1000+

    家客户选择

  • 112+

    项细节标准

利用PbootCmsV2.0.6自定义标签制做网站每日一图的方法

发布时间:2020-04-08 浏览:118

自PbootCmsV2.0.6开始,PbootCMS支持自定义标签,且升级不被覆盖。妈妈再也不用担心我的代码升级被覆盖啦。

于是就想到用这个功能定制一个每日一图。

这个文件位置在 home下ExtLabelController控制器。

话不多说,先找图源。度娘告诉我必应搜索就有每日一图的API。

地址是这个:

https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1

获取到的是一串JSON,正和我意。

用pbootcms自带的get_url方法直接抓取一下就搞定。

上代码:

//抓取必应每日一图
    public function getBingImage(){
        $url = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1';
        $data = json_decode(get_url($url));
        $result = $data->images[0];
        $image = 'https://www.bing.com'.$result->url;
        return $image;
    }

然后再给自己定制一个标签就好啦。

// 扩展单个标签
    private function diylabel()
    {
        $this->content = str_replace('{pboot:walle}', $this->getBingImage(), $this->content);
    }

最后只要在模板文件中写上 {pboot:walle} 就调用出图片地址。把这个放在 <img> 标签中,或者放在 background 中,至此,搞定。

下面是整个ExtLabelController文件的代码:

<?php
/**
 * @copyright (C)2020-2099 Hnaoyun Inc.
 * @author XingMeng
 * @email hnxsh@foxmail.com
 * @date 2020年3月8日
 *  个人扩展标签可编写到本类中,升级不会覆盖
 */
namespace app//home//controller; /* 此处双斜杠需要换成单反斜杠*/

use core//basic//Controller;  /* 此处双斜杠需要换成单反斜杠*/

class ExtLabelController
{

    protected $content;

    /* 必备启动函数 */
    public function run($content)
    {
        // 接收数据
        $this->content = $content;
        
        // 执行个人自定义标签函数
        $this->diylabel();
        
        // 返回数据
        return $this->content;
    }

    // 扩展单个标签
    private function diylabel()
    {
        $this->content = str_replace('{pboot:walle}', $this->getBingImage(), $this->content);
    }

    //抓取必应每日一图
    public function getBingImage(){
        $url = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1';
        $data = json_decode(get_url($url));
        $result = $data->images[0];
        $image = 'https://www.bing.com'.$result->url;
        return $image;
    }
    
}
最后只要在模板文件中写上 {pboot:walle} 就调用出图片地址。把这个放在 <img> 标签中,或者放在 background 中,至此,搞定。
下面是整个ExtLabelController文件的代码:


填写您的联系方式获取报价

我们拥有专业优秀的设计和技术团队,以极具创意的网站设计

*我们的专业顾问会在24小时内与你获得联系,请填写正确的联系方式!