در قسمت قبلی مقاله مشاهده کردید که چگونه میتوان تاریخ هایی که در یک صفحه قرار دارد را به شمسی تغییر داد ، در این مقاله قصد دارم به شما آموزش دهم چگونه با استفاده از Jquery و جاوا اسکریپت Date Picker شیرپوینت را به شمسی تغییر دهید .
اگر ستونی از نوع تقویم در لیست های خود داشته باشید هنگام ایجاد یا ویرایش یک مورد جدید Date Picker شیرپوینت با توجه نوع تقویم انتخاب شده به شکل زیر نمایش داده میشود :
ایجاد شده است :
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\IMAGES
<link type=”text/css” href=”/_layouts/images/jquery-ui-1.8.14.css” rel=”stylesheet” /><script type=”text/javascript” src=”/_layouts/images/jquery-1.6.2.min.js”></script><script type=”text/javascript” src=”/_layouts/images/jquery.ui.datepicker-cc.all.min.js”></script>
changeDatePickerToPersian();
//
تغییر پیکر تاریخfunction
changeDatePickerToPersian(){
$(function()
{var
tags = document.getElementsByTagName(‘IMG’);for
(var i = 0; i < tags.length; i++){
var tempString = tags.id;if (tempString.indexOf(‘DatePickerImage’) !=
-۱){document.getElementById(tempString).style.display
= ‘none’;var dtcontrolId =
tempString.replace(‘DatePickerImage’,”);$(“#” +
dtcontrolId).datepicker({showOn: ‘button’,buttonImage:
‘/_layouts/images/calendar.gif’,buttonImageOnly: true});}
}
});
}
فایل را ذخیره کرده ، به یکی از لیست هایی که دارای ستون تقویم میباشد مثل لیست وظایف رفته و مورد جدیدی را ایجاد یا موردی را ویرایش کنید ، میتوانید Date Picker شمسی را مشاهده کنید و از انتخاب آن لذت ببرید !
اما تغییر کوچک دیگری نیز باید در کدها ایجاد کنیم ، اگر به تصویر بالا نگاه کنید زمانی که ستون دارای مقدار پیش فرض می باشد یا زمانی که در حالت ویرایش مورد این ستون از قبل مقدار گرفته باشد ، تاریخی که در این ستون نمایش داده می شود به صورت میلادی است که باید مقدار آنرا به شمسی تغییر دهید ، ما توابع تبدیل را در اختیار داریم و آن را در فایل Master Page وارد کردیم ، پس تنها کاری که باید انجام بدیم پیدا کردن این کنترل و تغییر مقدار آن می باشد که توسط کد زیر صورت می گیرد :
var DateValue =
document.getElementById(dtcontrolId).value;if(DateValue)
{
Year = new
Number(DateValue.substring(0, 4));Month =
new Number(DateValue.substring(5, 7));Day = new
Number(DateValue.substring(8, 10));if(Year
> 2000){
//
تبدیل تاریخ میلادی به شمسیvar
j = gregorian_to_jd(Year,Month,Day);perscal
= jd_to_persian(j);pyear
= perscal[0];pmonth
= perscal[1];pday
= perscal[2];
if(Number(pmonth)
< 10)pmonth
= “۰” + pmonth;
if(Number(pday)
< 10)pday
= “۰” + pday;
//
ذخیره مقدار تاریخ شمسیvar
shamsiDate = pyear + “/” + pmonth + “/” + pday;
//
جایگذاری مقدار تاریخ میلادی با شمسیdocument.getElementById(dtcontrolId).value
= shamsiDate;}
}
که بعد از انجام این تغییرات در هنگام لود شدن کنترل تاریخ میلادی به شمسی تغییر خواهد یافت :
در نهایت ما تابعی خواهیم داشت که Date Picker میلادی را به شمسی تغییر خواهد داد !
در قسمت بعدی مقاله به نحوه ذخیره این تاریخ ها خواهم پرداخت ، منتظر نظرات شما هستم ! ضمناً دوستانی که مایل هستند در پروژه فارسی سازی شیرپوینت فاندیشن ۲۰۱۳ با من همکاری داشته باشند لطفا مشخصاتشون رو به من ایمیل کنند .
کدهای نهایی که در واقع کدهای این قسمت و کدهای قسمت قبل می باشد را میتوانید ازاینجا دریافت کنید .
موفق و پیروز باشید.