Geburtstage von Usern

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
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.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
FireDragon
Mitglied
Beiträge: 22
Registriert: 13.12.2002 20:51

Geburtstage von Usern

Beitrag von FireDragon »

Hi, ich hab da mal ein Feature für das anzeigen von Geburtstagen installiert. Es geht auch, bis auf das egal was für ein alter ich angeb immer auf 1970 gestellt wird. In der Install.txt datei steht dazu folgendes:

#-----[ BEFORE, ADD ]------------------------------------------
#
// Add function mkrealdate for Birthday MOD
// the originate php "mktime()", does not work proberly on all OS, especially when going back in time
// before year 1970 (year 0), this function "mkrealtime()", has a mutch larger valid date range,
// from 1901 - 2099. it returns a "like" UNIX timestamp divided by 86400, so
// calculation from the originate php date and mktime is easy.
// mkrealdate, returns the number of day (with sign) from 1.1.1970.

function mkrealdate($day,$month,$birth_year)
{
// range check months
if ($month<1 || $month>12) return "error";
// range check days
switch ($month)
{
case 1: if ($day>31) return "error";break;
case 2: if ($day>29) return "error";
$epoch=$epoch+31;break;
case 3: if ($day>31) return "error";
$epoch=$epoch+59;break;
case 4: if ($day>30) return "error" ;
$epoch=$epoch+90;break;
case 5: if ($day>31) return "error";
$epoch=$epoch+120;break;
case 6: if ($day>30) return "error";
$epoch=$epoch+151;break;
case 7: if ($day>31) return "error";
$epoch=$epoch+181;break;
case 8: if ($day>31) return "error";
$epoch=$epoch+212;break;
case 9: if ($day>30) return "error";
$epoch=$epoch+243;break;
case 10: if ($day>31) return "error";
$epoch=$epoch+273;break;
case 11: if ($day>30) return "error";
$epoch=$epoch+304;break;
case 12: if ($day>31) return "error";
$epoch=$epoch+334;break;
}
$epoch=$epoch+$day;
$epoch_Y=sqrt(($birth_year-1970)*($birth_year-1970));
$leapyear=round((($epoch_Y+2) / 4)-.5);
if (($epoch_Y+2)%4==0)
{// curent year is leapyear
$leapyear--;
if ($birth_year >1970 && $month>=3) $epoch=$epoch+1;
if ($birth_year <1970 && $month<3) $epoch=$epoch-1;
} else if ($month==2 && $day>28) return "error";//only 28 days in feb.
//year
if ($birth_year>1970)
$epoch=$epoch+$epoch_Y*365-1+$leapyear;
else
$epoch=$epoch-$epoch_Y*365-1-$leapyear;
return $epoch;
}

// Add function realdate for Birthday MOD
// the originate php "date()", does not work proberly on all OS, especially when going back in time
// before year 1970 (year 0), this function "realdate()", has a mutch larger valid date range,
// from 1901 - 2099. it returns a "like" UNIX date format (only d,m and Y, may be used)
// is expect a input like a UNIX timestamp divided by 86400, so
// calculation from the originate php date and mktime is easy.
// e.g. realdate ("m d Y", 3) returns the string "1 3 1970"

function realdate($date_syntax,$date)
{
global $lang;
$birth_year=0;
$date_mid=$date;
$i=2;
if ($date>=0)
{
while ($date_mid > 364)
{
$year++;
$date_mid-=365;
if ($i++==3)
{
$i=0;
$date_mid--;
}
}
if (date_mid<=0 && $i==0)
{
$date_mid++;
}
} else
{
while ($date_mid<0)
{
$year--;
$date_mid+=365;
if ($i++==3)
{
$i=0;
$date_mid++;
}
}
}
$days=$date_mid;
if (($birth_year+2)%4==0)
{
if ($date_mid>334)
{
$day=$date_mid-334;
$month=12;
} else if ($date_mid>304)
{
$day=$date_mid-304;
$month=11;
} else if ($date_mid>273)
{
$day=$date_mid-273;
$month=10;
} else if ($date_mid>243)
{
$day=$date_mid-243;
$month=9;
} else if ($date_mid>212)
{
$day=$date_mid-212;
$month=8;
} else if ($date_mid>181)
{
$day=$date_mid-181;
$month=7;
} else if ($date_mid>151)
{
$day=$date_mid-151;
$month=6;
} else if ($date_mid>120)
{
$day=$date_mid-120;
$month=5;
} else if ($date_mid>90)
{
$day=$date_mid-90;
$month=4;
} else if ($date_mid>59)
{
$day=$date_mid-59;
$month=3;
} else if ($date_mid>30)
{
$day=$date_mid-30;
$month=2;
} else
{
$month=1;
$day=$date_mid+1;
}
} else
{
if ($date_mid>333)
{
$day=$date_mid-333;
$month=12;
} else if ($date_mid>303)
{
$day=$date_mid-303;
$month=11;
} else if ($date_mid>272)
{
$day=$date_mid-272;
$month=10;
} else if ($date_mid>242)
{
$day=$date_mid-242;
$month=9;
} else if ($date_mid>211)
{
$day=$date_mid-211;
$month=8;
} else if ($date_mid>180)
{
$day=$date_mid-180;
$month=7;
} else if ($date_mid>150)
{
$day=$date_mid-150;
$month=6;
} else if ($date_mid>119)
{
$day=$date_mid-119;
$month=5;
} else if ($date_mid>89)
{
$day=$date_mid-89;
$month=4;
} else if ($date_mid>58)
{
$day=$date_mid-58;
$month=3;
} else if ($date_mid>30)
{
$day=$date_mid-30;
$month=2;
} else
{
$month=1;
$day=$date_mid+1;
}
}
if (!(strrpos($date_syntax, "j") ===false))
$date_syntax = str_replace('j',$day,$date_syntax);
else
{
if ($day<10)$day='0'.($day);
$date_syntax = str_replace('d',$day,$date_syntax);
}
if (!(strrpos($date_syntax, "n") ===false))
$date_syntax = str_replace('n',$month,$date_syntax);
else
{
if ($month<10)$month='0'.($month);
$date_syntax = str_replace('m',$month,$date_syntax);
$month--;
$date_table = array ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
$date_syntax = str_replace('M',$lang['datetime'][$date_table[$month]],$date_syntax);
}
$birth_year=$birth_year+1970;
$date_syntax = str_replace('Y',$birth_year,$date_syntax);

return $date_syntax;
}



Was bedeuten denn die beiden Hinweistexte da drinn? Kann mir da vielleicht einer helfen?
FireDragon
Mitglied
Beiträge: 22
Registriert: 13.12.2002 20:51

Beitrag von FireDragon »

Will oder kann mir keiner helfen?
Benutzeravatar
Simpson
Ehemaliges Teammitglied
Beiträge: 1088
Registriert: 20.05.2002 17:35
Wohnort: Göttingen
Kontaktdaten:

Beitrag von Simpson »

Ne blöde Bemerkung kannste bekommen :D

Code: Alles auswählen

\\Blöde Bemerkung Start

\\ obiges schreibt man in einen CODE Block

\\Blöde Bemerkung Ende
FireDragon
Mitglied
Beiträge: 22
Registriert: 13.12.2002 20:51

Beitrag von FireDragon »

und das bedeutet bitte???? Keine hilfe beim problem?
Benutzeravatar
Mister_X
Ehemaliges Teammitglied
Beiträge: 7102
Registriert: 24.05.2001 02:00
Wohnort: Augsburg

Beitrag von Mister_X »

http://babelfish.altavista.com
damit kannste dir den Text übersetzen oder wo liegt dein Problem eigentlich ??
FireDragon
Mitglied
Beiträge: 22
Registriert: 13.12.2002 20:51

Beitrag von FireDragon »

das der ganze mod nicht funzt. er stellt alle daten der user auf 1970 um. und die übersetzung hilft mir da auch nicht weiter
Benutzeravatar
Mister_X
Ehemaliges Teammitglied
Beiträge: 7102
Registriert: 24.05.2001 02:00
Wohnort: Augsburg

Beitrag von Mister_X »

hast du den von dir oben geposteten Code den eingebaut ? An die richtige Stelle ?
Benutzeravatar
Schumi
Ehemaliges Teammitglied
Beiträge: 4925
Registriert: 07.10.2002 12:37

Beitrag von Schumi »

Und außerdem bist du hier im falschen Forum
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Im Adminpanel musst Du das maximal- bzw. minimal-Alter einstellen... vielleicht liegt´s daran.
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“