当前位置: 首页 > article >正文

【Typecho】Tbeautify插件开发与使用

最近了解typecho关于插件这块,萌生了自己开发一个插件的想法。因为lz的博客本身就引用了近十来个插件,深知插件给博客起到的作用有多大。在感激哪些开源插件的作者为爱发电的同时,又何尝不想为此贡献一份力量。无奈才疏学浅,对于php的了解不深。但是,种一颗树的最好时间就是十年前,其次就是现在。不试试怎么知道?万一成功了呢?

1.插件设想来源

        起初之前写过一个相册管理版的“伪插件”,让lz对typecho插件有了一个大概了解。但是相册管理实际上也是一个偏独立的php页面,严格意义上应该算不上插件。lz更想做一个比较纯粹的插件。

        然后就是接触到了很多js以及css的特效代码,就想着能不能汇总一下这些代码。整合成一个typecho插件方法引入到博客中。有了这个想法后就开始逐步收集并整理一些js和css相关的特效代码。

        最后经过整理汇总,以及统计了一些博客常用的特效,最终记录出10个网站特效,我称其为十大特效,简称:Tbeautify。这就是插件名的由来啦。

特效分别有:网站置灰效果,春节灯笼,4个鼠标点击效果,樱花飘落特效,悬浮播放器,看板娘,语言国际化

特效汇总集合测试页效果:

 2.插件开发

        typecho官网的开发文档有点让人一言难尽,给lz这种对php一知半解的人无从下手的感觉。粗略看了下源代码插件开发的相关类,typecho的插件就是一个Plugin.php文件,会进行插件的定义,包括名称,作者,插件的激活禁用,渲染等,比如下面官方提供的Hello World插件示例:

<?php

namespace TypechoPlugin\HelloWorld;

use Typecho\Plugin\PluginInterface;
use Typecho\Widget\Helper\Form;
use Typecho\Widget\Helper\Form\Element\Text;
use Widget\Options;

if (!defined('__TYPECHO_ROOT_DIR__')) {
    exit;
}

/**
 * Hello World
 *
 * @package HelloWorld
 * @author qining
 * @version 1.0.0
 * @link http://typecho.org
 */
class Plugin implements PluginInterface
{
    /**
     * 激活插件方法,如果激活失败,直接抛出异常
     */
    public static function activate()
    {
        \Typecho\Plugin::factory('admin/menu.php')->navBar = __CLASS__ . '::render';
    }

    /**
     * 禁用插件方法,如果禁用失败,直接抛出异常
     */
    public static function deactivate()
    {
    }

    /**
     * 获取插件配置面板
     *
     * @param Form $form 配置面板
     */
    public static function config(Form $form)
    {
        /** 分类名称 */
        $name = new Text('word', null, 'Hello World', _t('说点什么'));
        $form->addInput($name);
    }

    /**
     * 个人用户的配置面板
     *
     * @param Form $form
     */
    public static function personalConfig(Form $form)
    {
    }

    /**
     * 插件实现方法
     *
     * @access public
     * @return void
     */
    public static function render()
    {
        echo '<span class="message success">'
            . htmlspecialchars(Options::alloc()->plugin('HelloWorld')->word)
            . '</span>';
    }
}

        因为lz的这个插件需要做到的是通过配置面板来动态选择引入特效的js和css即可。所以,实际上要解决的就是三步。

  1. 插件激活时需要调用钩子函数插入js和css代码
  2. 完成插件的配置面板,实现配置表单页面,方便钩子函数获取到用户配置的值
  3. 钩子函数获取到用户配置的值,来选择插入哪部分的特效代码

        后面会公布开源地址,具体的实现代码就不多加叙述了。

3.插件使用

        typecho插件的使用都是老生常谈的问题了,只需要将插件文件放到usr/plugins目录下,然后目录重命名:Tbeautify 再进入后台管理激活插件就行了。国际化考虑到用的人不多,暂未引入。

    插件配置页面   

        可选择性开启你想要的网站特效,假如你的站点已经包含同一类别的特效,建议不要重复开启,避免出险未知问题。插件已在typecho版本1.1和typecho版本1.2上测试过。下面是在lz自己博客的展示效果:

 4.开源与插件获取

        插件代码已开源:https://github.com/1997akkk/Tbeautify

        自取下载使用,10特效只是开始,后续如果有好的js和css特效。lz会不断更新增加~现在只是Tbeautify插件的第一版。如果有好的建议或者在使用插件中发现的问题,可以留言或者博客联系我。


http://www.kler.cn/a/487802.html

相关文章:

  • 工业 4G 路由器赋能远程医疗,守护生命线
  • springmvc前端传参,后端接收
  • USB 驱动开发 --- Gadget 设备连接 Windows 免驱
  • 计算机网络——网络层—IP数据报与分片
  • C#语言的网络编程
  • [Git] git pull --rebase / git rebase origin/master
  • 【Docker】安装registry本地镜像库,开启Https功能
  • 解读若依框架中的`@Excel` 和 `@Excels` 注解
  • 【跨域问题】
  • MySQL中的SPJ与None-SPJ算子详解
  • 音频-扬声器和麦克风
  • 【机器学习篇】探索机器学习在农业中的应用:从作物预测到精准农业
  • 一块钱的RISC-V 32位芯片
  • Leetcode Hot100 第六题 221. 最大正方形
  • IP 地址与蜜罐技术
  • K8s Pod OOMKilled,监控却显示内存资源并未打满
  • Python AI教程之十五:监督学习之决策树(6)高级算法C5.0决策树算法介绍
  • HTML5 语义元素:网页构建的新时代
  • 【C++】xml烧录 调用twinCat流程自动化
  • [免费]微信小程序(高校就业)招聘系统(Springboot后端+Vue管理端)【论文+源码+SQL脚本】
  • 问题清单:@DS数据库配置注解失效
  • 标题: [原创](Modern C++)现代C++的关键性概念: 初步了解std之下的几个常用子命名空间
  • DockerCompose玩转Kafka单体与集群部署,Redpanda Console助力可视化管理
  • 5.在 Vue 3 中使用 ECharts 实现菱形渐变雷达图
  • C# 队列的各种使用方法 private static ConcurrentQueue
  • 《跨西伯利亚铁路模拟器抢先版》Build16645718官方中文学习版