You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

153 lines
5.8 KiB

<?php
/**
* 评论者认证
*
* @package CommentApprove
* @author kuye
* @version 0.1.0
* @update: 2016.08.48
* @link http://www.yuzhiwei.com.cn/
*/
class CommentApprove_Plugin implements Typecho_Plugin_Interface
{
/**
* 激活插件方法,如果激活失败,直接抛出异常
*
* @access public
* @return void
* @throws Typecho_Plugin_Exception
*/
public static function activate(){}
/**
* 禁用插件方法,如果禁用失败,直接抛出异常
*
* @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 config(Typecho_Widget_Helper_Form $form)
{
$type = new Typecho_Widget_Helper_Form_Element_Radio('type',array(
'1' => '使用自带样式',
'2' => '使用自填样式'),
'1', _t('角色样式选择'), _t('如选择自填样式,则在角色名称那边带入样式') );
$form->addInput($type);
//角色1
$name_1 = new Typecho_Widget_Helper_Form_Element_Text('name_1',
NULL,'博主',_t('角色1'),_t('填入角色1的名称'));
$form->addInput($name_1);
$color_1 = new Typecho_Widget_Helper_Form_Element_Text('color_1',
NULL,'#1ba1e2',_t('角色1样式颜色'),_t('填入颜色代码,只有使用自带样式时才生效'));
$form->addInput($color_1);
$email_1 = new Typecho_Widget_Helper_Form_Element_Textarea('email_1',
NULL,'',_t('邮箱地址列表1'),_t('每个邮箱地址之间以英文半角逗号隔开'));
$form->addInput($email_1);
//角色2
$name_2 = new Typecho_Widget_Helper_Form_Element_Text('name_2',
NULL,'好友',_t('角色2'),_t('填入角色2的名称'));
$form->addInput($name_2);
$color_2 = new Typecho_Widget_Helper_Form_Element_Text('color_2',
NULL,'#1ba1e2',_t('角色2样式颜色'),_t('填入颜色代码,只有使用自带样式时才生效'));
$form->addInput($color_2);
$email_2 = new Typecho_Widget_Helper_Form_Element_Textarea('email_2',
NULL,'',_t('邮箱地址列表2'),_t('每个邮箱地址之间以英文半角逗号隔开'));
$form->addInput($email_2);
//角色3
$name_3 = new Typecho_Widget_Helper_Form_Element_Text('name_3',
NULL,'',_t('角色3'),_t('填入角色3的名称'));
$form->addInput($name_3);
$color_3 = new Typecho_Widget_Helper_Form_Element_Text('color_3',
NULL,'#1ba1e2',_t('角色3样式颜色'),_t('填入颜色代码,只有使用自带样式时才生效'));
$form->addInput($color_3);
$email_3 = new Typecho_Widget_Helper_Form_Element_Textarea('email_3',
NULL,'',_t('邮箱地址列表3'),_t('每个邮箱地址之间以英文半角逗号隔开'));
$form->addInput($email_3);
}
/**
* 个人用户的配置面板
*
* @access public
* @param Typecho_Widget_Helper_Form $form
* @return void
*/
public static function personalConfig(Typecho_Widget_Helper_Form $form){}
/**
* 插件实现方法
*
* @access public
* @param str $email 评论者邮箱地址
* @return void
*/
public static function identify($email = NULL)
{
if (empty($email)){
return;
}
$status = 0;
$type = Typecho_Widget::widget('Widget_Options')->plugin('CommentApprove')->type;
//判断角色1
$email_1 = Typecho_Widget::widget('Widget_Options')->plugin('CommentApprove')->email_1;
if (!empty($email_1)){
$email_1 = explode(',',$email_1);
if (in_array($email, $email_1)) {
$status = 1;
}
}
//判断角色2
$email_2 = Typecho_Widget::widget('Widget_Options')->plugin('CommentApprove')->email_2;
if (!empty($email_2)){
$email_2 = explode(',',$email_2);
if (in_array($email, $email_2)) {
$status = 2;
}
}
//判断角色3
$email_3 = Typecho_Widget::widget('Widget_Options')->plugin('CommentApprove')->email_3;
if (!empty($email_3)){
$email_2 = explode(',',$email_3);
if (in_array($email, $email_3)) {
$status = 3;
}
}
//角色名
switch ($status){
case 0: $name="";break;
case 1: $name = Typecho_Widget::widget('Widget_Options')->plugin('CommentApprove')->name_1;break;
case 2: $name = Typecho_Widget::widget('Widget_Options')->plugin('CommentApprove')->name_2;break;
case 3: $name = Typecho_Widget::widget('Widget_Options')->plugin('CommentApprove')->name_3;break;
}
if (!empty($name)){
if ($type == 1){
switch ($status){
case 0: $color = "";break;
case 1: $color = Typecho_Widget::widget('Widget_Options')->plugin('CommentApprove')->color_1;break;
case 2: $color = Typecho_Widget::widget('Widget_Options')->plugin('CommentApprove')->color_2;break;
case 3: $color = Typecho_Widget::widget('Widget_Options')->plugin('CommentApprove')->color_3;break;
}
$str = '<span class="commentapprove" '.
'style="color: #FFF;padding: 2px 4px;font-size: 12px;border-radius: 3px;'.
'background-color: '.$color.';" >'.$name.'</span>';
echo $str;
}else{
echo $name;
}
}else{
return;
}
}
}