Seite 1 von 1

Pop Ups Selber herstellen

Verfasst: 28.05.2006 10:36
von Pathologe
Hallo!

Ich würde es gerne so machen, dass wenn man auf die Startseite des Forums kommt, ein Pop Up erscheint, in dem ich die User auf etwas hinweisen kann.

Wie macht man sowas? Kann man einstellen, das für jede IP nur ein Pop Up am Tag kommt, denn sonst wirds nervig.

MfG FB

Verfasst: 28.05.2006 12:45
von derd
Hallo,

normal ist das kein Problem.

Ich habe da was für dich.

Du musst in die overall_header.tpl im <head> Bereich dies Einbinden:

Code: Alles auswählen

<script language="Javascript">
<!--
var Dauer = 86400; // in Sekunden

var Seite = "info.html";
var Fensteroptionen = "width=600,height=600,location=no,toolbar=no,menubar=no,scrollbars=yes,resizable=no";

function CookieLesen (name)
{
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen)
	{
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg)
		{
			return CookieEinlesen (j); 
		}
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0)
		{
			break;
		}
	}
	return null;
}

function CookieSetzen (name, value)
{
	var argv = CookieSetzen.arguments;
	var argc = CookieSetzen.arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : "");
}

function CookieLoeschen (name)
{
	var exp = new Date();
	exp.setTime (exp.getTime() - 1);
	var cval = CookieLesen (name);
	document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}

var exp = new Date(); 
exp.setTime(exp.getTime() + (Dauer*1000));

function CookieEinlesen(offset)
{
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1)
	{
		endstr = document.cookie.length;
	}
	return unescape(document.cookie.substring(offset, endstr));
}

function PopUpCheck()
{
	var count = CookieLesen('PopUp');
	if (count == null)
	{
		count=1;
		CookieSetzen('PopUp', count, exp);
		window.open(Seite, "", Fensteroptionen);
	}
	else
	{
		count++;
		CookieSetzen('PopUp', count, exp);
	}
}
//-->
</script>
Du kannst das auch als js Datei Einbinden wie das geht wirst du ja Wissen.

Im <body> tag muss dies rein

Code: Alles auswählen

onload="PopUpCheck();"
Also normal schaut das so aus:

Code: Alles auswählen

<body bgcolor="{T_BODY_BGCOLOR}" text="{T_BODY_TEXT}" link="{T_BODY_LINK}" vlink="{T_BODY_VLINK}">
geändert dann so

Code: Alles auswählen

<body bgcolor="{T_BODY_BGCOLOR}" text="{T_BODY_TEXT}" link="{T_BODY_LINK}" vlink="{T_BODY_VLINK}" onload="PopUpCheck();">
So dann erstellst du eine info.html

die im <head> dies eingebunden hat:

Code: Alles auswählen

<script Language="JavaScript">
function startTime(){
        var time= new Date();
        hours= time.getHours();
        mins= time.getMinutes();
        secs= time.getSeconds();
        closeTime=hours*3600+mins*60+secs;
        closeTime+=240;  // Sekunden bis zum schliessen
        Timer();
}

function Timer(){
        var time= new Date();
        hours= time.getHours();
        mins= time.getMinutes();
        secs= time.getSeconds();
        curTime=hours*3600+mins*60+secs
        if (curTime>=closeTime){
                self.close();}
        else{
                window.setTimeout("Timer()",1000)}
}
</script>
und im body tag muss das rein:

Code: Alles auswählen

onLoad="startTime();"
Meine Variante
hat den Vorteil das der popup nur einmal in einer gewissen Zeit angezeigt wird, sowie schließt er sich ja einer gewissen Zeit wieder. Die Zeiten können eingestellt werden.

Bye derd

Verfasst: 28.05.2006 12:50
von Pathologe
Danke! Das Thema wurde ins Administrations-Forum verlagert, dort haben wir mit einen Tool eine Lösung gefunden, geht nur noch um die Einbindung!

Trotzdem tausend Dank! :grin: