LT21)
*
* @package Smilies
* @author 羽中, Willin Kan
* @version 1.1.3
* @dependence 14.5.26-*
* @link http://www.yzmb.me/archives/net/smilies-for-typecho
*/
class Smilies_Plugin implements Typecho_Plugin_Interface
{
/**
* 激活插件方法,如果激活失败,直接抛出异常
*
* @access public
* @return void
* @throws Typecho_Plugin_Exception
*/
public static function activate()
{
Typecho_Plugin::factory('Widget_Abstract_Comments')->contentEx = array('Smilies_Plugin','showsmilies');
Typecho_Plugin::factory('Widget_Abstract_Contents')->contentEx = array('Smilies_Plugin','showsmilies');
Typecho_Plugin::factory('Widget_Abstract_Contents')->excerptEx = array('Smilies_Plugin','showsmilies');
Typecho_Plugin::factory('Widget_Archive')->footer = array('Smilies_Plugin','insertjs');
Typecho_Plugin::factory('admin/write-post.php')->bottom = array('Smilies_Plugin','smbutton');
Typecho_Plugin::factory('admin/write-page.php')->bottom = array('Smilies_Plugin','smbutton');
//模版调用钩子
Typecho_Plugin::factory('Widget_Comments_Archive')->callSmilies = array('Smilies_Plugin', 'output');
Helper::addAction('smilies', 'Smilies_Action');
}
/**
* 禁用插件方法,如果禁用失败,直接抛出异常
*
* @static
* @access public
* @return void
* @throws Typecho_Plugin_Exception
*/
public static function deactivate()
{
Helper::removeAction('smilies');
}
/**
* 获取插件配置面板
*
* @access public
* @param Typecho_Widget_Helper_Form $form 配置面板
* @return void
*/
public static function config(Typecho_Widget_Helper_Form $form)
{
$no22 = new Typecho_Widget_Helper_Form_Element_Checkbox('no22',
array(1=>_t('不使用标准组%s(仅输出下方的扩展表情项, 不影响标准代码解析)%s',' ','')),NULL,'');
$no22->label->setAttribute('style','font-weight:normal;');
$form->addInput($no22);
$replacetxt = new Typecho_Widget_Helper_Form_Element_Checkbox('replacetxt',
array(1=>_t('替换字符表情%s(或干扰文本)%s',' ','')),NULL,'');
$replacetxt->label->setAttribute('style','font-weight:normal;');
$form->addInput($replacetxt);
$smiliesset = new Typecho_Widget_Helper_Form_Element_Select('smiliesset',
array('qq'=>_t('扫描中...')),'qq',_t('选择表情包'),_t('预览插件目录下的表情文件夹进行排序或自定义扩展'));
$form->addInput($smiliesset);
$customset = new Typecho_Widget_Helper_Form_Element_Textarea('customset',NULL,'',_t('扩展表情组'),_t('以"表情代码%s(半角竖线)表情图片地址"的形式填写, 每行一组
例: %s可覆盖此标准代码解析','|',':smile:|http://image.com/smile.gif '));
$customset->input->setAttribute('style','max-width:440px;height:180px;');
$customset->addRule(array(new Smilies_Plugin,'notag'),_t('请勿使用符号<|>作为表情代码, 以免造成解析错误'));
$form->addInput($customset);
$omax = new Typecho_Widget_Helper_Form_Element_Text('omax',
NULL,'21',_t('限制表情尺寸'),_t('设置表情在前台显示的最大宽度, 单位: px(不用填写)'));
$omax->input->setAttribute('class','text-s');
$omax->input->setAttribute('style','width:40px;');
$form->addInput($omax->addRule('isFloat'));
$cmax = new Typecho_Widget_Helper_Form_Element_Text('cmax',NULL,'28','⇐ '._t('选框按钮 | 评论内').' ⇒');
$cmax->input->setAttribute('class','text-s');
$cmax->label->setAttribute('style','position:absolute;color:#999;font-weight:normal;bottom:38px;left:42px;');
$cmax->input->setAttribute('style','position:absolute;width:40px;bottom:40px;left:186px;');
$cmax->setAttribute('style','position:relative');
$form->addInput($cmax->addRule('isFloat'));
$amax = new Typecho_Widget_Helper_Form_Element_Text('amax',NULL,'32',_t('正文内').' ⇒');
$amax->input->setAttribute('class','text-s');
$amax->label->setAttribute('style','position:absolute;color:#999;font-weight:normal;bottom:38px;left:230px;');
$amax->input->setAttribute('style','position:absolute;width:40px;bottom:40px;left:290px;');
$amax->setAttribute('style','position:relative');
$form->addInput($amax->addRule('isFloat'));
$textareaid = new Typecho_Widget_Helper_Form_Element_Text('textareaid',
NULL,_t('一般无需填写'),_t('指定评论框ID'),_t('若识别有误可在此手动指定主题的评论框(textarea)id'));
$textareaid->input->setAttribute('style','width:100px;');
$form->addInput($textareaid);
$allowpop = new Typecho_Widget_Helper_Form_Element_Radio('allowpop',
array(1=>_t('开启'),0=>_t('关闭')),0,_t('按钮弹窗效果'));
$form->addInput($allowpop);
$width = new Typecho_Widget_Helper_Form_Element_Text('width',NULL,'240',_t('弹窗宽度:'));
$width->input->setAttribute('class','text-s');
$width->label->setAttribute('style','color:#999;font-weight:normal;');
$width->input->setAttribute('style','position:absolute;width:45px;top:-4px;left:60px;');
$width->setAttribute('style','position:relative');
$form->addInput($width->addRule('isFloat'));
$radius = new Typecho_Widget_Helper_Form_Element_Text('radius',NULL,'11','px'._t('圆角度:').'');
$radius->input->setAttribute('class','text-s');
$radius->label->setAttribute('style','position:absolute;color:#999;font-weight:normal;bottom:7px;left:105px;');
$radius->input->setAttribute('style','position:absolute;width:40px;bottom:10px;left:174px;');
$radius->setAttribute('style','position:relative');
$form->addInput($radius->addRule('isFloat'));
$bcolor = new Typecho_Widget_Helper_Form_Element_Text('bcolor',NULL,'#bbb','px'._t('边框颜色:').'');
$bcolor->input->setAttribute('class','text-s');
$bcolor->label->setAttribute('style','position:absolute;color:#999;font-weight:normal;bottom:7px;left:214px;');
$bcolor->input->setAttribute('style','position:absolute;width:75px;bottom:10px;left:297px;');
$bcolor->setAttribute('style','position:relative');
$bcolor->addRule(array(new Smilies_Plugin,'colorformat'));
$form->addInput($bcolor);
$shadow = new Typecho_Widget_Helper_Form_Element_Select('shadow',
array(1=>_t('有'),0=>_t('无')),1,_t('边框阴影:'),'');
$shadow->label->setAttribute('style','position:absolute;color:#999;font-weight:normal;bottom:7px;left:380px;');
$shadow->input->setAttribute('style','position:absolute;bottom:11px;right:271px;');
$shadow->setAttribute('style','position:relative;');
$form->addInput($shadow);
$jqmode = new Typecho_Widget_Helper_Form_Element_Radio('jqmode',
array(1=>_t('jQuery'),0=>_t('原生js')),0,_t('功能脚本模式'),_t('仅兼容性表现略有差异, jQuery自动判断加载CDN源'));
$form->addInput($jqmode);
$postmode = new Typecho_Widget_Helper_Form_Element_Radio('postmode',
array(1=>_t('开启'),0=>_t('关闭')),0,_t('正文使用表情'),_t('编辑文章或页面时也可选择插入表情图片并发布显示'));
$form->addInput($postmode);
//排序保存隐藏域
$smsort = new Typecho_Widget_Helper_Form_Element_Hidden('smsort',
NULL,'icon_mrgreen.gif|icon_neutral.gif|icon_twisted.gif|icon_arrow.gif|icon_eek.gif|icon_smile.gif|icon_confused.gif|icon_cool.gif|icon_evil.gif|icon_biggrin.gif|icon_idea.gif|icon_redface.gif|icon_razz.gif|icon_rolleyes.gif|icon_wink.gif|icon_cry.gif|icon_surprised.gif|icon_lol.gif|icon_mad.gif|icon_sad.gif|icon_exclaim.gif|icon_question.gif');
$form->addInput($smsort);
$option = Helper::options();
$security = Helper::security();
//输出面板效果
?>
<?php $comments->smilies(); ?>'); ?>