PbootCMS用扩展标签定制一个每日一图

摘要:
从PbootCmsV2.0.6开始,PbootCMS支持自定义标记,并且不会覆盖升级。所以我想用这个功能定制一张日常图片。此文件位于主目录下的ExtLabelController控制器中。通过百度查找必应搜索的API。Format=js&idx=0&n=1获取一个JSON字符串,这正是我们需要的。使用pbotcms_url方法可以直接捕获。format=js&idx=0&n=1';$data=json_解码;$result=$data-˃images[0];$图像='https://www.bing.com '.$ 结果-˃url;return$image;}然后为自己定制标签//展开单个标签privatefunctiondiylabel(){$this-˃content=str_replace;}最后,只需在模板文件中写入{pboot:wall}来调用图像地址。将其放在<img>标记或背景中。到目前为止,一切都已尘埃落定。

自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 AndyGuo .
 * @author AndyGuo
 * @email vip@d163.net
 * @date 2020年4月5日
 *  个人扩展标签可编写到本类中,升级不会覆盖
 */
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;
    }
    
}

本文来源:http://www.d163.net/html/php/35.html -- 小郭博客(AndyGuo)

免责声明:文章转载自《PbootCMS用扩展标签定制一个每日一图》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【虚拟机】U盘破解 ESXI 密码关于我的eclipse的老毛病的解决方案下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

易错点。

1: Photo框架使用requestImageForAsset内存不能及时释放问题 1 // 1: targetSize 要获取的图片大小。一般设置为 屏幕宽*屏幕高*scale 生成的图片不会模糊。 2 // 2: contenMode 图片填充模式。 3 // 3: PHOmageRequestOptions 设置从图库...

转 iOS10推送

一、简单入门篇---看完就可以简单适配完了 相对简单的推送证书以及环境的问题,我就不在这里讲啦,我在这里说的,是指原有工程的适配。 1.首先我们需要打开下面的开关。所有的推送平台,不管是极光还是什么的,要想收到推送,这个是必须打开的哟~ QQ20160914-4.png 之后,系统会生成一个我们以前没见过的文件,如图: QQ20160918-0...

jquery学习笔记(二):DOM元素操作

内容来自【汇智网】jquery学习课程 2.1 元素属性操作 1.获取元素的属性 语法:attr(name) 参数name表示属性的名称 2.设置元素的属性 单个属性设置语法:attr(key,value) 多个属性设置语法:attr({key0:value0,key1:value1}) 3.删除元素的属性 语法:removeAttr(name) 2.2...

web前端学习笔记(CSS变化宽度布局)

一、“1-2-1”单列变宽布局:       对于变宽度的布局,首先要使内容的整体宽度随浏览器窗口宽度的变化而变化。因此中间的container容器中的左右两列的总宽度也会变化,这样就会产生不同的情况。这两列是按照一定的比例同时变化,还是一列固定,另一列变化。这两种都是很常用的布局方式。然而对于等比方式而言,相对比较简单,和我上一篇博客中1-2-1的布局方...

tag应用如何根据metadata内容杀指定应用

最近应用开辟的过程当中出现了一个小问题,顺便记录一下原因和方法--tag应用     应用场景:在开辟一体机上具体应用过程当中,发现一体机资源切换及不同的应用应用不同的资源。因为就需要在切换不同的信号源模式下 应用不同的资源。所以就想到应用meta-data这一描述字进行杀死指定的应用。 在AndroidManifest.xml中,<meta-dat...

JsonMessageView工具类

前言 工具类 示例: 前端发送ajax请求 springmvc控制层接收请求并处理请求 前言: 在工作中使用springmvc web框架时常常会发送一个ajax请求,我们在控制层接收到请求并处理完后返回一个json数据到前端,这里提供一个工具类实现接口消息视图(View),用于返回指定格式的json数据。 importjava.io.IOExcep...