ماژول تبديل تاريخهاي انجمن phpBB به هجري شمسي

Majid

مدیر سایت
عضو کادر مدیریت
سلام

من يك ماژول براي تبديل تاريخهاي انجمن phpBB درست كردم كه يك نسخه از اون رو براي سايت phpBB فرستادم و يك نسخه ديگه از اونو اينجا ميذارم كه هر كس سوالي و يا مشكلي داشت در همينجا مطرح كنه...

کد:
############################################################## 
## MOD Title: Persian Shamsi Date
## MOD Author: MajidOnline < [email][email protected][/email] > (Majid Alavizadeh) http://www.majidonline.com
## MOD Description: with this module , you can show date in persian calender (which is Shamsi) in your forums.
## MOD Version: 1.0.1 
## 
## Installation Level: Easy
## Installation Time: 10 Minutes 
## Files To Edit: 6 Files
##                   includes/functions.php ,
##                   includes/usercp_viewprofile.php ,
##                   viewtopic.php ,
##                   memberlist.php , 
##                   templates/subSilver/profile_add_body.tpl ,
##                   language/lang_xxx/lang_main.php 
##
## Included Files: n/a 
############################################################## 
## For Security Purposes, Please Check: http://www.phpbb.com/mods/ for the 
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code 
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered 
## in our MOD-Database, located at: http://www.phpbb.com/mods/ 
############################################################## 
## Author Notes : 
## 		Thank you for use our MOD ...
##		visit [url]www.majidonline.com[/url] for more Persian MOD
## 
## 		.:... .. .  Have a Nice Time .. . ... . .:.: ..
##		             Majid Alavizadeh
##
################################################################ 
## MOD History: 
## 
##   2003-11-05 - Version 1.0.1
##      - Bug Fixed
##      - First Realese (Persian Hijri Date)
## 
############################################################## 
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
############################################################## 
## Demo/Tech-Support :     http://forum.majidonline.com
##	      Direct Link :     http://forum.majidonline.com/viewtopic.php?p=26529
################################################################# 


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

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

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 
 
// Hijri Date Calculation
// Special ThanX to [url]www.iranphp.net[/url] for this Function

function gregorian_to_jalali($g_y, $g_m, $g_d)
{

   global $g_days_in_month;
   global $j_days_in_month;

   $g_days_in_month = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
   $j_days_in_month = array(31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29);


   $div = create_function('$a,$b','return (int) ($a / $b);');

   $gy = $g_y-1600;
   $gm = $g_m-1;
   $gd = $g_d-1;

   $g_day_no = 365*$gy+$div($gy+3,4)-$div($gy+99,100)+$div($gy+399,400);

   for ($i=0; $i < $gm; ++$i)
      $g_day_no += $g_days_in_month[$i];
   if ($gm>1 && (($gy%4==0 && $gy%100!=0) || ($gy%400==0)))
      /* leap and after Feb */
      $g_day_no++;
   $g_day_no += $gd;

   $j_day_no = $g_day_no-79;

   $j_np = $div($j_day_no, 12053); /* 12053 = 365*33 + 32/4 */
   $j_day_no = $j_day_no % 12053;

   $jy = 979+33*$j_np+4*$div($j_day_no,1461); /* 1461 = 365*4 + 4/4 */

   $j_day_no %= 1461;

   if ($j_day_no >= 366) {
      $jy += $div($j_day_no-1, 365);
      $j_day_no = ($j_day_no-1)%365;
   }

   for ($i = 0; $i < 11 && $j_day_no >= $j_days_in_month[$i]; ++$i)
      $j_day_no -= $j_days_in_month[$i];
   $jm = $i+1;
   $jd = $j_day_no+1;

   return array($jy, $jm, $jd);

 }

?>


# 
#-----[ FIND ]------------------------------------------ 
# 

//
// 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));
}


# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 

//
// Create date/time from timezone in Persian Format
//

function user_date_hijri ($format, $gmepoch, $tz){

    $format = 'Y-m-d-D';

    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;
        }
    }
    	
    	$date = ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz)), $translate) : @gmdate($format, $gmepoch + (3600 * $tz));


      	    list($year, $month, $day, $day2, $hour, $min, $sec) = preg_split ('/-/', $date);

    	    list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($year, $month, $day);


	$jmonth = $jmonth-1;

	$monthnum = array ( $lang['Farvardin'], $lang['Ordibehesht'], $lang['Khordad'],$lang['Tir'],$lang['Mordad'],$lang['Shahrivar'],$lang['Mehr'],$lang['Aban'],$lang['Azar'],$lang['Dey'],$lang['Bahman'],$lang['Esfand']);
	$daynum = array ($lang['Yekshanbeh'], $lang['Doshanbeh'], $lang['Seshanbeh'], $lang['Chaharshanbeh'], $lang['Panjshanbeh'], $lang['Jomeh'], $lang['Shanbeh']);

	$jdate = $day2." ".$jday." ".$monthnum[$jmonth]. " " . $jyear;



    return $jdate;

}

function create_date($format, $gmepoch, $tz)
{

    $format = 'Y-m-d-D-H-i-s'; 
    
    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;
		}
    }

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

	    list($year, $month, $day, $day2, $hour, $min, $sec) = preg_split ('/-/', $date);

	    list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($year, $month, $day);

    	$jdate = $jday."/".$jmonth."/".$jyear;

	$jmonth = $jmonth-1;

	$monthnum = array ( $lang['Farvardin'], $lang['Ordibehesht'], $lang['Khordad'],$lang['Tir'],$lang['Mordad'],$lang['Shahrivar'],$lang['Mehr'],$lang['Aban'],$lang['Azar'],$lang['Dey'],$lang['Bahman'],$lang['Esfand']);

 	$jdate = $day2." ".$jday." ".$monthnum[$jmonth]." ".$jyear ." - ". $hour .":". $min ;


    return $jdate;
    
}


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

# 
#-----[ FIND ]------------------------------------------ 
#
	'JOINED' => create_date($lang['DATE_FORMAT'], $profiledata['user_regdate'], $board_config['board_timezone']),


# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 
	'JOINED' =>   user_date_hijri($lang['DATE_FORMAT'], $profiledata['user_regdate'], $board_config['board_timezone']),


# 
#-----[ OPEN ]------------------------------------------ 
#
memberlist.php

# 
#-----[ FIND ]------------------------------------------ 
#
		$joined = create_date($lang['DATE_FORMAT'], $row['user_regdate'], $board_config['board_timezone']);


# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 
		$joined = user_date_hijri($lang['DATE_FORMAT'], $row['user_regdate'], $board_config['board_timezone']);


# 
#-----[ OPEN ]------------------------------------------ 
#
viewtopic.php

# 
#-----[ FIND ]------------------------------------------ 
#
	$poster_joined = ( $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Joined'] . ': ' . create_date($lang['DATE_FORMAT'], $postrow[$i]['user_regdate'], $board_config['board_timezone']) : '';


# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 
	$poster_joined = ( $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Joined'] . ': ' . user_date_hijri ($lang['DATE_FORMAT'], $postrow[$i]['user_regdate'], $board_config['board_timezone']) : '';


# 
#-----[ OPEN ]------------------------------------------ 
# you should do this for all styles you have

templates/subSilver/profile_add_body.tpl

#
#-----[ FIND, REMOVE ]-------------------------------------
#
	<tr> 
	  <td class="row1"><span class="gen">{L_DATE_FORMAT}:</span><br />
		<span class="gensmall">{L_DATE_FORMAT_EXPLAIN}</span></td>
	  <td class="row2"> 
		<input type="text" name="dateformat" value="{DATE_FORMAT}" maxlength="14" class="post" />
	  </td>
	</tr>

# 
#-----[ OPEN ]------------------------------------------ 
#  We recommend Download phpBB Farsi

language/lang_xxx/lang_main.php 

# 
#-----[ FIND ]------------------------------------------ 
#

//
// That's all Folks!
// -------------------------------------------------

# 
#-----[ BEFORE, ADD ]------------------------------------------ 
#

// Hijri Date Mod
$lang['Shanbeh'] = 'شنبه';
$lang['Yekshanbeh'] = 'يكشنبه';
$lang['Doshanbeh'] = 'دوشنبه';
$lang['Seshanbeh'] = 'سه شنبه';
$lang['Chaharshanbeh'] = 'چهارشنبه';
$lang['Panjshanbeh'] = 'پنج شنبه';
$lang['Jomeh'] = 'جمعه';

$lang['Farvardin'] = 'فروردين';
$lang['Ordibehesht'] = 'ارديبهشت';
$lang['Khordad'] = 'خرداد';
$lang['Tir'] = 'تير';
$lang['Mordad'] = 'مرداد';
$lang['Shahrivar'] = 'شهريور';
$lang['Mehr'] = 'مهر';
$lang['Aban'] = 'آبان';
$lang['Azar'] = 'آذر';
$lang['Dey'] = 'دي';
$lang['Bahman'] = 'بهمن';
$lang['Esfand'] = 'اسفند';


# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM

مجيد
 

ady_constantine

Active Member
مجيد جان !

واقعا لطف كردي .
من آپاچي روي سيستم خود دارم و MOD شما تست كردم . ديگه فروم بالا نمياد و با خطاهاي زير مواجه شدم .

[align=left]
Parse error: parse error in C:\apache\htdocs\forum\includes\functions.php on line 872

Warning: Cannot add header information - headers already sent by (output started at C:\apache\htdocs\forum\includes\functions.php:872) in C:\apache\htdocs\forum\includes\sessions.php on line 182

Warning: Cannot add header information - headers already sent by (output started at C:\apache\htdocs\forum\includes\functions.php:872) in C:\apache\htdocs\forum\includes\sessions.php on line 183

Fatal error: Call to undefined function: gregorian_to_jalali() in C:\apache\htdocs\forum\includes\functions.php on line 417
[align=right]

حالا خطوطي هم كه ايراد گرفته مي نويسم :

C:\apache\htdocs\forum\includes\functions.php on line 872 دقيقا آخرين خط برنامه است .

C:\apache\htdocs\forum\includes\sessions.php on line 182
کد:
setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);

C:\apache\htdocs\forum\includes\sessions.php on line 183
کد:
setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);

C:\apache\htdocs\forum\includes\functions.php on line 417
کد:
      list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($year, $month, $day);
 

Majid

مدیر سایت
عضو کادر مدیریت
معذرت ميخوام :oops:

يك اشتباه كوچيك شده بود...

الان درستش كردم و ميتونيد ازش استفاده كنيد.. (نامه اول رو اديت كردم و نسخه درست رو گذاشتم)


مجيد
 

nsboss

Member
Majid گفت:
معذرت ميخوام :oops:

يك اشتباه كوچيك شده بود...

الان درستش كردم و ميتونيد ازش استفاده كنيد.. (نامه اول رو اديت كردم و نسخه درست رو گذاشتم)


مجيد
سلام مجيد خان
شرمنده كه فضولي ميكنم ها... ولي يه درخواستي داشتم و اونم اينكه [fade:e3b85a3b64]شما يك اشتباه رو توي ارسال كد انجام داده بودين كه به دليل اون ارور ميداد.... شما توي اين پست نوشتي كه اصلاح شد...[/fade:e3b85a3b64]
حالا اگه اون قسمتي رو كه اشتباه شده بود مينوشتين بهتر نيود؟؟؟؟ اين خودش ميتونه كمكي باشه به اونايي كه تازه ميخوان اين كارو شروع بكنن...
در كل از زحمات تك تك دوستان تشكر ميكنم چه مديران انجمنها و چه اعضاي فعال و مجيد آقا كه جاي خودشونو دارن ديگه:wink:!
 

Majid

مدیر سایت
عضو کادر مدیریت
سلام..

آقا مشكل از اين بود من قبل گفته بودم كه اينو پيدا كنيد:

کد:
# 
# 
#-----[ FIND ]------------------------------------------ 
# 
}
?>

بعد گفته بودم با اين عوضش كنيد:

کد:
# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 
  
// Hijri Date Calculation 
// Special ThanX to [url]www.iranphp.net[/url] for this Function 

function gregorian_to_jalali($g_y, $g_m, $g_d) 
{
.
.
.

بعد من فراموش كرده بودم كه بگم وقتي ميخواي Replace كنيد اون { رو بذاريد دوباره و حذف ميشد واسه همين php ارور ميگرفت اما الان توي اين نسخه جديد كلا گفتم كه با ?> جايگزين كنيد و اون { رو ديگه حذف نميكنه و مشكل رفع شده باشه! اميدوارم خوب گفته بايم

مجيد
 

Milad-A

Member
مجيد جان با تشكر فراوان از ماژول‌ات
مشكلي كه من دارم اين‌اه كه بعد از انجام كارها تاريخ فارسي مي‌شه اما با پيغام‌هاي زير روبه‌رو مي‌شم بالاي صفحه

Warning: Cannot modify header information - headers already sent by (output started at C:\apache\htdocs\phpbb2\language\lang_farsi\lang_main.php:1) in C:\apache\htdocs\phpbb2\viewtopic.php on line 555

Warning: Cannot modify header information - headers already sent by (output started at C:\apache\htdocs\phpbb2\language\lang_farsi\lang_main.php:1) in C:\apache\htdocs\phpbb2\includes\page_header.php on line 474

Warning: Cannot modify header information - headers already sent by (output started at C:\apache\htdocs\phpbb2\language\lang_farsi\lang_main.php:1) in C:\apache\htdocs\phpbb2\includes\page_header.php on line 476

Warning: Cannot modify header information - headers already sent by (output started at C:\apache\htdocs\phpbb2\language\lang_farsi\lang_main.php:1) in C:\apache\htdocs\phpbb2\includes\page_header.php on line 477

البته تاريخ‌ها فارسي مي‌شن اما اين پيغام‌ها هم هستند. من ازsubsilver فارسي استفاده مي‌كنم كه از خودتان گرفته‌ام.
يا علي!
 

ied

Member
آقا مجيد يه پيشنهاد دارم يه نسخه فارسي شده رو بذارين واسه دانلود اون فايل هايي كه اديت كردين!بهتره!
 

amiri27

Member
سلام
آقا مجيد يه سوال !؟!؟؟!
اين سيستم براي PHPBB پورت شده براي NUKE كار مي كنه ؟؟؟؟

ممنون
خداحافظ
 

ady_constantine

Active Member
Milad-A گفت:
مجيد جان با تشكر فراوان از ماژول‌ات
مشكلي كه من دارم اين‌اه كه بعد از انجام كارها تاريخ فارسي مي‌شه اما با پيغام‌هاي زير روبه‌رو مي‌شم بالاي صفحه

Warning: Cannot modify header information - headers already sent by (output started at C:\apache\htdocs\phpbb2\language\lang_farsi\lang_main.php:1) in C:\apache\htdocs\phpbb2\viewtopic.php on line 555

Warning: Cannot modify header information - headers already sent by (output started at C:\apache\htdocs\phpbb2\language\lang_farsi\lang_main.php:1) in C:\apache\htdocs\phpbb2\includes\page_header.php on line 474

Warning: Cannot modify header information - headers already sent by (output started at C:\apache\htdocs\phpbb2\language\lang_farsi\lang_main.php:1) in C:\apache\htdocs\phpbb2\includes\page_header.php on line 476

Warning: Cannot modify header information - headers already sent by (output started at C:\apache\htdocs\phpbb2\language\lang_farsi\lang_main.php:1) in C:\apache\htdocs\phpbb2\includes\page_header.php on line 477

البته تاريخ‌ها فارسي مي‌شن اما اين پيغام‌ها هم هستند. من ازsubsilver فارسي استفاده مي‌كنم كه از خودتان گرفته‌ام.
يا علي!

دقيقا درسته !!!!‌

من همچين مشكلي پيدا كردم . :wink:
 

Majid

مدیر سایت
عضو کادر مدیریت
آقا معذرت من اين تاپيكو نديده بودم جديدا..

آقا دليلش اينه كه احتمالا شما فايل lang-main.php رو با notepade اديتش كردي (يا يك برنامه ديگه كه يونيكد ساپورت ميكنه) واسه همين اينجور برنامه ها يك كد اول فايل اضافه ميكنند كه phpBB از اون كد اررور ميگيره..
شما فايل lang-main.php رو در يك اديتور كه يونيكد رو ساپورت نميكنه باز كنيد و اون كاراكتر هايي كه قبل از
کد:
<?php
هستش رو برداريد..

مجيد
 

Majid

مدیر سایت
عضو کادر مدیریت
آقا من معمولا اول با notepad يا ultraedit (در حالت UTF- 8 ) اديت ميكنم بعدش در برنامه هايي مثل Zend Studio يا PHP editor يا PHP Maguma يا Ultra Edit (از حالت UTF-8 خارجش ميكنم) باز ميكنم و اون كاراكترهايي كه اولش هستش رو پاك ميكنم و دخيره ميكنم...


مجيد
 

ied

Member
آقا با يه نرم افزار ساده مثل dream waver هم می شه!!!من موندم چرا به فکرتون نرسیده! :?: :idea: :arrow:
 

ady_constantine

Active Member
ied جان !!!‌

من با Dream waver اديت مي كنم و اين مشكل را دارم !!!!!!

مجيد جان ! از راهنمايي شما هم ممنون .
 

mehrazma

New Member
سلام
همين ماژول تاتبديل تاريخ شمسي را مي گم .
راستي آقا دستت هم بابت كارهايي كه انجام مي دهي درد نكنه
 

جدیدترین ارسال ها

بالا