Problem mit BBCode Countdown

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
FuGu
Mitglied
Beiträge: 217
Registriert: 16.01.2008 18:17

Problem mit BBCode Countdown

Beitrag von FuGu »

Moin Gemeinde,
ich habe folgenden BBCode Countdown eingepflanzt. Mein Problem ist, dass ich den Countdown gerne in der Signatur nutzen würde, jedoch wird er dann nur einmal pro Seite angezeigt. Soll heißen, wenn ich auf einer Seite sechs Beiträge schreibe, dann erscheint der Countdown in der Signatur immer nur im ersten Beitrag der Seite. Was muss ich ändern?

Nachfolgend der BBCode und die Countdown.js:

Code: Alles auswählen

[countdown]{TEXT1},{TEXT2}[/countdown]

Code: Alles auswählen

<script type="text/javascript">
TargetDate = "{TEXT1}";
BackColor = "";
ForeColor = "navy";
CountActive = true;
CountStepper = -1;
LeadingZero = true;
DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
FinishMessage = "{TEXT2}";
</script>
<script type="text/javascript" src="images/countdown.js"></script>
Dazu gehört diese countdown.js

Code: Alles auswählen

/*
Author: Robert Hashemian
http://www.hashemian.com/

You can use this code in any manner so long as the author's
name, Web address and this disclaimer is kept intact.
********************************************************
Usage Sample:

<script language="JavaScript">
TargetDate = "12/31/2020 5:00 AM";
BackColor = "palegreen";
ForeColor = "navy";
CountActive = true;
CountStepper = -1;
LeadingZero = true;
DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
FinishMessage = "It is finally here!";
</script>
<script language="JavaScript" src="http://scripts.hashemian.com/js/countdown.js"></script>
*/

function calcage(secs, num1, num2) {
  s = ((Math.floor(secs/num1))%num2).toString();
  if (LeadingZero && s.length < 2)
    s = "0" + s;
  return "<b>" + s + "</b>";
}

function CountBack(secs) {
  if (secs < 0) {
    document.getElementById("cntdwn").innerHTML = FinishMessage;
    return;
  }
  DisplayStr = DisplayFormat.replace(/%%D%%/g, calcage(secs,86400,100000));
  DisplayStr = DisplayStr.replace(/%%H%%/g, calcage(secs,3600,24));
  DisplayStr = DisplayStr.replace(/%%M%%/g, calcage(secs,60,60));
  DisplayStr = DisplayStr.replace(/%%S%%/g, calcage(secs,1,60));

  document.getElementById("cntdwn").innerHTML = DisplayStr;
  if (CountActive)
    setTimeout("CountBack(" + (secs+CountStepper) + ")", SetTimeOutPeriod);
}

function putspan(backcolor, forecolor) {
 document.write("<span id='cntdwn' style='background-color:" + backcolor + 
                "; color:" + forecolor + "'></span>");
}

if (typeof(BackColor)=="undefined")
  BackColor = "white";
if (typeof(ForeColor)=="undefined")
  ForeColor= "black";
if (typeof(TargetDate)=="undefined")
  TargetDate = "12/31/2020 5:00 AM";
if (typeof(DisplayFormat)=="undefined")
  DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
if (typeof(CountActive)=="undefined")
  CountActive = true;
if (typeof(FinishMessage)=="undefined")
  FinishMessage = "";
if (typeof(CountStepper)!="number")
  CountStepper = -1;
if (typeof(LeadingZero)=="undefined")
  LeadingZero = true;


CountStepper = Math.ceil(CountStepper);
if (CountStepper == 0)
  CountActive = false;
var SetTimeOutPeriod = (Math.abs(CountStepper)-1)*1000 + 990;
putspan(BackColor, ForeColor);
var dthen = new Date(TargetDate);
var dnow = new Date();
if(CountStepper>0)
  ddiff = new Date(dnow-dthen);
else
  ddiff = new Date(dthen-dnow);
gsecs = Math.floor(ddiff.valueOf()/1000);
CountBack(gsecs);
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: Problem mit BBCode Countdown

Beitrag von Dr.Death »

Hallo,

da kannst Du nichts dran machen, da das JavaScript nur nach:

Code: Alles auswählen

document.getElementById("cntdwn")
sucht und das Element in der ersten Signatur findet.
Stonewoman
Mitglied
Beiträge: 313
Registriert: 10.07.2005 15:09
Wohnort: Vinnen
Kontaktdaten:

Re: Problem mit BBCode Countdown

Beitrag von Stonewoman »

Hallo,

sonst nimm diesen Code:

BBCode-Benutzung:

Code: Alles auswählen

[count]{NUMBER1}.{TEXT} {NUMBER2}[/count]
HTML-Ersetzung:

Code: Alles auswählen

<script>
var eventdate = new Date("{TEXT} {NUMBER1}, {NUMBER2} 23:59:59 GMT");
d=new Date();
count=Math.floor((eventdate.getTime()-d.getTime())/1000);
count=Math.floor(count/(60*60*24));
document.write(count);
</script>
Tipp-Anzeige:

Code: Alles auswählen

Anzahl der Tage bis zum genannten Datum: [count]TT.Monat JJJJ[/count] Tag und Jahr nummerisch, Monat in Englisch
Ich hab das auch in der Signatur und klappt hervorragend.

Grüße, Stoni.
http://forum.skoliose-op.info
phpBB-Version: 3.0.11 | Style: subsilver2
MODs: Board3Portalv1.0.2 | Auto-Groups-101 | Anti_double_post_v1.0.5 | Geomap-2.1.0 | Who_was_here_1.0.0-RC1 | Firefox 3 Password Management Fix 1.0.0. | Smilies Categories 1.0.3 | Tablemaker Standalone) | NV_advanced_last_topic_titles_1_2_8
Benutzeravatar
FuGu
Mitglied
Beiträge: 217
Registriert: 16.01.2008 18:17

Re: Problem mit BBCode Countdown

Beitrag von FuGu »

@ Dr.Death
Ein Problem ohne Lösung? Unfassbar :o

@ Stonewoman
Danke für den Hinweis. Den Code nutze ich auch.. aber der andere macht ein bisschen mehr her finde ich.
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Re: Problem mit BBCode Countdown

Beitrag von 4seven »

füge per java-zufallsgenerator (spektrum > 1.000.000 ) der id eine quasi-einmalige id hinzu.
da es nach murphy unwarscheinlich ist, das auf einer posting-seite aus einem > 1 mio-spektrum
die gleiche id nochmal auftaucht, sollte es funktionieren.

das gleich problem hatte ich mit dem spoil_tag= bbcode
wenn du einige male auf den gleichnamigen button klickst, weißt du was ich meine:
http://sekuro.se.funpic.de/phpbb3/posti ... f=14&t=171
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: Problem mit BBCode Countdown

Beitrag von Dr.Death »

@FuGu: Ich bezog mich auf das bereitgestellte JavaScript...und das sucht und ersetzt nur das zuerst gefundene Element.
Benutzeravatar
FuGu
Mitglied
Beiträge: 217
Registriert: 16.01.2008 18:17

Re: Problem mit BBCode Countdown

Beitrag von FuGu »

@ 4seven
Deinen Vorschlag werde ich sofort umsetzen, wenn du das Noob gerecht erklärst :o
Ich habe nämlich quasi gar keine Ahnung und stecke in php Kinderschuhen!
Antworten

Zurück zu „[3.0.x] Mod Support“