Seite 1 von 2

Birthday mod von nils / fehler

Verfasst: 15.02.2006 02:35
von night-hawk-666
hallo,

habe grad den Birtday mod instaliert und nach instalation die meiner meinung nach recht gut von statten ging kamen nur noch fehler im Board.
vieleicht kann sich einer das mal anschauen und mir weiterhelfen,

hab alle original datein noch aber würd die gantze arbeit nur unern in die tonne treten,

hier der link:
www.schwarzestor.de

Verfasst: 15.02.2006 08:13
von Dr.Death
Anscheinend ging die Installation doch nicht so gut :-)

Du hast warscheinlich nur einen klitzekleinen Tippfehler in der functions.php gemacht.

Verlinke doch mal bitte deine functions.php als txt Datei.

Verfasst: 15.02.2006 13:42
von night-hawk-666

Verfasst: 15.02.2006 14:07
von Dr.Death
lade als erstes mal deine gesicherte functions.php wieder hoch.

Du hast einiges in deiner functions.php kaputt gemacht.

Danach baue die nötigen Änderungen in der functions.php erneut ein.

Verfasst: 15.02.2006 14:48
von night-hawk-666
kaputtgemacht ?
was den genau, nicht das ich den Fehler
nochmal mache.

Verfasst: 15.02.2006 15:02
von Yoshi
Welche Version hast du denn? Die 1.5.8?
Dann hast du aber ne menge vergessen.
Wenn es die 1.5.8 ist dann nimm dir deine Sicherungskopie von deiner functions.php und mach diesen Teil exakt so rein wie es da steht. Ohne eine Menge von Fragezeichen ect...


Code: Alles auswählen

#
#-----[ OPEN ]------------------------------------------------
#
includes/functions.php

#
#-----[ FIND ]------------------------------------------------
#
?>

#
#-----[ 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 date, related letters may be used, due to the fact that
// the given date value should already be divided by 86400 - leaving no time information left)
// a input like a UNIX timestamp divided by 86400 is expected, so
// calculation from the originate php date and mktime is easy.
// e.g. realdate ("m d Y", 3) returns the string "1 3 1970"

// UNIX users should replace this function with the below code, since this should be faster
//
//function realdate($date_syntax="Ymd",$date=0) 
//{ return create_date($date_syntax,$date*86400+1,0); }

function realdate($date_syntax="Ymd",$date=0)
{
	global $lang;
	$i=2;
	if ($date>=0)
	{
	 	return create_date($date_syntax,$date*86400+1,0);
	} else
	{
		$year= -(date%1461);
		$days = $date + $year*1461;
		while ($days<0)
		{
			$year--;
			$days+=365;
			if ($i++==3)
			{
				$i=0;
				$days++;
			}
		}
	}
	$leap_year = ($i==0) ? TRUE : FALSE;
	$months_array = ($i==0) ?
		array (0,31,60,91,121,152,182,213,244,274,305,335,366) :
		array (0,31,59,90,120,151,181,212,243,273,304,334,365);
	for ($month=1;$month<12;$month++)
	{
		if ($days<$months_array[$month]) break;
	}

	$day=$days-$months_array[$month-1]+1;
	//you may gain speed performance by remove som of the below entry's if they are not needed/used
	return strtr ($date_syntax, array(
		'a' => '',
		'A' => '',
		'\\d' => 'd',
		'd' => ($day>9) ? $day : '0'.$day,
		'\\D' => 'D',
		'D' => $lang['day_short'][($date-3)%7],
		'\\F' => 'F',
		'F' => $lang['month_long'][$month-1],
		'g' => '',
		'G' => '',
		'H' => '',
		'h' => '',
		'i' => '',
		'I' => '',
		'\\j' => 'j',
		'j' => $day,
		'\\l' => 'l',
		'l' => $lang['day_long'][($date-3)%7],
		'\\L' => 'L',
		'L' => $leap_year,
		'\\m' => 'm',
		'm' => ($month>9) ? $month : '0'.$month,
		'\\M' => 'M',
		'M' => $lang['month_short'][$month-1],
		'\\n' => 'n',
		'n' => $month,
		'O' => '',
		's' => '',
		'S' => '',
		'\\t' => 't',
		't' => $months_array[$month]-$months_array[$month-1],
		'w' => '',
		'\\y' => 'y',
		'y' => ($year>29) ? $year-30 : $year+70,
		'\\Y' => 'Y',
		'Y' => $year+1970,
		'\\z' => 'z',
		'z' => $days,
		'\\W' => '',
		'W' => '') );
}
// End add - Birthday MOD

Verfasst: 15.02.2006 15:09
von night-hawk-666
*ahrg*
Fragezeichen? och nee net schon wieder.....
die kommen vom den Prog das ich benutze
das hat ab und zu die macke das es an belibigen stellen diese
Dinger reinhaut,

ich danke euch

liegt das jetzt definitiv nur an der einen Datei, oder kann woanders auch noch ein Fehler drin sein ?

Verfasst: 15.02.2006 15:21
von Yoshi
Das kann man ja nicht von hier wissen. Probiere es erst mal aus. Wenn etwas neues kommt, kannst dan ja nochmal fragen. Nur ich selbst bin auch kein "könner". :D

PS: Such dir ein anderes Editierprogramm! Z.b. Weaverslave
Der ist kostenlos und findest es hier: www.Weaverslave.ws

Verfasst: 15.02.2006 15:51
von night-hawk-666
hey super, dank dir.

leider kann ich erst ab 18:30 wieder an das board.
da ich @work bin und der jenige bin der direkte FTP-verbindungen übers netz unmöglich gemacht hat ^^

Verfasst: 15.02.2006 15:56
von night-hawk-666
gibt es ein Prog mitden man sein Gesamtes Forum "scannen" kann
um Fehler im Quelltext zu finden ?