PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Flash Anzeige der Restzeit bzw. des Fortschritts der Ralleys



jpwfour
01.03.2008, 17:21
So, hab mal ein kleines und einfach einzubauendes Addon fürs VMS 1.2. gemacht, welches den Usern auf den Ralley-Übersicht-Seiten (/content/ralleys/xxxx.php) die Restzeit sowie den Fortschritt der Ralley in einer Flash-Animation anzeigt.

Bei dieser sind die Hintergrundfarbe, die Randfarbe, die Schriftfarbe sowie die Farbe des Fortschrittsbalkens frei konfigurierbar.

Es funktioniert mit den 3 im Grundscript enthaltenen Ralleys
(aktiv.php, ref.php, klick.php),
sollte aber auch mit jeder anderen Ralley, sofern diese eine Start- und Endzeit hat, funktionieren.

Download: hier (~40 KB) (http://www.designerscripte.net/downloads.php?do=file&id=193)

Beispiele: hier (http://jpwitte.kilu.de/myprogress/)

Anmerkung:
zuzüglich der "normalen" Anleitung im *.txt Format habe ich mal eine "MOD-Einbau-Anleitung" im Style der PHPBB-Mods mitdazugepackt, wäre mal interessant, ob diese bei allen Systemen/Browsern korrekt angezeigt wird und übersichtlicher/schöner ist und die Installation vereinfacht, dann könnte man ja sowas in Zukunft bei allen Addons machen.

EDIT:
sorry für den tippfehler in der anleitung, dieser ist nun behoben, für alle, die sich das schon gezogen haben, es muss im html code statt myprogress2.swf nur myprogress.swf heißen, typischer fall von "ein buchstabe zu viel".
alternativ kann mn auch einfach die datei in "myprogress2.swf" umbennen.

Gecko1
02.03.2008, 16:44
Hi,

Erstmal danke für das addon find ich klasse das du es reinsetzt!

Desweiteren habe ich beide anleitung offen gehabt klappt alles nutze Firefox!

So nun zu meiner frage :)

Habe es nach anleitung eingebaut und wollte es in der klickrally testen leider kommt wenn ich alles eingebaut habe dieser fehler

Parse error: parse error, unexpected '<' in /srv/www/web6/html/content/ralleys/klick.php on line 48

Kann mit der fehlermeldung nichts anfangen da ich auch nicht sehe wo da eine klammer zuviel oder zuwenig sein sollte!!

Es kommt nachdem ich den 2ten code einbaue

Mfg

Xenon
02.03.2008, 17:49
badboy das heißt dorrt ist ein < zurviel oder ein zurwenig , und ein kleines dankeschön für sowas das ist ein super addon .


mfg
adi

Gecko1
02.03.2008, 17:56
ja das ist mir klar nur wo soll das zuviel sein es kann ja nur in dem 2ten code zuviel sein oder zuwenig weil danach kommt ja der fehler :(

Es liegt aufjedenfall daran


<object type="application/x-shockwave-flash"

Xenon
02.03.2008, 18:05
edit

Gecko1
02.03.2008, 18:08
es ist ja nicht nur die klick php habe es gerade auch mit den anderen rallys versucht kommt genau der selbe fehler?!


Parse error: parse error, unexpected '<' in /srv/www/web6/html/content/ralleys/aktiv.php on line 47

Xenon
02.03.2008, 18:21
es ist ja nicht nur die klick php habe es gerade auch mit den anderen rallys versucht kommt genau der selbe fehler?!


Parse error: parse error, unexpected '<' in /srv/www/web6/html/content/ralleys/aktiv.php on line 47


Dann setz ich mich mal hin und mache es mal und teste es dann

Gecko1
02.03.2008, 18:30
hi,

wäre net weil ich finde da nüx oder bin mal wider blind ^^

Hardy
02.03.2008, 18:54
ja das ist mir klar nur wo soll das zuviel sein es kann ja nur in dem 2ten code zuviel sein oder zuwenig weil danach kommt ja der fehler :(

Es liegt aufjedenfall daran


<object type="application/x-shockwave-flash"

Du solltest den tag auch schliesen

<object type="application/x-shockwave-flash">

jpwfour
02.03.2008, 19:51
nicht dirket, der tag geht ja noch weiter:

<object type="application/x-shockwave-flash"
data="images/myprogress.swf?progress=<?=$swf_prozent;?>&amp;name=<?=$swf_name;?>&amp;status=<?=$swf_status;?>&amp;color=<?=$swf_bar_color;?>&amp;bgcolor=<?=$swf_hintergrund_color;?>&amp;bgcolor2=<?=$swf_rand_color;?>&amp;fcolor=<?=$swf_font_color;?>&amp;"
width="330" height="120">...


und da ein php-parser error kommt, liegt es wohl nicht am html code, sondern am php code.
schick mir mal eine der betroffenen dateien an meine email (findest du in der anleitung)

didith1207
02.03.2008, 23:58
danke vielmals also ich finde die anzeige spitze und wenn man genau das macht was in der anleitung steht sollte es auch keine probs geben bei mir hats sofort funktioniert :)

Gecko1
03.03.2008, 00:07
d wenn man genau das macht was in der anleitung steht sollte es auch keine probs geben

Jo sollte es aber tut es nunmal nicht den egal wo man es einfügt es klappt bei mir nunmal nicht !!

Und solche sprüche find ich immer witzig wenn man das genau so macht solllllteee es gehn :mad2: Den so wie es aussieht geht es vom server nicht muss mir mal meine server confic ansehn denke mal eher da dort das problem liegt!

@didith1207 es giebt auch noch andere ursachen ausser die anleitung :cornut:

didith1207
03.03.2008, 00:13
+g* solche sprüche lasse ich nicht auf mir sitzen und deshalb hab ich mögliche fehlinstallationen gestestet und siehe da mein erster test :

Parse error: syntax error, unexpected '<' in /var/www/web14/html/content/ralleys/ref.php on line 37

Du hast deine anzeige falsch eingebaut!!!

du mußt die anzeige nach : head ("xxxrally"); ?> einfügen dann gehts

:arf:

Gecko1
03.03.2008, 00:19
achja

Sieh deine fehlermeldung und meine ;)

Habe es aber getestet und siehe da error das selbe in grün in 3 datein getestet

jpwfour
03.03.2008, 15:28
also, badboy, hab die dateien erhalten und dir auch eine mit eingebauter anzeige geschickt, sollte so eigentlich funktionieren.

ansonsten reicht es auch (da es sicher nur ein einfacher syntaxfehelr ist), wenn du die zeile, die der fehler dir ausgibt, also wo das '<' unerwartet vorkommt, hier mal postest.

jpwfour
05.03.2008, 16:31
also bei korrektem einbau sollte dieses problem nicht kommen, ein anderer suer hatte auch diese fehlermeldung, und nachdem ich ihm meine aktiv.php geschickt habe, gings auch bei ihm.

noch mal zum einbau:

den ersten code, der ja nur aus php-code besteht, nach der datenbank abfrage einbauen, also bei aktiv.php nach:

// Ralleydaten auslesen
$ralleydaten = mysql_fetch_array (db_query ('SELECT * FROM '.$db_prefix.'_ralleydaten WHERE ralley = "aktivralley" LIMIT 1'));

und zwar direkt danach, damit dieser code auch auf jedem fall im php teil (wird eingeschlossen von <? ... ?> bzw. <?php ... ?> ) steht.

den zweiten code, der zum teil aus html und zum anderen aus php-code besteht, in den html teil der seite einabuen, d.h. nach dem (wieder die aktiv.php als beispiel):

head ('Platzierungen und Preise'); ?>

hierbei ist zu beachten, dass er nach dem ?> einfügt wird. die teile im code, die php enthalten, sind alle korekkt mittels <?...?> definiert, daher sollte es dadurch zu keinem problem kommen.

sollte dennoch jemand den einbau nicht hinbekommen, ->PN (http://www.designerscripte.net/private.php?do=newpm&u=2271) an mich, dann schick ich euch als beispiel die aktiv.php, dann habt ihr das wenigsten in der aktivralley schon mal, und könnt nhand dessen sicher auch die codes in die anderen ralley dateien einbauen.

Web-Kirsche.de
08.03.2008, 13:43
Vielen Dank. Cooler Schnippsel

Rens
08.03.2008, 14:29
jo erstmal danke dafür habs auch schon seit dem "release" eingebaut ;) ich hatte den selben fehler wie badboy ;) in der anleitung stand quasi "irgendwo" aber nach dem vorher eingebauten code das stimmte halt nicht ganz. nachdem ich den code in den bereich von "head ('Platzierungen und Preise'); ?>" und gesetzt habe (was mir dann auch logisch erschien) hats geklappt
vorher hatte ich ihn direkt unter den verher eingebauten code gesetzt

jpwfour
08.03.2008, 14:43
hm, ja, natürlich ist "irgendwo" ein wenig vage formuliert, aber ich dachte mir halt, dass es normal ist, damm man weiß, was html code ist und wo dieser in den dateien hingehört.:idea:

Rens
08.03.2008, 15:07
Anleitung lesen schaltet eigenes denken aus ;) wird bei mir erst wieder aktiviert wenn was nicht klappt *g*

Dany
10.03.2008, 15:47
Dankeschön für das Teil funktioniert perfekt.

Gruß Dany

deniz
24.06.2008, 01:07
Wunderbar! Funktioniert! Schaut schick aus und ist was nützliches. :thumb:

Der Einbau mit Hilfe der HTML Anleitung ist meiner Meinung nach viel übersichtlicher. Halte ich für eine gute Idee!

Danke nochmals! :thumb:

DieH00ka
29.08.2008, 14:13
*edit*
parse error is nun weg
aber nun steht der ganze code auf der seite ^^

hm, hat jemand für mich eine fertige datei ?

*nochma edit*
habs, ich idiot hab den ersten code 2x benutzt ^^

danke, gute arbeit

DK1
14.09.2008, 08:44
nochmal für alle die das prob haben, der html code muss nach
head ( plazierungen und preise )?>

hin.. dann ist der fehler auch weg ;)

Thomas
17.09.2008, 01:09
Ich hätte noch eine Frage,


vieleicht finde ich es auch noch...


Wo kann ich sagen das es nur die Start Uhrzeit und ende nehmen soll, nicht datum bis datum ?

Es soll für die Tages Klick Rally sein.


Grüße Thomas

eRaaaa
17.09.2008, 02:22
Ich hätte noch eine Frage,


vieleicht finde ich es auch noch...


Wo kann ich sagen das es nur die Start Uhrzeit und ende nehmen soll, nicht datum bis datum ?

Es soll für die Tages Klick Rally sein.


Grüße Thomas

naja, also ich habs bei mir umgebaut für die monatsklickrally. für die tagesklickrally musst du es auch bissle umbauen.

der start ist ja jeden tag um 00.00 uhr und 1 sekunde , ende gleicher tag 23.59 uhr und 59 sekunden z.b.

also ich würde es vllt so machen:



$start =mktime(0, 0, 1, date(m,time()) ,date(d,time()), date(Y,time()));
$ende = mktime(23, 59, 59, date(m,time()) ,date(d,time()), date(Y,time()));



jetzt einfach jedes $ralleydaten['start'] mit $start und jedes $ralleydaten['ende'] mit $ende ersetzen.

ungetestet sollte aber gehen, wenn ich gerad nich nen denkfehler habe um die uhrzeit :D


mal ne frage in eigener sache, hat schon jmd den schnippsel im vms1 zum laufen bekommen? der müsste doch dort eig. genauso auch funzen oder?

nur irgendwie willer bei mir nicht. im vms 1.2 läufts, unter vms 1 nicht mehr.

aber wieso? ich seh da keinen unterschied!

Thomas
17.09.2008, 12:42
Thx

Funktioniert super.

im 1.1 sind einieg Grund bedingungen anderst, ich habe auch schonversucht etwas zu kopieren was im alten script drin war.
Das ging nicht, als ich dann explizit den Teil der die Funktion ausführt kopiert habe und in die neue 1.2 datei eigefügt dann geht es.

eRaaaa
17.09.2008, 14:41
jo schon klar, aber hier ist ja nich viel code dabei..

paar zuweisungen, ein if-else block und ein functionsaufruf. in der function sind ja auch nicht wirklich irgendwleche anderen functionen oder sonstiges was das vms 1 nicht könnte versteckt. kann ja dann eigentlich nur an der flash-datei liegen meines erachtens, bin aber leider kein flasher deshalb kann ich dazu nix sagen, vllt sagt ja jpwfour was dazu, würd mich freuen ;)

jpwfour
21.09.2008, 17:32
schön, dass es leute gibt, die das einsetzen :yes:

hm, also an der flash datei liegt es nicht, diese erwartet ja einfach nur ein paar parameter, gänzlich unabhängig vom vms, d.h. es würde auch in anderen scripten funzen bzw. in ner statischen html datei.

ich selber habe das vms 1.1 nicht, daher kann ich das nicht ausprobieren und rate eh jedem dazu, die neueste version zu nutzen :wink:

da aber die einzigen daten, die vom script her kommen, die start und die endzeit sind, kann es ja nur daran bzw. an der zugehörigen datenbank abfrage liegen.

also ich verwende ja:

$ralleydaten['ende'];
//sowie
$ralleydaten['start'];


evtl muss man daran was ändern?

seg98
05.03.2009, 17:41
Hallo,
beim mir kommt nach Erstellung der Flash Anzeige dieseer fehler:


Parse error: syntax error, unexpected '<' in /var/www/web1032/html/content/ralleys/klick.php on line 39
Dieser Fehler ist bei der Klickralley. Die Klickralley wird nicht angezeigt.

Warum ?

Mfg seg98

didith1207
05.03.2009, 17:47
du hättest
unexpected '<'
in die Suchleiste eingeben können und sofort erfahren was syntax error oder
unexpected bedeuten kann....

ich würde mal sagen das da irgendwo ein '<' zuviel in zeile 39 vorhanden ist

jpwfour
05.03.2009, 18:03
Ich empfehle dir einen Texteditor mit SyntaxHighlighting:
bspw.: wSciTE (http://www.scintilla.org/SciTEDownload.html)

Dort dann die *.php Datei öffnen, dann siehst du genau, wo ist ein "PHP-Code Bereich

<?php

?>
und wo nicht (alles andere).

CeleronD
03.03.2011, 21:16
Ich probiere gerade die Tagesrally mit dem Flashaddon anzupassen aber irgendwie will das nicht zusammen passen.


// Flash Ralley Anzeige
$swf_name = "TagesKlickRalley"; //hier den Namen der Ralley einsetzen
$swf_bar_color = "0x000000"; //haloGreen, haloBlue, haloOrange, oder wert von 0x000000 bis 0xFFFFFF
$swf_rand_color = "0xFFFFFF"; //0x000000 - 0xFFFFFF
$swf_hintergrund_color= "0x587aa0"; //0x000000 - 0xFFFFFF
$swf_font_color = "0x000000"; //0x000000 - 0xFFFFFF

if(time()>$ralleydaten['$ende']){
$swf_prozent = 10000;
$swf_status = "Beendet";
}else if(time()<$ralleydaten['$start']){
$swf_prozent = 0;
$swf_status = "Inaktiv";
}else{
$swf_prozent = (time()-$ralleydaten['$start'])/($ralleydaten['$ende']-$ralleydaten['$start'])*100;
$swf_prozent = number_format($swf_prozent,2,'','');
$swf_status = sectodays($ralleydaten['$ende']-time());
}
//Flash Ralley Anzeige

wie tue ich das hier da rein...

$start =mktime(0, 0, 1, date(m,time()) ,date(d,time()), date(Y,time()));
$ende = mktime(23, 55, 00, date(m,time()) ,date(d,time()), date(Y,time()));


Danke.

jpwfour
03.03.2011, 21:29
// Flash Ralley Anzeige
$swf_name = "TagesKlickRalley"; //hier den Namen der Ralley einsetzen
$swf_bar_color = "0x000000"; //haloGreen, haloBlue, haloOrange, oder wert von 0x000000 bis 0xFFFFFF
$swf_rand_color = "0xFFFFFF"; //0x000000 - 0xFFFFFF
$swf_hintergrund_color= "0x587aa0"; //0x000000 - 0xFFFFFF
$swf_font_color = "0x000000"; //0x000000 - 0xFFFFFF

$start =mktime(0, 0, 1, date('m',time()) ,date('d',time()), date('Y',time()));
$ende = mktime(23, 55, 00, date('m',time()) ,date('d',time()), date('Y',time()));

if(time()>$ralleydaten['$ende']){
$swf_prozent = 10000;
$swf_status = "Beendet";
}else if(time()<$ralleydaten['$start']){
$swf_prozent = 0;
$swf_status = "Inaktiv";
}else{

$swf_prozent = (time()-$start)/($ende-$start)*100;
$swf_prozent = number_format($swf_prozent,2,'','');
$swf_status = sectodays($ende-time());
}
//Flash Ralley Anzeige Was ist mit der Rallye von 23:55:0 bis 0:0:1 Uhr?

CeleronD
03.03.2011, 21:34
(grübel) was?

$start =mktime(00, 00, 01, date(m,time()) ,date(d,time()), date(Y,time()));
$ende = mktime(23, 50, 00, date(m,time()) ,date(d,time()), date(Y,time()));

So geht es auch nicht!

jpwfour
03.03.2011, 21:38
Was geht nicht? Was soll gehen? Von wann bis wann läuft denn die Rallye (zählt Punkte für die User)? Und warum Copy&Paste ich den fehlerhaften Code mit?
Evtl. so:


// Flash Ralley Anzeige
$swf_name = "TagesKlickRalley"; //hier den Namen der Ralley einsetzen
$swf_bar_color = "0x000000"; //haloGreen, haloBlue, haloOrange, oder wert von 0x000000 bis 0xFFFFFF
$swf_rand_color = "0xFFFFFF"; //0x000000 - 0xFFFFFF
$swf_hintergrund_color= "0x587aa0"; //0x000000 - 0xFFFFFF
$swf_font_color = "0x000000"; //0x000000 - 0xFFFFFF

$start =mktime(0, 0, 1, date('m',time()) ,date('d',time()), date('Y',time()));
$ende = mktime(23, 55, 00, date('m',time()) ,date('d',time()), date('Y',time()));

$swf_prozent = (time()-$start)/($ende-$start)*100;
$swf_prozent = number_format($swf_prozent,2,'','');
$swf_status = sectodays($ende-time());

//Flash Ralley Anzeige

CeleronD
03.03.2011, 21:41
Ich steh auf´n Schlauch. Was meinen Sie mit Punkte?

----


Ich hab nun den Code von ihnen genommen aber in der letzten Zeile zeigt er einen Fehler an.

$swf_status = sectodays($ende-time());

Entferne ich das ist der Fehler weg. Richtig so?

jpwfour
03.03.2011, 21:53
function sectodays($secs){
$days = intval($secs / (60 * 60 * 24));
$secs = $secs % (60 * 60 * 24);
$hours = intval($secs / (60 * 60));
$secs = $secs % (60 * 60);
$mins = intval($secs / 60);
$secs = $secs % 60;
return 'noch '.$days.' T, '.$hours.' S, '.$mins.' M';
}


Die Funktion fehlt noch, sofern dieser Text (noch X Tage, y stunden m minuten) angezeigt werden soll.

CeleronD
03.03.2011, 21:59
OK verstehe..

Und wie mache ich aus den Zeilen Monate, so das er einen ganzen Monat runter rechnet?

$start =mktime(0, 0, 1, date('m',time()) ,date('d',time()), date('Y',time()));
$ende = mktime(23, 55, 00, date('m',time()) ,date('d',time()), date('Y',time()));


Google ist dein Freund...
Wenn ich es so mache:

$start = mktime(0,0,0,1,17,2011);
$ende = mktime(0,0,0,3,17,2011);

Wird mir zwar das Datum richtig angezeigt.. doch ich muss jedesmal das Datum per Hand dann ändern. Monat für Monat... gibt es da nicht ne bessere Lösung?

Bei der Zielklickralley ist auch noch der Wurm drinn. Wie bekomme ich dort die richtige Anzeige rein?

CeleronD
25.06.2011, 23:03
So nun melde ich mich mal wieder zu Wort.
Ich schaffe es nicht die Flashanzeige auf die WochenKlickRally einzustellen bzw umzuschreiben.
Kann mir einer helfen bitte?!


$start =mktime(0, 0, 1, date('m',time()) ,date('d',time()), date('Y',time()));
$ende = mktime(23, 55, 00, date('m',time()) ,date('d',time()), date('Y',time()));

Das müss geändert werden, so das er immer Montags ab 0 Uhr bis Sonntags um 23:59 zählt. Aber wie? Habe nun zig Sachen aus Google benutzt aber keines brachte das richtige Ergebniss. Danke.

jpwfour
26.06.2011, 13:47
So in etwa (ungetestet):


if(date('w')==1){ //montag
$start = strtotime("Monday this week");
$ende = strtotime("Sunday this week 23:59:59");
}else{
$start = strtotime("Monday last week");
$ende = strtotime("Sunday this week 23:59:59");
}

CeleronD
26.06.2011, 13:55
Danke schön. Es wird zumindest bis jetzt die richtige Zeit angezeigt.

Freepler
12.11.2011, 00:43
Huhu,

Erstmal tolle Arbeit diese teile!

Kannst du es evtl. auch machen, das man die Größe der einzelnen Flashanimationen ändern kann?

Ich nutze zwar nicht das vms, aber würde es gerne an einer anderen stelle nutzen wollen, nur sind mir die ganzen teile zu groß.

Und dann eine Frage vorweg noch: Wie wird die Zeit in der Datenbank gespeichert für Start und Ende? Timestamp?!

Gruß Freepler

jpwfour
12.11.2011, 17:13
Jo ist üblicherweise (bei allen mir bisher bekannten Rallye Systemen fürs VMS) der ganz normale Timestamp von PHP: time()

Bin in Flash nu nicht so gut, dass ich da groß wqas machen kann, dass war ja eher mal so ein Versuch :wink:

Hab glaub ich seit über einem Jahr Flash nicht mehr benutzt, daher noch nicht mal mehr installiert :redface: