Pełna wersja: Unofficial modifications
nieoficjalne modyfikacje for?w phpBB by Przemo
 
lo - fi version Unofficial modifications index

funkcja create_date() i mkrealdate() w phpBB
Kliknij tutaj aby przejśc do pełnej wersji tematu

 
       Unofficial modifications Strona Główna -> Pogaduchy
Poprzedni temat :: Następny temat  
They Wysłany: Sro 31 Sty, 2007  

Podaj? 2 kody dok?adnie.


w wersji phpBB by Przemo mamy tak:

plik functions.php
Kod//
// Create date/time from format and timezone
//
function create_date($format, $gmepoch, $tz, $no_today = false)
{
global $board_config, $lang;
static $translate;

if ( empty($translate) && $board_config['default_lang'] != 'english' )
{
@reset($lang['datetime']);
while ( list($match, $replace) = @each($lang['datetime']) )
{
$translate[$match] = $replace;
}
}

$tz_add = ($board_config['auto_date']) ? (3600 * ($tz + (@date('I', $gmepoch) && @date('I', CR_TIME)))) : (3600 * $tz);

$epoch_time = $gmepoch + $tz_add;
$current_time = CR_TIME + $tz_add;

$cyear = @gmdate('Y', $current_time);
$cmonth = @gmdate('n', $current_time);
$cday = @gmdate('j', $current_time);
$chour = @gmdate('G', $current_time);
$cmin = @gmdate('i', $current_time);

$today_begin = @gmmktime(0, 0, 0, $cmonth, $cday, $cyear, @date('I', $current_time));
$today_end = @gmmktime(23, 59, 59, $cmonth, $cday, $cyear, @date('I', $current_time));
$yesterday_begin = $today_begin - 86400;

if ( $epoch_time > $yesterday_begin && $epoch_time < $today_end && !$no_today )
{
if ( $epoch_time < $today_begin )
{
return $lang['Yesterday'] . ' ' . @gmdate('G:i', $epoch_time);
}
else
{
return $lang['Today'] . ' ' . @gmdate('G:i', $epoch_time);
}
}
return ( !empty($translate) ) ? strtr(@gmdate($format, $epoch_time), $translate) : @gmdate($format, $epoch_time);
}


je?li zast?pi? (lub zamieni?) na standartowy kod z phpBB 2.0.22 PL

plik functions.php
Kod//
// Create date/time from format and timezone
//
function create_date($format, $gmepoch, $tz)
{
global $board_config, $lang;
static $translate;

if ( empty($translate) && $board_config['default_lang'] != 'english' )
{
@reset($lang['datetime']);
while ( list($match, $replace) = @each($lang['datetime']) )
{
$translate[$match] = $replace;
}
}

return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz)), $translate) : @gmdate($format, $gmepoch + (3600 * $tz));
}

To b?d? jakies b??dy na forum phpBB by Przemo ? Musze wiedzie? gdzie i jakie b??dy ?
np.
- czy po wysylaniu posta/tematu/pw/w shoutboxie/itd... bedzie prawidlowa data ?
- czy...

Przetestowalem na testowym forum i nie znalazlem bledu, moze to nie wszystko ?



Ta funkcja create_date z phpBB 2.0.22 jest potrzebna, poniewaz dziala kompatybilnie z inna modyfikacja do wersji phpBB by Przemo.
Mysle ze przydalo by sie zmienic ten kod na kod ze standartu phpBB.
Solinarius Wysłany: Sro 31 Sty, 2007  

Zobacze u siebie i dam zna?
Edyt: Nie ma problem?w/ opr?cz tego, ze zmieni?o sie to co mia?o si? zmieni
They Wysłany: Pią 02 Lut, 2007  

no to jeszcze w pliku functions_add.php
trzeba zmieni? kod $epoch na $gmepoch, ?eby nie zgubi? tego.

znajd? ca?? funkcj? mkrealdate() i zamie? na:
Kodfunction 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';
$gmepoch = $gmepoch + 31;
break;
case 3: if ( $day > 31)
return 'error';
$gmepoch = $gmepoch + 59;
break;
case 4: if ( $day > 30)
return 'error' ;
$gmepoch = $gmepoch + 90;
break;
case 5: if ( $day > 31)
return 'error';
$gmepoch = $gmepoch + 120;
break;
case 6: if ( $day > 30)
return 'error';
$gmepoch = $gmepoch + 151;
break;
case 7: if ( $day > 31)
return 'error';
$gmepoch = $gmepoch + 181;
break;
case 8: if ( $day > 31)
return 'error';
$gmepoch = $gmepoch + 212;
break;
case 9: if ( $day > 30)
return 'error';
$gmepoch = $gmepoch + 243;
break;
case 10: if ( $day > 31)
return 'error';
$gmepoch = $gmepoch + 273;
break;
case 11: if ( $day > 30)
return 'error';
$gmepoch = $gmepoch + 304;
break;
case 12: if ( $day > 31)
return 'error';
$gmepoch = $gmepoch + 334;
break;
}
$gmepoch = $gmepoch + $day;
$gmepoch_Y = sqrt(($birth_year - 1970) * ($birth_year - 1970));
$leapyear = round((($gmepoch_Y + 2) / 4)-.5);
if (($gmepoch_Y + 2) % 4 == 0 )
{
// curent year is leapyear
$leapyear--;
if ( $birth_year > 1970 && $month >= 3)
{
$gmepoch = $gmepoch + 1;
}
if ( $birth_year < 1970 && $month < 3)
{
$gmepoch = $gmepoch - 1;
}
}
else if ( $month == 2 && $day > 28)
{
return 'error'; //only 28 days in feb.
}
//year
$gmepoch = ($birth_year > 1970) ? $gmepoch + $gmepoch_Y * 365 - 1 + $leapyear : $gmepoch - $gmepoch_Y * 365 - 1 - $leapyear;

return $gmepoch;
}


Oraz w lang_main.php trzeba doda? brakuj?ce kody (my?l? ?e powinno by?)
znajd?
Kod$lang['datetime']['Dec'] = 'Gru';
wklej po
Kod
//
// Timezones ... for display on each page
//
$lang['All_times'] = 'Wszystkie czasy w strefie %s'; // eg. All times are GMT - 12 Hours (times from next block)

$lang['-12'] = 'GMT - 12 Godzin';
$lang['-11'] = 'GMT - 11 Godzin';
$lang['-10'] = 'HST (Hawaje)';
$lang['-9'] = 'GMT - 9 Godzin';
$lang['-8'] = 'PST (U.S./Kanada)';
$lang['-7'] = 'MST (U.S./Kanada)';
$lang['-6'] = 'CST (U.S./Kanada)';
$lang['-5'] = 'EST (U.S./Kanada)';
$lang['-4'] = 'GMT - 4 Godziny';
$lang['-3.5'] = 'GMT - 3.5 Godziny';
$lang['-3'] = 'GMT - 3 Godziny';
$lang['-2'] = '¦rodkowy Atlantyk';
$lang['-1'] = 'GMT - 1 Godzina';
$lang['0'] = 'GMT';
$lang['1'] = 'CET (Europa)';
$lang['2'] = 'EET (Europa)';
$lang['3'] = 'GMT + 3 Godziny';
$lang['3.5'] = 'GMT + 3.5 Godziny';
$lang['4'] = 'GMT + 4 Godziny';
$lang['4.5'] = 'GMT + 4.5 Godziny';
$lang['5'] = 'GMT + 5 Godzin';
$lang['5.5'] = 'GMT + 5.5 Godzin';
$lang['6'] = 'GMT + 6 Godzin';
$lang['6.5'] = 'GMT + 6.5 Godziny';
$lang['7'] = 'GMT + 7 Godzin';
$lang['8'] = 'WST (Australia)';
$lang['9'] = 'GMT + 9 Godzin';
$lang['9.5'] = 'CST (Australia)';
$lang['10'] = 'EST (Australia)';
$lang['11'] = 'GMT + 11 Godzin';
$lang['12'] = 'GMT + 12 Godzin';
$lang['13'] = 'GMT + 13 Godzin';

// These are displayed in the timezone select box
$lang['tz']['-12'] = '(GMT -12:00 hours) Eniwetok, Kwajalein';
$lang['tz']['-11'] = '(GMT -11:00 hours) Wyspa Midway, Samoa';
$lang['tz']['-10'] = '(GMT -10:00 hours) Hawaje';
$lang['tz']['-9'] = '(GMT -9:00 hours) Alaska';
$lang['tz']['-8'] = '(GMT -8:00 hours) Pacific Time (US &amp; Kanada)';
$lang['tz']['-7'] = '(GMT -7:00 hours) Mountain Time (US &amp; Kanada)';
$lang['tz']['-6'] = '(GMT -6:00 hours) Central Time (US &amp; Kanada), Mexico City';
$lang['tz']['-5'] = '(GMT -5:00 hours) Eastern Time (US &amp; Kanada), Bogota, Lima, Quito';
$lang['tz']['-4'] = '(GMT -4:00 hours) Atlantic Time (Canada), Caracas, La Paz';
$lang['tz']['-3.5'] = '(GMT -3:30 hours) Nowa Funflandia';
$lang['tz']['-3'] = '(GMT -3:00 hours) Brazylia, Buenos Aires, Georgetown, Falklandy';
$lang['tz']['-2'] = '(GMT -2:00 hours) ¦r-Atlantyk, Wyspa Ascension, ¦w. Helena';
$lang['tz']['-1'] = '(GMT -1:00 hours) Azory, Wyspy Cape Verde';
$lang['tz']['0'] = '(GMT) Casablanca, Dublin, Edynburg, Londyn, Lisbona, Monrovia';
$lang['tz']['1'] = '(GMT +1:00 hours) Berlin, Bruksela, Kopenhaga, Madryd, Pary?, Rzym';
$lang['tz']['2'] = '(GMT +2:00 hours) Kaliningrad, Po?. Afryka';
$lang['tz']['3'] = '(GMT +3:00 hours) Bagdad, Riyadh, Moskwa, Nairobi';
$lang['tz']['3.5'] = '(GMT +3:30 hours) Teheran';
$lang['tz']['4'] = '(GMT +4:00 hours) Abu Dhabi, Baku, Muscat, Tbilisi';
$lang['tz']['4.5'] = '(GMT +4:30 hours) Kabul';
$lang['tz']['5'] = '(GMT +5:00 hours) Ekaterinburg, Islamabad, Karaczi, Taszkent';
$lang['tz']['5.5'] = '(GMT +5:30 hours) Bombaj, Kalkuta, Madras, Nowe Delhi';
$lang['tz']['6'] = '(GMT +6:00 hours) Almaty, Colombo, Dhaka';
$lang['tz']['6.5'] = '(GMT +6:30 hours) Rangoon';
$lang['tz']['7'] = '(GMT +7:00 hours) Bangkok, Hanoi, D?akarta';
$lang['tz']['8'] = '(GMT +8:00 hours) Pekin, Hong Kong, Perth, Singapur, Taipei';
$lang['tz']['9'] = '(GMT +9:00 hours) Osaka, Sapporo, Seoul, Tokyo, Jakuck';
$lang['tz']['9.5'] = '(GMT +9:30 hours) Adelaide, Darwin';
$lang['tz']['10'] = '(GMT +10:00 hours) Melbourne, Papua Nowa Gwinea, Sydney, W?adywostok';
$lang['tz']['11'] = '(GMT +11:00 hours) Magadan, Nowa Kaledonia, Wyspy Salomona';
$lang['tz']['12'] = '(GMT +12:00 hours) Auckland, Wellington, Fid?i, Wyspy Marshalla';
$lang['tz']['13'] = 'GMT + 13 Hours';




Oraz jeszcze jeden plik functions_date.php nadaje do kosza. Poniewaz nie by?o includowania pliku functions_date we wszystkich plikach i istnieje tam funckcja mkrealdate(), wi?c po co 2 funkcje ? Wystarczy jedna funkcja w pliku functions_add.php .

I poza tym funckja mkrealdate jest potrzebna do MOD'a Birthday. ;-)

To chyba tyle.

[ Dodano: Pi? 02 Lut, 2007 ]
ojej zauwa?y?em :?
ta stara funkcja create_date jest zrobiona ,?eby by? pogrubiony napis "Dzisiaj" i "Wczoraj" zamiast dat?, po zmianie na ten to wida? tylko dat?.


Solinarius, spr?bowa?e? zmieni? kod to co poda?em wy?ej funkcja create_date , potem przywr?ci?e? ?

[ Dodano: Pi? 02 Lut, 2007 ]
dobra ju? wiem wszystko, wystarczy stworzy? now? funkcj? w innej modyfikacji jako create_date_nazwamoda() i ju?, a ten wy?ej zostanie stare kody i nie zmienia?, a plik functions_date.php uwa?am do wyrzucenia.

Do Wszystkich prosz? nie zmienia? kody wy?ej.


Temat Closed.
 
       Unofficial modifications Strona Główna -> Pogaduchy
Strona 1 z 1
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.