نمایش نتایج 1 تا 11 از 11

نام تاپیک: تاریخ شمسی در شیرپوینت 2013 با استفاده JQuery

  1. #1
    کاربر دائمی
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    تهران
    پست
    110

    Post تاریخ شمسی در شیرپوینت 2013 با استفاده JQuery

    با سلام
    میخواهم آمزش استفاده از Jquery برای فارسی کردن تاریخ شیرپوینت را توضیح بدم

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


    <script type="text/javascript" src="../_layouts/15/folderName/jquery-1.10.2.js"></script>
    <script type="text/javascript" src="../_layouts/15/folderName/FileName.js"></script>


    folderName و FileName را با نام های مناسب جای گزین کنید.

    خب کد را به چند دسته تقسیم می کنیم
    1. تاریخ شمسی در View ها
    2. تاریخ شمسی در فرم Display
    3. تاریخ شمسی در فرم new
    4.تاریخ شمسی در فرم Edit
    5.تاریخ شمسی در فرم های Infopath
    6. .......


    البته دوستان عزیز من در این زمینه مبتدی هستم و دوستان حرفه ای تر اگر جایی نکته ای یا ایرادی دیدند یادآوری کنند ممنون میشم
    آخرین ویرایش به وسیله حسین نیک پور : شنبه 24 اسفند 1392 در 13:15 عصر

  2. #2
    کاربر دائمی
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    تهران
    پست
    110

    نقل قول: تاریخ شمسی در شیرپوینت 2013 با استفاده JQuery

    در اولین مرحله باید در مستر پیج فایل js خود را صدا بزنیم

    <script>         $(document).ready(function () {
    changeDate();
    });
    </script>


    در فایل js نیز کد های زیر را وارد کنید تا در view ها تاریخ شمسی شود

    function changeDate() {


    $('.ms-noWrap').each(function () {
    if ($(this).text().match('\\d{1,2}\\/\\d{1,2}\\/\\d{4}')) {
    $(this).text(convert($(this).text()));
    }
    });
    function convert(txt) {
    ENtxt = txt.match('\\d{1,2}\\/\\d{1,2}\\/\\d{4}')[0];


    splitter = ENtxt.split('/');
    Year = new Number(splitter[2]);
    Month = new Number(splitter[0]);
    Day = new Number(splitter[1]);
    shamsiDate = SHDate(Year, Month, Day);
    return txt.replace(ENtxt, shamsiDate)
    }


    توابع زیر برای تبدیل تاریخ میلادی به شمسی مورد استفاده قرار می گیرند شما می توانید این توابع را در صورت تمایل با کد های دیگر جایگزین کنید

     function plus(year) { return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) ? 1 : 0; }    function SHyear(year, month, day) { if (month <= 3 && day < 21 - plus(year)) return year - 622; else return year - 621; }
    function SHmonth(year, month, day) {
    condition = new Array(21, 20, 21, 21, 22, 22, 23, 23, 23, 23, 22, 22);
    month_first = new Array(10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9);
    month_second = new Array(11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
    if (day < condition[month - 1] - plus(year))
    return month_first[month - 1];
    else return month_second[month - 1];
    }
    function SHday(year, month, day) { condition = new Array(21, 20, 21, 21, 22, 22, 23, 23, 23, 23, 22, 22); plus_first = new Array(10, 11, 9, 11, 10, 10, 9, 9, 9, 8, 9, 9); plus_second = new Array(20, 19, 20, 20, 21, 21, 22, 22, 22, 22, 21, 21); if (day < condition[month - 1] - plus(year)) return day + plus_first[month - 1] + plus(year); else return day - plus_second[month - 1] + plus(year); }
    function SHDate(year, month, day) { return SHyear(year, month, day) + "/" + SHmonth(year, month, day) + "/" + SHday(year, month, day); }
    آخرین ویرایش به وسیله حسین نیک پور : شنبه 24 اسفند 1392 در 16:34 عصر

  3. #3
    کاربر دائمی
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    تهران
    پست
    110

    نقل قول: تاریخ شمسی در شیرپوینت 2013 با استفاده JQuery

    در ایم مرحله در ِdisplay فرم ها تاریخ را به شمسی تبدیل می کنیم

      $('[id *= SPFieldDateTime]').each(function () {
    if ($(this).text().match('\\d{1,2}\\/\\d{1,2}\\/\\d{4}')) {
    $(this).text(convert($(this).text()));
    }
    });


    کد زیر نیز برای تغییر Created , modify Date می باشد

     $("span[id*='toolBarTbl']").each(function () {
    if ($(this).text().match('\\d{1,2}\\/\\d{1,2}\\/\\d{4}')) {
    $(this).text(convert($(this).text()));
    }
    });

  4. #4
    کاربر دائمی
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    تهران
    پست
    110

    نقل قول: تاریخ شمسی در شیرپوینت 2013 با استفاده JQuery

    برای حالت new و edit هم می توانید از این کد استفاده کنید

       //for hide old picker 
    $('.ms-dtinput a[onclick^="clickDatePicker"]').hide()
    //for add new picker
    $('.ms-dtinput input[type=text]').each(function () {
    $(this).addClass('hndp');
    $(this).val(convert($(this).val()));
    $(this).datepicker({
    changeMonth: true,
    changeYear: true,
    isRTL: true,
    dateFormat: "yy/mm/dd"
    });
    });




    برای Date Picker من از bootstrap فارسی استفاده کردم شما می توانید آن را جایگزین کنید

  5. #5
    کاربر دائمی
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    تهران
    پست
    110

    نقل قول: تاریخ شمسی در شیرپوینت 2013 با استفاده JQuery

    در اخرین مرحله شما باید قبل از save شدن فرم تاریخ را به میلادی برگردانده و ذخیره کنید


    $('input[type=button]').filter('input[id$="SaveItem"]').each(function () {
    $(this).removeAttr('onclick');
    var btn = $(this).attr('name');
    $(this).on('click', function () {


    changePersianDates();


    if (!PreSaveItem()) {
    console.log('ev : ' + PreSaveItem());
    return false;
    }


    WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(btn, "", true, "", "", false, true));

    });


    });

    function changePersianDates() {


    $('.hndp').each(function () {


    if ($(this).val()) {
    splitter = $(this).val().split('/');


    Year = new Number(splitter[0]);
    Month = new Number(splitter[1]);
    Day = new Number(splitter[2]);
    if (Year < 1400) {
    var j = persian_to_jd(Year, Month, Day);
    perscal = jd_to_gregorian(j);
    pyear = perscal[0];
    pmonth = perscal[1];
    pday = perscal[2];
    if (Number(pmonth) < 10)
    pmonth = "0" + pmonth;


    if (Number(pday) < 10) {
    pday = "0" + pday;
    }


    var miladiDate = pmonth + "/" + pday + "/" + pyear;


    fName = $(this).attr('id').split('_')[0];
    $('input[id $="' + fName + '"]').val(miladiDate);
    }


    }
    });
    }


  6. #6

    نقل قول: تاریخ شمسی در شیرپوینت 2013 با استفاده JQuery

    سلام دمت گرم
    منتها یک سوال توی سیستم های integrate شده با crm یا exchange مسئله calendar خیلی مهمه بویژه بر سر appointment هایی که هر کاربر برا خودش میگذاره
    می خواستم بپرسم آیا با این روش هم میشه این قضیه رو یک جورایی حلش کرد؟
    ولی واقعا دمت گرم
    خیلی نیازم بود

  7. #7

    نقل قول: تاریخ شمسی در شیرپوینت 2013 با استفاده JQuery

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

  8. #8
    کاربر دائمی
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    تهران
    پست
    110

    نقل قول: تاریخ شمسی در شیرپوینت 2013 با استفاده JQuery

    بله حق با شماست

    شما راه حلی براش دارین؟

  9. #9
    کاربر دائمی
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    تهران
    پست
    110

    نقل قول: تاریخ شمسی در شیرپوینت 2013 با استفاده JQuery

    نقل قول نوشته شده توسط gprsm0 مشاهده تاپیک
    سلام دمت گرم
    منتها یک سوال توی سیستم های integrate شده با crm یا exchange مسئله calendar خیلی مهمه بویژه بر سر appointment هایی که هر کاربر برا خودش میگذاره
    می خواستم بپرسم آیا با این روش هم میشه این قضیه رو یک جورایی حلش کرد؟
    ولی واقعا دمت گرم
    خیلی نیازم بود
    دوست عزیز توی دنیای وب هر کاری قابل انجام است وقت باید روش وقت گذاشت

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

  10. #10

    نقل قول: تاریخ شمسی در شیرپوینت 2013 با استفاده JQuery

    جناب نیک پور با سلام و خسته نباشید
    راستش من تازه کارم اما با سرچ تونستم مراحل بالا رو انجام بدم اما نه تقویم شمسی شد و نه DatePicker شمسی شد
    فایل jquery-1.10.2.js رو از سایت مرجعش دانلود کردم و توی یه پوشه بنام shamsi توی درایو c روی سرور قراردادم
    یه فایل js بنام مثلا shamsi.js درست کردم و تمامی کدهای ذکر شما رو توی اون وارد کردم بجز دو خط :
    <script type="text/javascript" src="../_layouts/15/shamsi/jquery-1.10.2.js"></script>
    <script type="text/javascript" src="../_layouts/15/shamsi/shamsi.js"></script>

    که اونها رو توی مسترپیج سایتم که اسمش seattle.master بود قبل از تگ body قرار دادم

    بعدش توی iis روی سرور یه پوشه مجازی توی اون مسیری که فرمودید درست کردم و
    اشاره دادم به پوشه shamsi که روی درایو c سرور داشتم و دو تا فایل js یعنی shamsi.js وjquery-1.10.2.js توش بودن
    ولی هیچ اتفاقی نیفتاد حتی از فرمان iisreset هم استفاده کردم
    لطفا اگه راهنمایی بفرمایید سپاسگزار خواهم بود،ضمنا شیرپوینت من 2013 هستش

  11. #11
    کاربر دائمی
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    تهران
    پست
    110

    نقل قول: تاریخ شمسی در شیرپوینت 2013 با استفاده JQuery

    دوست عزیز احتمالا با روشی که شما توضیح دادید فایل های js در صفحه لود نشده اند!

    پیشنهاد میکنم
    1.فایل های جاوای اسکریپت رو در داخل پوشه ای در فولدر Layout کپی کنید و از انجا ادرس دهید.
    2. روش لود کردن اسکریپت ها را در شیرپوینت 2013 متفاوت است.

تاپیک های مشابه

  1. پاسخ: 3
    آخرین پست: دوشنبه 05 اسفند 1392, 08:45 صبح
  2. استفاده از تاریخ شمسی در Jquery ui Datepicker
    نوشته شده توسط MRmoon در بخش jQuery
    پاسخ: 1
    آخرین پست: دوشنبه 07 بهمن 1392, 09:28 صبح
  3. کمک برای استفاده از کامپوننت shdate(تاریخ شمسی)
    نوشته شده توسط mehran_a در بخش برنامه نویسی در Delphi
    پاسخ: 0
    آخرین پست: پنج شنبه 12 شهریور 1383, 12:10 عصر
  4. استفاده تاریخ شمسی در CrystalReport
    نوشته شده توسط Amateur در بخش ابزارهای گزارشگیری در VB6
    پاسخ: 11
    آخرین پست: چهارشنبه 26 فروردین 1383, 14:15 عصر
  5. مقاله: استفاده از تاریخ شمسی در برنامه‌ها
    نوشته شده توسط linux در بخش VB.NET
    پاسخ: 15
    آخرین پست: چهارشنبه 16 مهر 1382, 06:29 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •