comment = array(__CLASS__, 'filter'); } /** * 禁用插件方法,如果禁用失败,直接抛出异常 * * @static * @access public * @return void * @throws Typecho_Plugin_Exception */ public static function deactivate() {} /** * 个人用户的配置面板 * * @access public * @param Typecho_Widget_Helper_Form $form * @return void */ public static function personalConfig(Typecho_Widget_Helper_Form $form) {} /** * 获取插件配置面板 * * @access public * @param Typecho_Widget_Helper_Form $form 配置面板 * @return void */ public static function config(Typecho_Widget_Helper_Form $form) { $captchakeyDescription = _t("To use GeeTest you must get an API key from http://www.geetest.com/"); $captchakey = new Typecho_Widget_Helper_Form_Element_Text('captchakey', NULL, '', _t('Captcha key:'), $captchakeyDescription); $privatekey = new Typecho_Widget_Helper_Form_Element_Text('privatekey', NULL, '', _t('Private key:'), _t('')); $dispmode = new Typecho_Widget_Helper_Form_Element_Select('dispmode', array('float' => '浮动式','embed' => '嵌入式','popup' => '弹出式'), 'float', _t('Display mode(experience online):'), _t('')); $form->addInput($captchakey); $form->addInput($privatekey); $form->addInput($dispmode); } /** * 展示验证码 */ public static function output() { $captchakey = Typecho_Widget::widget('Widget_Options')->plugin('GeeTest')->captchakey; $dispmode = Typecho_Widget::widget('Widget_Options')->plugin('GeeTest')->dispmode; $str = '&product='.$dispmode; if ($dispmode == 'popup') { $str = $str.'&popupbtnid=submit-button'; } echo ""; } public static function filter($comment, $obj) { $userObj = $obj->widget('Widget_User'); if($userObj->hasLogin() && $userObj->pass('administrator', true)) { return $comment; } $privatekey = Typecho_Widget::widget('Widget_Options')->plugin('GeeTest')->privatekey; $geetest = new GeetestLib($privatekey); $validate_response = $geetest->geetest_validate( @$_POST ['geetest_challenge'], @$_POST ['geetest_validate'], @$_POST ['geetest_seccode']); if ($validate_response) { return $comment; } throw new Typecho_Widget_Exception(_t('验证码不正确哦!')); } }