bottom = array('XiaMiPlayer_Plugin', 'Insert');
Typecho_Plugin::factory('admin/write-page.php')->bottom = array('XiaMiPlayer_Plugin', 'Insert');
Typecho_Plugin::factory('Widget_Archive')->header = array('XiaMiPlayer_Plugin', 'header');
Typecho_Plugin::factory('Widget_Abstract_Contents')->contentEx = array('XiaMiPlayer_Plugin','ParseXiaMi');
}
/**
* 禁用插件方法,如果禁用失败,直接抛出异常
*
* @static
* @access public
* @return void
* @throws Typecho_Plugin_Exception
*/
public static function deactivate(){
Helper::removeRoute("XiaMiPlayer_Route");
}
/**
* 插件的实现方法
*
* @access public
* @return void
*/
public static function header()
{
$options = Helper::options();
if($options->plugin('XiaMiPlayer')->jquery) {
echo "";
}
?>
plugin('XiaMiPlayer');
$box = Typecho_Common::url('XiaMiPlayer/jplayer/index.html', $options->pluginUrl);
$music = Typecho_Common::url('XiaMiPlayer',$options->index);
$ajax = $options->pluginUrl.'/XiaMiPlayer/ajax.php';
/* 播放器样式 */
switch($config->type) {
case 'blue':
$color = '37839e,2b5c70';
break;
case 'green':
$color = '74db89,55db74';
break;
case 'yellow':
$color = 'ffd863,de8d24';
break;
case 'red':
$color = 'd64e3c,b82a25';
break;
case 'purple':
$color = '8073c7,5c396e';
break;
case 'user':
$color = ($config->background && $config->border) ? ','.substr($config->background,1).'|'.substr($config->border,1) : '';
break;
default:
$color = '';
break;
}
?>
index);
$ajax = $options->pluginUrl.'/XiaMiPlayer/ajax.php';
$config = $options->plugin('XiaMiPlayer');
switch($config->type) {
case 'blue':
$color = '37839e,2b5c70';
break;
case 'green':
$color = '74db89,55db74';
break;
case 'yellow':
$color = 'ffd863,de8d24';
break;
case 'red':
$color = 'd64e3c,b82a25';
break;
case 'purple':
$color = '8073c7,5c396e';
break;
case 'user':
$color = ($config->background && $config->border) ? ','.substr($config->background,1).'|'.substr($config->border,1) : '';
break;
default:
$color = '';
break;
}
/** 短代码替换 **/
$number = preg_match_all('/\[xiami (.*?)\]/si', $content, $match);
if($number) {foreach($match[0] as $key => $string) {
$content = str_replace($string, '', $content);
}}
/** Markdown替换 **/
$number = preg_match_all("/\\1<\/a>/im", $content, $match);
if($number) {foreach($match[0] as $key => $string) {
$type = $match[3][$key]=='song' ? 'songs' : $match[3][$key];
$id = $match[4][$key];
$result = json_decode(file_get_contents($ajax.'?type='.$type.'&id='.$id), true);
if(in_array($type, array("album", "collect"))) {
if(empty($result['songs'])) continue;
$songs = array();
foreach($result['songs'] as $song) $songs[] = $song['song_id'];
$lurl = $url."?songs=".implode(',', $songs);
if($color) $lurl .= "&setting=$color";
$content = str_replace($string, '', $content);
} else {
if(!$result['song_id']) continue;
$surl = $url."?songs=".$result['song_id'];
if($color) $surl .= "&setting=$color";
$content = str_replace($string, '', $content);
}
}}
/** 非Markdown替换 **/
$number = preg_match_all("/https:\/\/(www.)?xiami\.com\/([a-z]+)\/([a-zA-Z0-9]+)/im", $content, $match);
if($number) {foreach($match[0] as $key => $string) {
$type = $match[2][$key]=='song' ? 'songs' : $match[2][$key];
$id = $match[3][$key];
$result = json_decode(file_get_contents($ajax.'?type='.$type.'&id='.$id), true);
if(in_array($type, array("album", "collect"))) {
if(empty($result['songs'])) continue;
$songs = array();
foreach($result['songs'] as $song) $songs[] = $song['song_id'];
$lurl = $url."?songs=".implode(',', $songs);
if($color) $lurl .= "&setting=$color";
$content = str_replace($string, '', $content);
} else {
if(!$result['song_id']) continue;
$surl = $url."?songs=".$result['song_id'];
if($color) $surl .= "&setting=$color";
$content = str_replace($string, '', $content);
}
}}
return $content;
}
/**
* 获取插件配置面板
*
* @access public
* @param Typecho_Widget_Helper_Form $form 配置面板
* @return void
*/
public static function config(Typecho_Widget_Helper_Form $form)
{
$jquery = new Typecho_Widget_Helper_Form_Element_Radio('jquery', array('0' => _t('不加载'), '1' => _t('加载')), '1', _t('是否加载外部jQuery库文件'), _t('插件需要jQuery库文件的支持,如果主题已经加载了可以选择不加载'));
$form->addInput($jquery);
$color = array('orange' => _t('默认橙'),'blue' => _t('天空蓝'),'green' => _t('自然绿'),'yellow' => _t('大地黄'),'red' => _t('高原红'),'purple' => _t('葡萄紫'),'user' => _t('自定义'));
$type = new Typecho_Widget_Helper_Form_Element_Radio('type', $color,'orange',_t('请选择播放器样式'));
$form->addInput($type);
$background = new Typecho_Widget_Helper_Form_Element_Text('background', NULL, '#FF6503', _t('播放器背景'), NULL);
$background->input->setAttribute('class', 'mini');
$form->addInput($background);
$border = new Typecho_Widget_Helper_Form_Element_Text('border', NULL, '#C4753D', _t('播放器边框'), NULL);
$border->input->setAttribute('class', 'mini');
$form->addInput($border);
}
/**
* 个人用户的配置面板
*
* @access public
* @param Typecho_Widget_Helper_Form $form
* @return void
*/
public static function personalConfig(Typecho_Widget_Helper_Form $form){}
}