Birthday Mod liefert vierstellige Zahlen statt Datum

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

Birthday Mod liefert vierstellige Zahlen statt Datum

Beitrag von Dwarf Androx »

Hallo,

mein erster Beitrag und gleich mit einer Frage. Ich hoffe, ich habe alle Regeln hierfür beachtet.

Ich bin Administrator von diesem Forum:
Forum von Star Wars: Battlefields

Das Forum lief früher auf dem Webspace eines ehemaligen Mitspielers, der eine Menge Hacks und Mods eingebaut hat, die ich gar nicht alle im Code wiederfinden konnte. Nachdem ich es endlich hingekriegt hatte, die (seit Jahren) ausstehenden Updates (momentan müsste es Version 2.0.14 sein) und Korrekturen im Code durchzuführen, habe ich nun ein letztes Problem: Der Birthday Mod, der (vermutlich mit einer alten Version) bereits installiert war, hatte eine Fehlfunktion und bisher nichts weiter geliefert als an den zugehörigen Stellen leere Zeilen.

Ich habe jetzt den im Mod-Forum propagierten Birthday Mod der neuesten Version installiert, wie es in der Anleitung steht und auch das deutsche Sprachpaket dazugefügt.
Nur in den Template-Dateien (ich benutze das von dem ehemaligen Admin installierte W4F-Template "grau") habe ich keine Korrekturen durchgeführt, da der dortige Code schon überall vorhanden war (und zwar buchstäblich gleich).

Dennoch taucht in den Beiträgen zwar die richtige Altersangabe, aber kein Geburtsdatum auf. Auch im Profil stimmt da etwas nicht: Man kann sein Geburtsdatum einstellen, ruft man es aber auf, gibt es nur eine vierstellige Zahl wieder. Es wird erstaunlicherweise bei fast allen die 0101 angezeigt.

Woran könnte das liegen? Ich hoffe, ich muss nicht wieder alles neu installieren. Bei diesem stark selbstgemoddeten Forum käme das einer Katastrophe gleich.

[Nachtrag: Außerdem taucht auch auf der Indexseite der übliche Geburtstagstext nicht auf.]
Dwarf Androx
Star Wars: Battlefields
Chat- und E-Mail-Rollenspiel.
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Re: Birthday Mod liefert vierstellige Zahlen statt Datum

Beitrag von easygo »

Dwarf Androx hat geschrieben:Dennoch taucht in den Beiträgen zwar die richtige Altersangabe, aber kein Geburtsdatum auf.
Völlig normal! Wozu denn Alter + Geburtsdatum?
Dwarf Androx hat geschrieben:Auch im Profil stimmt da etwas nicht: Man kann sein Geburtsdatum einstellen, ruft man es aber auf, gibt es nur eine vierstellige Zahl wieder. Es wird erstaunlicherweise bei fast allen die 0101 angezeigt.
Dazu geh nochmal die Install genau durch...
speziell den Part für includes/usercp_viewprofile.php

Mit Sicherheit fehlt da was... easy
Benutzeravatar
Dwarf Androx
Mitglied
Beiträge: 9
Registriert: 03.03.2005 17:09
Wohnort: Androx Hydrofarming
Kontaktdaten:

Re: Birthday Mod liefert vierstellige Zahlen statt Datum

Beitrag von Dwarf Androx »

easygo hat geschrieben:Völlig normal! Wozu denn Alter + Geburtsdatum?
Allerdings... okay, irgendwo war da ein Denkfehler :oops:
easygo hat geschrieben:Dazu geh nochmal die Install genau durch...
speziell den Part für includes/usercp_viewprofile.php
Die habe ich jetzt durchgearbeitet. Müsste alles korrekt sein. Vermutlich habe ich wirklich woanders Mist gebaut. Gibt es da nicht irgendwo eine Umrechnungsfunktion für die vierstelligen Zahlenwerte aus der DB in ein gescheites Datum?

Danke schon mal soweit.
Dwarf Androx
Star Wars: Battlefields
Chat- und E-Mail-Rollenspiel.
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Re: Birthday Mod liefert vierstellige Zahlen statt Datum

Beitrag von easygo »

Dwarf Androx hat geschrieben:Gibt es da nicht irgendwo eine Umrechnungsfunktion für die vierstelligen Zahlenwerte aus der DB in ein gescheites Datum?
Sollte schon mehr als vierstellig sein (UNIX Timestamp hat 9) :wink:

Umgerechnet wird in der usercp_viewprofile.php damit...

Code: Alles auswählen

$user_birthday = realdate($lang['DATE_FORMAT'], $profiledata['user_birthday']);
SQRT
Mitglied
Beiträge: 452
Registriert: 17.05.2002 15:10
Wohnort: Köln
Kontaktdaten:

Beitrag von SQRT »

hab bei mir auch gemerkt, dass es plötzlich alles in vierstelligen zahlen ausgegeben werden :roll: und ich hab den mod schon etwas länger eingebaut und vorher lief auch alles gut.
Ich begebe mich mal auf die suche nach dem Fehler, falls jemand was gefunden hat, kann er/sie es ja hier posten :)
thx in advance
sqrt
Da wo Männer denken, haben Frauen ein Loch!
Benutzeravatar
Dwarf Androx
Mitglied
Beiträge: 9
Registriert: 03.03.2005 17:09
Wohnort: Androx Hydrofarming
Kontaktdaten:

Beitrag von Dwarf Androx »

Also inzwischen habe ich immerhin herausgefunden, dass die Funktion realdate() (steht in der functions.php) in meiner Installation an sich korrekt läuft und dass auch in der usercp_viewprofile.php alles korrekt funktioniert (indem ich einfach mal die Variable $user_birthday direkt ausgebe).

Der Fehler muss irgendwo unterwegs zwischen der usercp_viewprofile.php und dem zugehörigen Template auftreten. *weitersuch*
Dwarf Androx
Star Wars: Battlefields
Chat- und E-Mail-Rollenspiel.
Benutzeravatar
Dwarf Androx
Mitglied
Beiträge: 9
Registriert: 03.03.2005 17:09
Wohnort: Androx Hydrofarming
Kontaktdaten:

!

Beitrag von Dwarf Androx »

Hallo!

Habe das Problem endlich gefixt und tatsächlich lief es auf ein Problem mit den früheren (alten) Mods hinaus; das wird es bei dir auch sein @SQRT.

In der usercp_viewprofile wurde tatsächlich unterwegs (bei mir und meinen mistigen Files) die Variable $user_birthday durch diese Zeile korrumpiert:

Code: Alles auswählen

include($phpbb_root_path . 'includes/page_header.'.$phpEx);
Durch das include wird ja die page_header.php aufgerufen und in der steht (vmtl auch bei SQRT, da er das Mod ja auch länger schon einsetzt) der nicht in den Mod-Anweisungen genannte Code:

Code: Alles auswählen

// Birthday Mod, Show users with birthday 
$sql = "SELECT user_id, username, user_birthday,user_level FROM " . USERS_TABLE. " WHERE user_birthday!=999999 ORDER BY username"; 
if($result = $db->sql_query($sql)) 
{ 
	$birthdayrow = $db->sql_fetchrowset($result); 
	if (!empty($birthdayrow)) 
	{ 
		$date_today = create_date('Ymd', time(), $board_config['board_timezone']); 
		$date_forward = create_date('Ymd', time()+($board_config['birthday_check_day']*86400), $board_config['board_timezone']); 
		for($i = 0; $i < count($birthdayrow); $i++) 
      		{ 
			//echo date("md",$birthdayrow[$i]['user_birthday'])." ";
			//	      $user_birthday=realdate("md",$birthdayrow[$i]['user_birthday']); 
		        $user_birthday=date("md",$birthdayrow[$i]['user_birthday']); 
      			$user_birthday2=(($year.$user_birthday<$date_today)? $year+1:$year).$user_birthday; 
			if ($user_birthday2==$date_today) 
      			{ 
				//user have birthday today 
//				$user_age=$year- realdate ('Y',$birthdayrow[$i]['user_birthday']); 
				$user_age=$year- date ('Y',$birthdayrow[$i]['user_birthday']); 
				$style_color = ($birthdayrow[$i]['user_level'] == ADMIN )?'style="color:#' . $theme['fontcolor3'] . '"':(( $birthdayrow[$i]['user_level'] == MOD )?'style="color:#' . $theme['fontcolor2'] . '"':''); 
				$birthday_today_list .= ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $birthdayrow[$i]['user_id']) . '"' . $style_color .'><b>' . $birthdayrow[$i]['username'] . ' ('.$user_age.')</b></a>'; 
	      		}
			else if ($user_birthday2>$date_today  && $user_birthday2<=$date_forward) 
			{ 
				// user are having birthday within the next days 
//				$user_age=($year.$user_birthday<$date_today)?$year- realdate ('Y',$birthdayrow[$i]['user_birthday'])+1:$year- realdate ('Y',$birthdayrow[$i]['user_birthday']); 
				$user_age=($year.$user_birthday<$date_today)?$year- date ('Y',$birthdayrow[$i]['user_birthday'])+1:$year- date ('Y',$birthdayrow[$i]['user_birthday']); 
				$style_color = ($birthdayrow[$i]['user_level'] == ADMIN )?'style="color:#' . $theme['fontcolor3'] . '"':(( $birthdayrow[$i]['user_level'] == MOD )?'style="color:#' . $theme['fontcolor2'] . '"':''); 
				$birthday_week_list .= ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $birthdayrow[$i]['user_id']) . '"' . $style_color .'><b>' . $birthdayrow[$i]['username'] . ' ('.$user_age.')</b></a>'; 
			} 
		} 
	} 
}
Ich nehme an, dass dieser Codeschnipsel noch vom früheren Modding übrig war. Nach dem Rauskommentieren (bzw. jetzt Rauslöschen) dieses letzten Codeabschnitts hat sich das Problem erledigt; das konnte natürlich außer mir selber niemand finden, weil ihr ja alle Files einsetzt, die nicht von 'nem anderen Admin früher mit allerhand heute nicht mehr funktionierendem Müll vollgecodet wurden ;-). THX dennoch für alle bereitwilligen Codespürhunde. :D
Dwarf Androx
Star Wars: Battlefields
Chat- und E-Mail-Rollenspiel.
Antworten

Zurück zu „phpBB 2.0: Mod Support“