查看完整版本: sablog-x 2.0 安装给附件的音乐播放器

Gol 2008-8-20 18:41

sablog-x 2.0 安装给附件的音乐播放器

sablog-x论坛里面以前讲过这个用播放器播放附件里面的mp3音乐的方法,我这里写一下2.0测试版的添加方法。
首先,解决上传保留文件后缀名的问题
找到admin\uploadfiles.php文件,大概在66行,将[code]if (!in_array($attach['ext'], array('gif', 'jpg', 'jpeg', 'png'))) { [/code]替换成[code]if (!in_array($attach['ext'], array('gif', 'jpg', 'jpeg', 'png','mp3'))) { [/code]然后为文章添加上播放器
找到modules\show.php文件,大概在118行,在[code]} else { // 如果非图片文件 $a_size = sizecount($attach['filesize']); $article['file'][$attach['attachmentid']]=array($attach['attachmentid'],$attach['filename'] ,$a_size,$attach['downloads']); } [/code]的前面添加上几行代码,如下[code]} elseif ($a_ext == 'mp3'){ // 是mp3 $a_size = sizecount($attach['filesize']);    $article['mp3'][$attach['attachmentid']]=array($attach['attachmentid'] ,$attach['filename'],$a_path,$a_size,$attach['downloads']); [/code]然后打开你的模板文件夹,找到其中的show.php文件,在其中适当的位置,或者说你想放置MP3播放器的位置添加上以下代码[code]<!--{if $article['mp3']}-->  <!--{loop $article['mp3'] $mp3}-->  <div class="attach">歌曲名: $mp3[1]
<embed pluginspage="http://www.macromedia.com/go/getflashplayer" src="$options[url]images/dewplayer.swf?son={$options[url]}attachment.php?id={$mp3[0]}&&autoplay=1&&autoreplay=1" width="200" height="20" type="application/x-shockwave-flash" autostart="true"> /*这里重新修改过 */ </div>  <!--{/loop}-->  <!--{/if}-->  [/code]如果你需要在文章列表那里显示mp3播放器,请打开modules\article.php,在190行附近的[code]} else { // 如果非图片文件 [/code]前面加上几行代码,如下[code]} elseif ($a_ext == 'mp3'){     // 是mp3     $a_size = sizecount($attach['filesize']);        $article['mp3'][$attach['attachmentid']]=array($attach['attachmentid'],$attach['filename'],$a_path,$a_size,$attach['downloads']); [/code]然后继续往下,大概210行的位置,找到[code]$article['content'] = $article['description'];  [/code]把它替换成[code]    $attachs= unserialize(sax_stripslashes($article['attachments']));     if (is_array($attachs)) {         foreach ($attachs AS $attach) {             $a_path = $options['attachments_dir'].$attach['filepath'];             if (file_exists($a_path)) {                 $a_ext = strtolower(getextension($attach['filename']));                 if ($a_ext == 'mp3'){                     // 是mp3                     $a_size = sizecount($attach['filesize']);                        $article['mp3'][$attach['attachmentid']]=array($attach['attachmentid'],$attach['filename'],$a_path,$a_size,$attach['downloads']);                 }                 }             }         }         //如果空,释放掉变量         $attachmentids=array();          foreach($attachmentids as $key => $value){             if($article['image'][$value]){                 unset($article['image'][$value]);             }             if($article['file'][$value]){                 unset($article['file'][$value]);             }         } $article['content'] = $article['description']; [/code]然后打开模板文件夹,打开normal.php文件,在适当的位置(你要放置播放器的地方)加上[code]                <!--{if $article['mp3']}-->                     <!--{loop $article['mp3'] $mp3}-->                         <div class="attach">歌曲名: $mp3[1]
<embed pluginspage="http://www.macromedia.com/go/getflashplayer" src="$options[url]images/dewplayer.swf?son={$options[url]}attachment.php?id={$mp3[0]}" width="200" height="20" type="application/x-shockwave-flash" autostart="true">  //这里重新修改过                         <!--{/loop}-->                  <!--{/if}--> [/code]最后将文末附件中的播放器放到博客根目录下的images目录中,就可以了。
最后介绍一下整个修改之后实现的效果
[list=1]
[*]上传mp3文件不会被改名
[*]显示文章的页面里面播放器自动播放(自动播放功能,注意看两端模板文件中代码的不同)
[*]在文章列表页面有播放器,但不自动播放
[/list]不过这样修改的代码在文章的歌曲会同时播放,所以,推荐一篇文章只放一首歌。如果按照以上过程修改出现了问题,请速速留言,我尽力帮你解决(最好能够提供你的源代码)。
PS.发现伪静态的页面使用这个有问题,发现是地址路径有问题,稍稍修改了一下,添加上$options[url]作为根目录地址,还有在模板里面,两个变量放在一起的话,必须分别用{}括起来。现在一切都正常了。
页: [1]
查看完整版本: sablog-x 2.0 安装给附件的音乐播放器