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){} }