Version: 1.5, by blackpheonix
Developer Last Online: Jul 2007
Version: 3.5.4
Rating:
Released: 11-02-2005
Last Update: 05-31-2006
Installs: 119
Template Edits
Additional Files
No support by the author.
[Original Source & Files Copyrighted to ? Dynamic Drive]
UPDATED:
Ok i have changed the code a little bit and added some images to the zip folder at current i havent added a menu in admin CP to globally turn this off
when i manage to figure out the new hooks system ill have a bash at doing it for you .
You can easily add your own images just upload your image to the effects folder which should be located
in your forums image folder for example /forum/images/misc/effects/
Then change the code to point to the new image name.
The images will only work with the Forum Effects code
ok lets get started .
first goto admincp > styles & templates > edit templates and locate header and edit
at the very very top before anything else. Add one of the following codes,
For small snowflakes add this code
Code:
<!-- Snow Effect(Small SnowFlakes) by Blackpheonix ? to Dynamic Drive -->
<script type="text/javascript" src="/forum/images/misc/effects/snow.js">
</script>
<!-- /Snow Effect(Small SnowFlakes) by Blackpheonix ? to Dynamic Drive -->
For big snowflakes and other effects add this code
Code:
<!-- Forum Effects by Blackpheonix ? to Dynamic Drive -->
<script language="JavaScript1.2">
//Configure below to change URL path to the snow image
var snowsrc="/forum/images/misc/effects/effect(*).gif"
// Configure below to change number of snow to render
var no = 10;
var ns4up = (document.layers) ? 1 : 0; // browser sniffer
var ie4up = (document.all) ? 1 : 0;
var ns6up = (document.getElementById&&!document.all) ? 1 : 0;
var dx, xp, yp; // coordinate and position variables
var am, stx, sty; // amplitude and step variables
var i, doc_width = 800, doc_height = 600;
if (ns4up||ns6up) {
doc_width = self.innerWidth;
doc_height = self.innerHeight;
} else if (ie4up) {
doc_width = document.body.clientWidth;
doc_height = document.body.clientHeight;
}
dx = new Array();
xp = new Array();
yp = new Array();
am = new Array();
stx = new Array();
sty = new Array();
for (i = 0; i < no; ++ i) {
dx[i] = 0; // set coordinate variables
xp[i] = Math.random()*(doc_width-50); // set position variables
yp[i] = Math.random()*doc_height;
am[i] = Math.random()*20; // set amplitude variables
stx[i] = 0.02 + Math.random()/10; // set step variables
sty[i] = 0.7 + Math.random(); // set step variables
if (ns4up) { // set layers
if (i == 0) {
document.write("<layer name=\"dot"+ i +"\" left=\"15\" top=\"15\" visibility=\"show\"><a href=\"http://dynamicdrive.com/\"><img src='"+snowsrc+"' border=\"0\"><\/a><\/layer>");
} else {
document.write("<layer name=\"dot"+ i +"\" left=\"15\" top=\"15\" visibility=\"show\"><img src='"+snowsrc+"' border=\"0\"><\/layer>");
}
} else if (ie4up||ns6up) {
if (i == 0) {
document.write("<div id=\"dot"+ i +"\" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\"><a href=\"http://dynamicdrive.com\"><img src='"+snowsrc+"' border=\"0\"><\/a><\/div>");
} else {
document.write("<div id=\"dot"+ i +"\" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\"><img src='"+snowsrc+"' border=\"0\"><\/div>");
}
}
}
function snowNS() { // Netscape main animation function
for (i = 0; i < no; ++ i) { // iterate for every dot
yp[i] += sty[i];
if (yp[i] > doc_height-50) {
xp[i] = Math.random()*(doc_width-am[i]-30);
yp[i] = 0;
stx[i] = 0.02 + Math.random()/10;
sty[i] = 0.7 + Math.random();
doc_width = self.innerWidth;
doc_height = self.innerHeight;
}
dx[i] += stx[i];
document.layers["dot"+i].top = yp[i];
document.layers["dot"+i].left = xp[i] + am[i]*Math.sin(dx[i]);
}
setTimeout("snowNS()", 10);
}
function snowIE_NS6() { // IE and NS6 main animation function
for (i = 0; i < no; ++ i) { // iterate for every dot
yp[i] += sty[i];
if (yp[i] > doc_height-50) {
xp[i] = Math.random()*(doc_width-am[i]-30);
yp[i] = 0;
stx[i] = 0.02 + Math.random()/10;
sty[i] = 0.7 + Math.random();
doc_width = ns6up?window.innerWidth : document.body.clientWidth;
doc_height = ns6up?window.innerHeight : document.body.clientHeight;
}
dx[i] += stx[i];
if (ie4up){
document.all["dot"+i].style.pixelTop = yp[i];
document.all["dot"+i].style.pixelLeft = xp[i] + am[i]*Math.sin(dx[i]);
}
else if (ns6up){
document.getElementById("dot"+i).style.top=yp[i]+'px';
document.getElementById("dot"+i).style.left=xp[i] + am[i]*Math.sin(dx[i])+'px';
}
}
setTimeout("snowIE_NS6()", 10);
}
if (ns4up) {
snowNS();
} else if (ie4up||ns6up) {
snowIE_NS6();
}
</script>
<!-- /Forum Effects by Blackpheonix ? to Dynamic Drive -->
find and edit this line
var snowsrc="/forum/images/misc/effects/effect(*).gif"
point it to your forum image path and delete the (*) and put a number from 1-18 (make sure there is no space for example effect1) to use the pre-added images.
Let your forum members choose weather or not to display the effect. - Thanks to SHANE-D-PAIN
Go to AdminCP => User Profile Fields => Add new User Profile field => Single Select Menu
Title: View Forum Effects
Description: Choose yes to view forum effects.
Options:
Yes
No
Set Default: Yes, but No First Blank Option
Editable By User: Yes
Display Page: Options: Other Options
Write down your field# . i.e field5
Change X to the Field id.
Just remember to wrap the code with the if tags provided.
Code:
<if condition="$bbuserinfo[fieldX] != 'No'">
Add The Code Here
</if>
For Example:
Code:
<if condition="$bbuserinfo[field5] != 'No'">
<!-- Snow Effect(Small SnowFlakes) by Blackpheonix ? to Dynamic Drive -->
<script type="text/javascript" src="/forum/images/misc/effects/snow.js">
</script>
</if>
<!-- /Snow Effect(Small SnowFlakes) by Blackpheonix ? to Dynamic Drive -->
To Save on the heavy CPU usage that this mod uses follow the instructions below - Thanks to Solitary Seraph
Please Note, This is for the small snowflakes and not the big ones.
Edit the snow.js with any type of editor (ie. notepad).
Code:
var num = 20; //Number of flakes
var timer = 75; //setTimeout speed. Varies on different comps
var enableinNS6 = 1 //Enable script in NS6/Mozilla? Snow animation could be slow in those browsers. (1=yes, 0=no).
The first two will let you change it, Solitary Seraph changed it to 20/75, and it dropped to about 50% cpu usage for his/her members with bad computers.
Keep tweaking with it and eventually it should work nicely for everyone, or you can turn it off with the last bit, for the mozilla users.
PLEASE NOTE: Big snowflakes and other effects may slow down your board and may not be viewable via firefox browsers. The small flakes should be ok and can be viewed by firefox.
Very Nice man, but one question could this be made to be turned on/off through the admin CP and not through file edits. or Set to schedule like turn it on randomly etc so It does not get old fast..?
Mabey we can all work on some different types of Icons to float around Im pretty good with Photoshop but my coding skills lack :P Id be willing to work on these
heck even mabey add in a random gif from specificed folder to mix it up.
Is there any way to change the path (rather than /forum) in the hack? I can do it manually, but not everyone has it set up in their /forum directory. Which is what is causing some problems (me for the first 2 seconds).
Awesome hack, btw. I'm going to play around with leaves later.
Anyone have any ideas how I can make this optional per usergroup without new styles or usergroups?
Code:
<if condition="is_member_of($bbuserinfo[usergroupid], array(1,2,3,4,5))">
the code here
</if>
Where 1,2,3,4 & 5 are the ids of the Usergroups that this is to be displayed to.
If you want to make it so the users themselves can view to see it you could create a new user profile field and use that to allow them to choose. Infact im going to get the code for it. :P - Just incase anyone wants it.
Right, here goes, I have never posted anything like this so be gentle :P
Go to AdminCP => Profile Fields => Add new Profile field => Single Select Menu
Title: View Xmas Snow Flakes? Description: Choose yes to have little Christmas Snowflakes Floating around. Options:
No
Yes Set Default: Yes, but No First Blank Option Editable By User: Yes Display Page: Options: Other Options
Write down your field# . i.e field6
Here is the code, I am using the small snowflakes as example code.
Code:
<if condition="$bbuserinfo[fieldX] != 'No'">
<!-- Snow Effect(Small SnowFlakes) by Blackpheonix ? to Dynamic Drive -->
<script type="text/javascript" src="/forum/images/misc/snow.js">
</script>
<!-- /Snow Effect(Small SnowFlakes) by Blackpheonix ? to Dynamic Drive -->
</if>
Change X to the Field id.
Just remember to wrap the code with the if tags provided.