با اجازتون من تونستم تاریخ phpBB3 رو هجری شمسی کنم. فکر نکنم کسی اینکارو برای phpBB3 تا حالا انجام داده باشه.
میتونید نمونه ش رو در انجمن خودم ببینید: http://www.nurmengard.ir
و اما روش کار:
1- اول فایل jalali.php رو از اینجا بگیرید و در فولدر includes در شاخه اصلی phpBB3 قرار بدید.
2- از فایل session.php یک پشتیبان تهیه کنید.
3- فایل session.php رو باز کنید و مطابق زیر تغییر بدید:
پیدا کنید: (خط 1776)
code :
if (strpos($format, '|') === false || ($gmepoch < $midnight - 86400 && !$forcedate) || ($gmepoch > $midnight + 172800 && !$forcedate))
{
return strtr(@gmdate(str_replace('|', '', $format), $gmepoch + $this->timezone + $this->dst), $lang_dates);
}
جایگزین کنید با:
code :
if (strpos($format, '|') === false || ($gmepoch < $midnight - 86400 && !$forcedate) || ($gmepoch > $midnight + 172800 && !$forcedate))
{
$myformata = array('Y m d', ', g:i a', 'D ');
$firststep = @gmdate(str_replace('|', '', $myformata[0]), $gmepoch);
$secstep = explode(" ", $firststep);
require_once ('jalali.php');
list( $jy, $jm, $jd ) = gregorian_to_jalali($secstep[0], $secstep[1], $secstep[2]);
return strtr(@gmdate(str_replace('|', '', $myformata[2]), $gmepoch + $this->timezone + $this->dst), $lang_dates).
$jd . ' ' . givemonth($jm) . ' ' . $jy.
strtr(@gmdate(str_replace('|', '', $myformata[1]), $gmepoch + $this->timezone + $this->dst), $lang_dates);
}
توجه: اگر فرمت تاریخ رو در انجمن تون دستکاری کردید ممکنه هجری شمسی برای شما کار نکنه. بهتره فرمت تاریخ انجمن رو، روی حالت پیش فرض خودش، یعنی همینی که این پایین نوشتم، ست کنید:
code :
D M d, Y g:i a