end = array(__class__, 'render_footer'); Helper::addPanel(1, 'QuickAuthLogin/views/authbind.php', '微信账号绑定', '微信账号绑定', 'subscriber'); Helper::addRoute('wechatlogin',__TYPECHO_ADMIN_DIR__.'QuickAuthLogin/wechatlogin','QuickAuthLogin_Action','wechatlogin'); Helper::addRoute('reset',__TYPECHO_ADMIN_DIR__.'QuickAuthLogin/reset','QuickAuthLogin_Action','reset'); Helper::addRoute('ping',__TYPECHO_ADMIN_DIR__.'QuickAuthLogin/ping','QuickAuthLogin_Action','ping'); } public static function updateDb() { $db = Typecho_Db::get(); $prefix = $db->getPrefix(); if ("Pdo_Mysql" === $db->getAdapterName() || "Mysql" === $db->getAdapterName()) { $sql = "ALTER TABLE `{$prefix}users` ADD COLUMN `qa_openid` varchar(64); ALTER TABLE `{$prefix}users` ADD COLUMN `qa_nickname` varchar(64); ALTER TABLE `{$prefix}users` ADD COLUMN `qa_avatar` varchar(255);"; $db->query($sql); } else { throw new Typecho_Plugin_Exception(_t('对不起, 本插件仅支持MySQL数据库。')); } return "数据表新增字段成功!"; } /** * 禁用插件方法,如果禁用失败,直接抛出异常 * * @static * @access public * @return void * @throws Typecho_Plugin_Exception */ public static function deactivate(){ $info = self::uninstallDb(); } public static function uninstallDb() { $db = Typecho_Db::get(); $prefix = $db->getPrefix(); $sql = "ALTER TABLE `{$prefix}users` DROP COLUMN `qa_openid`; ALTER TABLE `{$prefix}users` DROP COLUMN `qa_nickname`; ALTER TABLE `{$prefix}users` DROP COLUMN `qa_avatar`;"; $db->query($sql); Helper::removePanel(1, 'QuickAuthLogin/views/authbind.php'); return "插件卸载成功!"; } /** * 获取插件配置面板 * * @static * @access public * @param Typecho_Widget_Helper_Form $form 配置面板 * @return void */ public static function config(Typecho_Widget_Helper_Form $form){ $user = Typecho_Widget::widget('Widget_User'); //var_dump($user); $api = new Typecho_Widget_Helper_Form_Element_Text('qauth_api',null,'https://api.qauth.cn',_t('QuickAuthApi:'),_t('QuickAuthApi地址,正常情况下无需修改')); $form->addInput($api); $appkey = new Typecho_Widget_Helper_Form_Element_Text('qauth_app_key',null,'',_t('AppKey:'),_t('QuickAuth后台创建应用时的AppKey 获取AppKey')); //var_dump($appkey); $form->addInput($appkey); $encryptscrypt = new Typecho_Widget_Helper_Form_Element_Text('qauth_user_secret',null,'',_t('UserSecret:'),_t('QuickAuth用户的数据加密密钥 获取UserSecret')); $form->addInput($encryptscrypt); $allowRegister = new Typecho_Widget_Helper_Form_Element_Radio('allow_register',array('0'=>'否','1'=>'是'),0,_t('允许未绑定微信账号扫码登录:',''),'开启后使用没有绑定账号的微信扫码后自动注册新账号登录!'); $form->addInput($allowRegister); $username = $user->__get('name'); $openid = $user->__get('qa_openid'); $nickname = $user->__get('qa_nickname'); echo ''; } /** * 个人用户的配置面板 * * @access public * @param Typecho_Widget_Helper_Form $form * @return void */ public static function personalConfig(Typecho_Widget_Helper_Form $form){ } public static function render_footer(){ $options = self::getoptions(); if (!Typecho_Widget::widget('Widget_User')->hasLogin()){ echo ''; } } /** 生成URL,解决部分博客未开启伪静态,仅对本插件有效 */ public static function tourl($action){ return Typecho_Common::url(__TYPECHO_ADMIN_DIR__.$action, Helper::options()->index); } /** 获取插件配置 */ public static function getoptions(){ return Helper::options()->plugin(QuickAuthLogin_Plugin::PLUGIN_NAME); } }