Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[原创]可以在后台设置的背景音乐(各版块独立)

[复制链接]
lu5266 发表于 2005-7-21 17:45:45 | 显示全部楼层 |阅读模式
有很多人要这个,我搜索了很久,没现成的,自己弄下,大家分享!
大家支持下!



能在某个版块一打开页面就有属于它自己的背景音乐!
可以后台设置!

HACK名稱: 可以在后台设置的背景音乐(各版块独立)
適用版本: d25,d25sp1
作  者:lu5266

需要升级数据库 ::cdb_forums
修改文件:  forumdisplay.php  admin/forums.php   
修改模板:  admincp.lang.php  forumdisplay.htm  
难度:  比较简单
最後發表日期: 2005.7.25(减少了不必要的数据库查询,FY建议,poka 帮忙,谢了两位
                加了反安装(7.25)
技术支持網站: http://www.5466.ik8.com
                    http://lulu.e-168.cn

演示:http://free4.e-168.cn/luzhenling/bbs/forumdisplay.php?fid=5(有音乐)
         http://free4.e-168.cn/luzhenling/bbs/forumdisplay.php?fid=4(有音乐,跟上面的不同)
         http://free4.e-168.cn/luzhenling/bbs/forumdisplay.php?fid=8(没音乐)



第一步:升级数据库

  1. ALTER TABLE `cdb_forums` ADD `bgmusic` TINYINT( 1 ) DEFAULT '0' NOT NULL AFTER `description` ,
  2. ADD `bgmusicurl` VARCHAR( 100 ) AFTER `bgmusic` ,
  3. ADD `bgmusicloop` TINYINT( 3 ) DEFAULT '-1'  AFTER `bgmusicurl` ;
复制代码



第二步:修改 forumdisplay.php

查找
  1. f.description,
复制代码


在后面面加上
  1. f.bgmusic,f.bgmusicurl,f.bgmusicloop,
复制代码



查找
  1. name, description,
复制代码


在后面面加上
  1. bgmusic,bgmusicurl,bgmusicloop,
复制代码


第三步:修改admin/forums.php

查找

  1. showtype("$lang[forums_detail] - $forum[name]", 'top');
复制代码


在后面加上


  1. //====背景音乐==by  http://lulu.e-168.cn==================
  2.                        
  3. showsetting('forums_edit_bgmusic', 'bgmusic', $forum['bgmusic'], 'radio');                       
  4. showsetting('forums_edit_bgmusicurl', 'bgmusicurl', $forum['bgmusicurl'], 'text');                       
  5. showsetting('forums_edit_bgmusicloop', 'bgmusicloop', $forum['bgmusicloop'], 'text');
  6.                        
  7. //====背景音乐======by lu5266=======================
复制代码


查找
  1. type='$typenew', status='$statusnew',
复制代码


在后面加上

  1. bgmusic='$bgmusic',bgmusicurl='$bgmusicurl',bgmusicloop='$bgmusicloop',
复制代码



第四步:修改templates/default/admincp.lang.php

查找

  1. 'forums_detail' => '论坛详细设置',
复制代码


在后面加上


  1. 'forums_edit_bgmusic' => '背景音乐:',
  2. 'forums_edit_bgmusic_comment' => '选择“否”不用背景音乐。',       
  3.        
  4. 'forums_edit_bgmusicurl' => '背景音乐的来源:',
  5. 'forums_edit_bgmusicurl_comment' => '可以是相对路径,也可以绝对路径(http://)。',
  6.        
  7. 'forums_edit_bgmusicloop' => '背景音乐的循环次数:',
  8. 'forums_edit_bgmusicloop_comment' => '不能超过127次,“-1”表示无限次(默认)。',
复制代码


第五步:修改模板forumdisplay.htm  (你用的,我修改的是默认的)


查找:


  1. <!--{if !empty($newpmexists)}-->
  2.         {template pmprompt}
  3. <!--{/if}-->
复制代码


在后面加上

  1. <!--{if $forum[bgmusic]}-->
  2. <bgsound src=$forum[bgmusicurl] loop=$forum[bgmusicloop]>
  3. <!--{/if}-->
复制代码


第六步:更新缓存

ok!

你觉得好的话,一定要支持哦!




===============================================

如果担心的话
建议备份所改文件(安装插件之前,常规动作)



反安装方法:

1.用备份覆盖原文件

2.升级数据库;

数据库反安装代码是:
  1. ALTER TABLE `cdb_forums` DROP `bgmusic` ,
  2. DROP `bgmusicurl` ,
  3. DROP `bgmusicloop` ;
复制代码


3.更新缓存;
搞定!

[ 本帖最后由 lu5266 于 2005-8-20 01:05 编辑 ]
 楼主| lu5266 发表于 2005-7-21 17:49:53 | 显示全部楼层

这个是在看贴的时候,才有音乐的!

只是第二,第五步不同。

第二步:修改viewthread.php

查找:
  1. $discuz_action = 3;
复制代码


在后面加上
  1. //======背景音乐==By  www.5466.ik8.com=========

  2. $bgmusic_sql="SELECT bgmusic,bgmusicurl,bgmusicloop FROM $table_forums WHERE fid='$fid' ";
  3. $bgmusic_query=$db->query($bgmusic_sql);
  4. $row=$db->fetch_array($bgmusic_query);      

  5. //============背景音乐===================
复制代码


第五步:修改viewthread.htm

查找
  1. <!--{if $newpmexists}-->
  2.         {template pmprompt}
  3. <!--{/if}-->
复制代码


在后面加上

  1. <!--{if $row[bgmusic]}-->
  2. <bgsound src=$row[bgmusicurl] loop=$row[bgmusicloop]>
  3. <!--{/if}-->
复制代码


ok,

差点忘了,没更新缓存!!!

[ 本帖最后由 lu5266 于 2005-7-21 19:01 编辑 ]
回复

使用道具 举报

xmzyy 发表于 2005-7-21 18:01:22 | 显示全部楼层
好东西,多谢了。
回复

使用道具 举报

 楼主| lu5266 发表于 2005-7-21 18:05:48 | 显示全部楼层
原帖由 xmzyy 于 2005-7-21 18:01 发表
好东西,多谢了。

多谢支持
吃饭去了................
回复

使用道具 举报

freddy 发表于 2005-7-21 18:26:06 | 显示全部楼层
支持楼主!!!成功的人回一贴!马上加精~
回复

使用道具 举报

PerfectWorks 发表于 2005-7-21 18:31:42 | 显示全部楼层
forumdisplay+1不是很必要的查询……
回复

使用道具 举报

 楼主| lu5266 发表于 2005-7-21 18:48:54 | 显示全部楼层
原帖由 文文の封印 于 2005-7-21 18:31 发表
forumdisplay+1不是很必要的查询……

  1. $subexists = 0;
  2. foreach($_DCACHE['forums'] as $sub) {
  3.         if($sub['type'] == 'sub' && $sub['fup'] == $fid && (!$hideprivate || !$sub['viewperm'] || strstr($sub['viewperm'], "\t$groupid\t") || strstr($sub['users'], "\t$discuz_uid\t"))) {
  4.                 $subexists = 1;
  5.                 $sublist = array();
  6.                 $sql = $accessmasks        ? "SELECT f.fid, f.fup, f.type, f.icon, f.name, f.description, f.moderator, f.threads, f.posts, f.lastpost, f.viewperm, a.allowview FROM $table_forums f
  7.                                                 LEFT JOIN $table_access a ON a.uid='$discuz_uid' AND a.fid=f.fid
  8.                                                 WHERE fup='$fid' AND status='1' AND type='sub' ORDER BY f.displayorder"
  9.                                         : "SELECT fid, fup, type, icon, name, description, moderator, threads, posts, lastpost, viewperm FROM $table_forums WHERE fup='$fid' AND status='1' AND type='sub' ORDER BY displayorder";
  10.                 $query = $db->query($sql);
  11.                 while($sub = $db->fetch_array($query)) {
  12.                         if(forum($sub)) {
  13.                                 $sublist[] = $sub;
  14.                         }
  15.                 }
  16.                 break;
  17.         }
  18. }
复制代码


我看这段代码不是很懂,所以自己就弄了个查询。速度不会有多大影响的。
不过呢,能快就要快的
老大你帮优化吧!
回复

使用道具 举报

汤包牛奶 发表于 2005-7-21 19:31:17 | 显示全部楼层
sp1的怎么弄呢,请指教
回复

使用道具 举报

winter0706 发表于 2005-7-21 19:33:58 | 显示全部楼层
原帖由 lu5266 于 2005-7-21 18:48 发表


[code]$subexists = 0;
foreach($_DCACHE['forums'] as $sub) {
        if($sub['type'] == 'sub' && $sub['fup'] == $fid && (!$hideprivate || !$sub['viewperm'] || strstr($sub['viewperm'], ...

先問一個問題.......一看貼子音樂就會停........
那.....一首音樂才剛開始就......
回复

使用道具 举报

 楼主| lu5266 发表于 2005-7-21 19:41:30 | 显示全部楼层
原帖由 winter0706 于 2005-7-21 19:33 发表

先問一個問題.......一看貼子音樂就會停........
那.....一首音樂才剛開始就......


这个问题我也发现了


主页—>分版块—>看贴
就是从
index.php—>forumdisplay.php—>viewthread.php
每次都从新导入,总会停的啊

如果要不停的话
只能用隐藏框架页了


如果有解决方法,记得要告诉我哦

[ 本帖最后由 lu5266 于 2005-7-22 12:23 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-21 18:31 , Processed in 0.029524 second(s), 2 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表