花了点时间弄了一个插件。

代码地址:https://github.com/web3d/plugins/tree/master/Sinauth

Typecho的扩展机制还是比较完善的,可以自行增加Action、Route、扩展现有Widget功能、后台插件配置界面等。

偷懒,使用的是SAE中封装的sdk访问新浪开放平台数据。

插件放到/root_path/usr/plugins/Sinauth 目录下:

Plugin.php
AuthorizeAction.php

Plugin.php用于插件初始化,AuthorizeAction.php用于扩展功能。

<?php
class Sinauth_Plugin implements Typecho_Plugin_Interface
{/*** 激活插件方法,如果激活失败,直接抛出异常* * @access public* @return void* @throws Typecho_Plugin_Exception*/public static function activate(){Typecho_Plugin::factory('Widget_User')->___sinauthAuthorizeIcon = array('Sinauth_Plugin', 'authorizeIcon');Helper::addAction('sinauthAuthorize', 'Sinauth_AuthorizeAction');Helper::addRoute('sinauthAuthorize', '/sinauthAuthorize/', 'Sinauth_AuthorizeAction', 'action');Helper::addRoute('sinauthCallback', '/sinauthCallback/', 'Sinauth_AuthorizeAction', 'callback');return _t($meg.'。请进行<a href="options-plugin.php?config='.self::$pluginName.'">初始化设置</a>');}public static function install(){//db创建}/*** 获取插件配置面板* * @access public* @param Typecho_Widget_Helper_Form $form 配置面板* @return void*/public static function config(Typecho_Widget_Helper_Form $form){$client_id = new Typecho_Widget_Helper_Form_Element_Text('client_id', NULL,'', _t('App Key'),'请在微博开放平台查看http://open.weibo.com');$form->addInput($client_id);$client_secret = new Typecho_Widget_Helper_Form_Element_Text('client_secret', NULL,'', _t('App Secret'),'请在微博开放平台查看http://open.weibo.com');$form->addInput($client_secret);$callback_url = new Typecho_Widget_Helper_Form_Element_Text('callback_url', NULL,'http://', _t('回调地址'),'请与微博开放平台中设置一致');$form->addInput($callback_url);}
}
class Sinauth_AuthorizeAction extends Typecho_Widget implements Widget_Interface_Do
{public function action(){}public function callback(){}
}

在需要放入口的地方,加上

<?php $this->user->sinauthAuthorizeIcon(); ?>

Typecho 新浪登陆插件 Sinauth相关推荐

  1. kubernetes1.4新特性:支持两种新的卷插件

    背景介绍 在Kubernetes中卷的作用在于提供给POD持久化存储,这些持久化存储可以挂载到POD中的容器上,进而给容器提供持久化存储. 从图中可以看到结构体PodSpec有个属性是Volumes, ...

  2. Typecho炫彩鼠标插件:HoerMouse

    简介: Typecho炫彩鼠标插件:HoerMouse 网盘下载地址: http://kekewl.org/AOssaedbNh10 图片:

  3. 新媒体管家插件永久停服了

    " 阅读本文大概需要 3 分钟. " 今天照常弄公众号,结果发现平常用的新媒体管家插件功能失效了,我老婆也给我发来一张图: 对此我很是诧异啊,咋好好的说停就停了呢?去他们官网也没看 ...

  4. 新媒体管家plus(新媒体管家插件) v6.66官方最新版

    点击下载来源:新媒体管家plus(新媒体管家插件) v6.66官方最新版 新媒体管家Plus,又称新媒体管家插件,是一款专业且好用的新媒体编辑插件,众所周知,随着社会的发展,自媒体已经崛起,那这款新媒 ...

  5. 强推一款谷歌新标签管理插件——infinity Pro!

    0. 前言 一直在寻找一款谷歌新标签管理的插件,之前用过"简 Tab",觉得界面确实挺好看,但是在自定义方面还是有欠缺,所以用了一段时间之后就卸载了.昨天看一篇公众号文章,推荐了& ...

  6. 好用的Typecho在线音乐播放插件-APlayer

    Typecho在线音乐播放插件-APlayer 支持国内五大音乐平台(网易云.QQ.虾米.百度.酷狗)的单曲/专辑/歌单播放 简单快捷,复制音乐详情页面网址,后台自动生成播放代码 前端 APlayer ...

  7. Edge浏览器使用BdTab新标签页插件(BD新标签页)

    当我们的浏览器成功安装BdTab新标签页插件之后的效果: 如果我们在关闭浏览器,重新打开之后回到edge浏览器的默认界面时(如下): 这个时候我们首先要确定BdTab新标签页插件是否开启了,这个是否开 ...

  8. Code Coverage API plugin 一个新的代码覆盖率插件

    概要 Code Coverage API plugin 是 Jenkins 在 GSoC 2018 中的一个子项目.GSoC 是一个由谷歌举办的,帮助在校学生进入开源社区,为开源组织贡献代码的活动. ...

  9. 一款可以完美替代浏览器自带起始页的新标签页插件:Wetab

    现在打开你们的浏览器,映入眼帘的是不是一片空白的自带起始页?或者是乱七八糟布满网站快捷方式的页面? Wetab新标签页是一款没有广告并且免费使用的浏览器插件,还原一个干净纯粹的浏览器体验. 一.为什么 ...

最新文章

  1. 网媒亟待建立广告价值衡量体系
  2. 数据中心制冷基本原则及节能方案
  3. 我是状态机,有一颗永远骚动的机器引擎
  4. [Sharepoint2007对象模型]第一回:服务器场(SPFarm)
  5. 鸿蒙唯独没有手机,想用鸿蒙OS,却没有华为手机?华为高层:还有1亿台设备可体验...
  6. OpenShift 4 之Istio-Tutorial (3) 监控微服务运行
  7. 高通:2 亿像素手机 2020 年诞生!
  8. .NET中GC的运行机制
  9. 【转】curl 查看一个web站点的响应时间(rt)
  10. Vue 常用前端UI框架
  11. 泛函分析 01.01 距离空间-绪论
  12. iGrimaceV8 V8在线威锋源apt.so/tuzhurenv8手机直接下载安装教程图:
  13. 阿里云os边缘应用程序的三个问题
  14. 【高德LBS开源组件大赛】回眸微博的足迹
  15. 《代码大全》读书笔记(转载)
  16. el-input输入11位手机号,边输入边验证手机号码格式
  17. “Word文件设置了多级列表,却还是不能创建目录”的解决办法
  18. AI是怎么样的演算的呢?预测《权力游戏》中角色的生死
  19. Linux下对MySQL数据库的操作
  20. IP地址和子网掩码详解

热门文章

  1. 给 Flutter 界面切换来点特效
  2. 数据库表操作、数据类型及完整性约束
  3. Fibinary Numbers
  4. MarkDown语法-使用博客园的markDown编辑
  5. python2 pip安装包等出现各种编码错误UnicodeDecodeError: 'ascii'(/或者utf-8) codec can't decode byte 0xd2......
  6. xxx征集系统项目目标文档
  7. 在ubuntu中安装minicom时出现device /dev/tty8 is locked解决办法
  8. Spring 管理Bean(获取Bean,初始化bean事件,自动匹配ByName······等)
  9. C#配置及使用log4net
  10. System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误