e107 و مشکل پلاگین کاریابی

mehdi_bihamta

New Member
سلام . پلاگین کاریابی e107 یه مشکل داره و اونم اینه که تاریخش فقط میلادیه و از اونجا که تاریه توی آگهی های استخدام اهمیت زیادی داره چه باید کرد؟:shock:
 

VAHID216

مدیر بازنشسته
خوب شما باید توابع میلادی رو به شمسی تغییر بدید توی همون پلاگین ، روش کار هم در انجمن های php با عنوان تبدیل تاریخ میلادی به شمسی موجود هست.
موفق باشید
 

mehdi_bihamta

New Member
با تشکر ؛ من گشتم ؛ اما پیدا نکردم ؛ بزرگواری می فرمایید لینکش رو بذارید . از لطفتون ممنونم...:rose:
 

VAHID216

مدیر بازنشسته
خواهس می کنم دوست عزیز
من اینجا کپی می کنم براتون
استفاده از تابع تبدیل تاریخ شمسی به میلادی و بالعکس در php


برای دریافت توابع کافیست که کد توابع را از این آدرس دریافت کنید :
http://www.iranphp.net/modules/sections/index.php?op=viewarticle&artid=19


بوسیله یک copy و paste متن این توابع را درون یک فایل جدید بنام به عنوان مثال
jalali.php ذخیره کنید .

برای اینکه بتوانید از این توابع در برنامه خود استفاده کنید کافیست در ابتدای
برنامه خود دستور زیر را وارد کنید :



با این کار دو تابع با نامهای gregorian_to_jalali و jalali_to_gregorian در اختیار
شما قرار می گیرند که به ترتیب برای تبدیل تاریخ میلادی به شمسی و شمسی به میلادی
مورد استفاده قرار می گیرند .


برای اینکه بتوانم نحوه استفاده از این دو تابع را شرح دهم به ذکر مثالهایی در
این مورد می پردازم .


1- تبدیل تاریخ میلادی به شمسی

برای این کار باید از تابع gregorian_to_jalali استفاده کنید . این تابع 3 متغیر
را از ورودی دریافت می کند که به ترتیب سال، ماه و روز می باشد که همگی از نوع
عددی می باشند .

برای مثال اگر بخواهیم تاریخ 2002-11-25 را که درون یک متغیر داریم به شمسی تبدیل
کنیم و سپس آنرا درون یک متغیر قرار دهیم ابتدا باید عناصر تاریخ میلادی رو جدا
کنیم . برای این کار می توانیم در دستور زیر استفاده کنیم :


List( $gyear, $gmonth, $gday ) = preg_split ( '/-/', $gdate );
?>



در اینجا از دستور preg_spilit برای جدا کردن عناصر تاریخ $gdate توسط جداکننده
– استفاده کرده ایم . همانطور که می بینید syntax این دستور به این صورت است که
2 متغیر به عنوان ورودی دریافت می کند . اولی به عنوان delimiter می باشد که چون
می توان به صورت regex نیز آنرا وارد کرد باید بین دو slash (/) قرار گیرد و متغیر
دوم هم که همان متغییری است که تاریخ میلادی ما در آن قرار دارد .


چون خروجی این دستور یک آرایه است از دستور list استفاده کرده ایم تا عناصر آرایه
را هر کدام در یک متغیر قرار دهیم . هم اکنون روز، ماه و سال میلادی را هر کدام
در یک متغیر داریم . حال می توانیم از تابع gregorian_to_jalali استفاده کنیم :


List( $jyear, $jmonth, $jday ) = gregorian_to_jalali($gyear, $gmonth, $gday);
?>


در اینجا مشخص است که 3 متغیر سال، ماه و روز میلادی را به عنوان متغیر های ورودی
تابع grogorian_to_jalali وارد کرده ایم و چون خروجی این تابع از نوع آرایه است
توسط دستور list هر کدام از عناصر این آرایه را در یک متغیر قرار می دهیم . این
متغیر های حاوی اطلاعات سال،‌ ماه و روز همان تاریخ به شمسی می باشند . برای اینکه
آنها را به صورت قابل نمایش در یک متغیر قرار دهیم می توانیم این خط را به برنامه
اضافه کنیم :



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

در صوتیکه مقدار $jdate را نمایش دهید همان تاریخ از نوع شمسی خواهد بود که چیزی
شبیه به مقدار زیر است :


4/9/1381

حال در صورتیکه بخواهید تاریخ همین لحظه را به صورت شمسی بدست آورید می توانید
از برنامه زیر استفاده کنید :


List($gyear, $gmonth, $gday ) = preg_split ('/-/', date("y-m-d"));
list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($gyear, $gmonth, $gday);

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

همانطور که ملاحظه کردید از دستور date با آرگومان داده شده تاریخ فعلی سیستم
استخراج می شود و در همان روال توضیح داده شده تبدیل به شمسی شده و در متغیر $jdate
قرار می گیرد .


برای اینکه کارتان کمی ساده تر شود می توانید تابعی به شکل زیر تعریف کنید :


Function get_jalali_date( $gdate='now' )
{

if ( $gdate == 'now' )
{
list($gyear, $gmonth, $gday ) = preg_split ('/-/', date("y-m-d"));
}
else
{
list( $gyear, $gmonth, $gday ) = preg_split ( '/-/', $gdate );
}
list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($gyear, $gmonth, $gday);
return $jyear."/".$jmonth."/".$jday;

}
?>



تابعی با نام get_jalali_date تعریف کردیم که یک متغیر به عنوان ورودی دریافت
می کند که این همان تاریخ به میلادی است . در صوتیکه هنگام صدا کردن این تابع تاریخ
میلادی را به عنوان ورودی برای این تابع وارد کرده باشید،‌ تابع همان تاریخ را
به شمسی تبدیل کرده و در خروجی بر می گرداند،‌ ولی اگر هیچ متغیری به عنوان ورودی
به این تابع ندهید،‌ تاریخ همان لحظه را به شمسی برای شما در خروجی بر می گرداند
.

مثلا برای تبدیل همان تاریخ 2002-11-25 به شمسی و قرار دادن آن در یک متغیر می
توانیم با استفاده از تابع بالا اینگونه عمل کنیم :





و یا برای بدست آوردن تاریخ همین لحظه و قرار دادن آن در یک متغیر اینگونه عمل
می کنیم :





همانطور که می بینید کار بسیار ساده تر شد.



2- تبدیل تاریخ شمسی به میلادی :

با توضیحاتی مشابه می توانید از تابع jalali_to_gregorian استفاده کنید . مانند
تابع قبل این تابع هم سه متغیر به عنوان ورودی دریافت می کند که عبارتند از سال،
ماه و روز که همگی به شمسی هستند . سپس در جواب آرایه ای شامل سه قسمت که سال،‌
ماه و روز میلادی همان تاریخ هستند را بر می گرداند .



برای نمونه اگر بخواهیم تاریخ 4/9/1381 را به میلادی تبدیل کنیم کاری مشابه برنامه
زیر انجام می دهیم :



$jdate="1381/9/4";
list( $jyear, $jmonth, $jday ) = preg_split ( '///', $jdate );
list( $gyear, $gmonth, $gday ) = jalali_to_gregorian($jyear, $jmonth, $jday);
$gdate = $gyear."-".$gmonth."-".$gday;
?>



تنها تفاومت موجود با تابع بالا استفاده از / برای جداسازی اجزاء تاریخ شمسی می
باشد . همانطور که گفتیم تابع preg_split آرگومان اول خود که همان delimiter (‌
جدا کننده )‌ می باشد را به صورت regex می گیرد که باید بین دو علامت / باشد ،‌
در اینجا باید قبل / که نشان دهنده کاراکتر delimiter ما می باشد یک \ (‌back slash
)‌ قرار می دهیم که جداکننده مشخص باشد .
موفق باشید
 

mehdi_bihamta

New Member
با سلام و تشکر از زحمات شما ؛
لینکی که برای دریافت توابع محبت فرمودید کار نمیکنه ...
ممنون میشم اگر چک بفرمایید.:sad:
 
آخرین ویرایش:

milad1363

New Member
فارسی کردن پلاگین کاریابی e107

بابت لینک پوزش . در این آدرس می تونید فایل مورد نظر رو داونلود کنید
http://persiandates.ospdev.net/
موفق باشید
با عرض سلام
اگه از دوستان کسی هست که بتونه تاریخ این پلاگین رو فارسی کنه من نیاز دارم هزینه اش رو هم پرداخت می کنم. در صورت تنمایل با من تماس بگیرید:
[email protected]
09123486726
 

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

بالا