实现起来很简单,但是个人感觉比较实用,所以拿出来给大家共享一下。
功能:
发布文章时,如果上传的附件是mp3格式,则在文章显示处自动用emff flash mp3 player来播放它。支持所有支持flash的浏览器。
方法:
需要改动的文件有三个:(请自己做好备份)
admin/uploadfiles.php [72行]
index.php [352行]
模板目录的show.htm [图片附件显示的下边]
步骤:
1. 打开admin/uploadfiles.php, 转到72行,把原来的:
复制内容到剪贴板
代码:
if (!in_array($extension, array('gif', 'jpg', 'jpeg', 'png'))) {替换成:
复制内容到剪贴板
代码:
if (!in_array($extension, array('gif', 'jpg', 'jpeg', 'png','mp3'))) {保存,搞定。
2. 在index.php的352的:
复制内容到剪贴板
代码:
} else {换成:
} 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']);
} else {
// 如果非图片文件
[/code]
3. 改模板目录的show.htm, 如果你自己的模板目录没有这个文件,你可以从default目录复制一个放到你自己的模板目录。
打开之后,找到图片附件所在的行,往下看,在紧接着的:
复制内容到剪贴板
代码:
EOT;
}}}后边加上这一段话:
复制内容到剪贴板
代码:
if ($article['mp3']) {
foreach ($article['mp3'] as $mp3) {
print <<<EOT
--><div class="attach">文章所带音乐:<br /><object type="application/x-shockwave-flash" data="images/emff.swf?src=$mp3[2]" width="200" height="55">
<param name="movie" value="images/emff.swf?src=$mp3[2]" />
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<param name="loop" value="-1" />
<a href="$mp3[2]">你的浏览器不支持Flash,直接用系统播放器试听。</a>
</object><br />
<a href="./attachment.php?id=$mp3[0]" target="_blank">$mp3[1]</a> ($mp3[3], 下载次数:$mp3[4])</div><!--
EOT;
}}存盘,把附件里的emff.swf放在images目录,全部搞定。
原理也很简单,angel为了安全,把所有的非图片文件都重命名为.file。我们要在admin/uploadfiles.php给.mp3的文件放行。
接着在index.php里读取数据,交给模板显示,就这样。
演示:
http://blog.eaxi.com/?action=show&id=101
或者:
http://seaprince.cn
如果你够懒,直接用下边附件里的补丁包覆盖博客里的相应文件即可。
[
本帖最后由 seaprince 于 2007-2-15 21:41 编辑 ]