Simple Machines Community Forum

SMF Support => Language Specific Support => فارسی (Farsi) => Topic started by: javad_ft on September 08, 2013, 10:44:57 AM

Title: آموزش شمسی کردن تاریخ انجمن SMF
Post by: javad_ft on September 08, 2013, 10:44:57 AM

با سلام خدمت دوستان
بنده اخیراً تاریخ انجمن خودمون رو شمسی کردم و میخام اینجا آموزشش رو بزارم تا همه استفاده کنن.
توجه1: اگر مهارت کافی ندارید از این آموزش استفاده نکنید، در غیر اینصورت ممکن است برای انجمن شما مشکل ایجاد شود.
تابع timeformat  در فایل Subs.php وظیفه تبدیل timestamp ها به رشته برای نمایش را بر عهده دارد.
با ویرایش این تابع میتوان تاریخ و ساعت را بصورت دلخواه نمایش داد.
همچنین باید توابعی برای تبدیل تاریخ میلادی به شمسی داشته باشید که برای این منظور از کتابخانه آماده jdf.php استفاده میکنیم که کاملاً قابل اطمینان است.
برای دانلود به اینجا مراجعه کنید: http://jdf.scr.ir

از آنجایی که فایل jdf برای انکودینگ UTF-8 ارائه شده، اگر انکودینگ انجمن شما Arabic(windows-1256 باشد باید از فایل تبدیل شده که در پست بعدی موجود است اسفاده کنید.
توجه2: قبل از هرگونه ایجاد تغییرات در فایل subs.php ، از آن یک کپی تهیه کنید تا در صورت بروز مشکل بتوانید آنرا جایگزین کنید.

برای استفاده از توابع فایل jdf باید آنرا در پوشه Sources کپی کنید.
همچنین باید آنرا در ابتدای فایل Subs اصطلاحاً include کنید.
توجه کنید که این کار باید بعد از قسمت if (!defined('SMF')) انجام شود. بصورت زیر:


if (!defined('SMF'))
die('Hacking attempt...');

include_once('jdf.php');

سپس تابع timeformat  باید با کد زیر جایگزین شود:


//#<modified> today/yesterday/date + time
// Format a time to make it look purdy.
function timeformat($log_time, $show_today = true, $offset_type = false)
{
global $context, $user_info, $txt, $modSettings, $smcFunc;

$time = $log_time + $modSettings['time_offset'] * 3600;

// Today and Yesterday?
if ($show_today === true)
{
// Get the current time.
$nowtime = forum_time(false); //argument must be false to ignore user_offset

$then = @getdate($time);
$now = @getdate($nowtime);

// Same day of the year, same year.... Today!
if ($then['yday'] == $now['yday'] && $then['year'] == $now['year'])
return jstrftime( $txt['today'] . '%H:%M:%S' ,$time);
// Day-of-year is one less and same year, or it's the first of the year and that's the last of the year...
if (($then['yday'] == $now['yday'] - 1 && $then['year'] == $now['year']) || ($now['yday'] == 0 && $then['year'] == $now['year'] - 1) && $then['mon'] == 12 && $then['mday'] == 31)
return jstrftime( $txt['yesterday'] . '%H:%M:%S' ,$time);
}

return jstrftime('%e %B %Y - %H:%M:%S' ,$time);
}
//#</modified>

Title: Re: آموزش شمسی کردن تاریخ انجمن SMF
Post by: javad_ft on September 08, 2013, 10:51:08 AM
دوستانی که انکودینگ انجمن آنها Arabic(windows-1256) است باید از این فایل استفاه کنند. توجه کنید که اسم فایل رو بزارید jdf.php 

http://jelecomp.persiangig.com/jdf_arabic%28windows1256%29.php/download
Title: Re: آموزش شمسی کردن تاریخ انجمن SMF
Post by: javad_ft on September 08, 2013, 10:56:27 AM

این کار محدودیتهای زیر را هم ایجاد میکنه که البته زیاد مهم نیستند:
- ادمین نمیتونه از تو بخش مدیریت سیستم، فرمت تاریخ تعریف کنه.(یعنی میتونه، ولی تابع timeformat تنظیمات رو نادیده میگیره)
2-کاربرا نمیتونن برای خودشون فرمت تاریخ و زمان و یا آفست زمانی تعریف کنن.(ایضاً مثل مورد بالا)

البته تو بخش مدیریت سیستم امکان تعریف آفست زمانی برای ادمین هست که میتونیم برای تصحیح زمانهای Daylight saving ،اختلاف ساعت جهانی و خطای ساعت سرور ازش استفاده کنیم
.یعنی اگر ساعت بخاطر شش ماهه اول یک ساعت جلو بود باید برید به مسیر زیر:
مدیریت سیستم>تنظیمات پیکربندی>امکانات و گزینه ها
بعد مقدار "اختلاف زمانی با ساعت سرور" رو بزارید روی 1-
Title: Re: آموزش شمسی کردن تاریخ انجمن SMF
Post by: hesaab on September 08, 2013, 11:43:36 PM
امکانش هست آدرس انجمن خودتون رو بذارید؟
ممنون
Title: Re: آموزش شمسی کردن تاریخ انجمن SMF
Post by: javad_ft on September 09, 2013, 03:41:03 PM
انجمن مال من نیست. من عضوم :
www.eca.ir/forum2
Title: Re: آموزش شمسی کردن تاریخ انجمن SMF
Post by: ali[n] on October 13, 2013, 01:36:35 PM
سلام
ممنون
عالی شد
[/font]
Title: Re: آموزش شمسی کردن تاریخ انجمن SMF
Post by: farshid_mi on November 02, 2013, 05:58:05 PM
از جنابعالی به خاطر این موضوع ارزشمند و راهنمایی دقیقتان سپاسگذری می نمایم:

تاریخ هجری شمسی در SMF
[/font]
Title: فروم متا
Post by: zabih1365 on April 20, 2014, 02:40:04 PM
سلام
این سایت هم هست
http://www.meta4u.com/forum/index.php?action=community
Title: آموزش شمسی کردن تاریخ انجمن SMF | انجمن حسابداری
Post by: zabih1365 on April 24, 2014, 04:57:55 AM
سلام
انجمن حسابداری در آدرس زیر هم تاریخش شمسی است.

http://www.meta4u.com/acc
Title: Re: آموزش شمسی کردن تاریخ انجمن SMF
Post by: IR4G on March 11, 2015, 07:11:02 AM
Quote from: javad_ft on September 08, 2013, 10:56:27 AM

این کار محدودیتهای زیر را هم ایجاد میکنه که البته زیاد مهم نیستند:
- ادمین نمیتونه از تو بخش مدیریت سیستم، فرمت تاریخ تعریف کنه.(یعنی میتونه، ولی تابع timeformat تنظیمات رو نادیده میگیره)
2-کاربرا نمیتونن برای خودشون فرمت تاریخ و زمان و یا آفست زمانی تعریف کنن.(ایضاً مثل مورد بالا)

البته تو بخش مدیریت سیستم امکان تعریف آفست زمانی برای ادمین هست که میتونیم برای تصحیح زمانهای Daylight saving ،اختلاف ساعت جهانی و خطای ساعت سرور ازش استفاده کنیم
.یعنی اگر ساعت بخاطر شش ماهه اول یک ساعت جلو بود باید برید به مسیر زیر:
مدیریت سیستم>تنظیمات پیکربندی>امکانات و گزینه ها
بعد مقدار "اختلاف زمانی با ساعت سرور" رو بزارید روی 1-

با سلام و تشکر بخاطر آموزش مفید
من از این روش استفاده کردم فقط به جای اسکریپت فرمت از خود متغیی استفاده کردم.
اینجوری  کاربرا میتونن برای خودشون فرمت تاریخ و زمان و یا آفست زمانی تعریف کنن
Title: Re: آموزش شمسی کردن تاریخ انجمن SMF
Post by: CHRIS-7 on March 11, 2015, 02:01:12 PM
ممنون اما مودی برای شمسی کردن تاریخ وجود داره و نیازی به نصب دستی نیست.

لینک زیر.

http://www.simplemachines.org/community/index.php?topic=498421.0 (http://www.simplemachines.org/community/index.php?topic=498421.0)
Title: Re: آموزش شمسی کردن تاریخ انجمن SMF
Post by: mehrtadbir on March 16, 2015, 07:47:30 PM
Quote from: CHRIS-7 on March 11, 2015, 02:01:12 PM
ممنون اما مودی برای شمسی کردن تاریخ وجود داره و نیازی به نصب دستی نیست.

لینک زیر.

http://www.simplemachines.org/community/index.php?topic=498421.0 (http://www.simplemachines.org/community/index.php?topic=498421.0)

سلام

بنده قبلا این مد رو تست کردم
گمان نکنم با نصب این مد تاریخ تاپیکها شمسی شود.

صرفا تاریخ در قسمت هدر سایت تغییر می کند
موفق و پیروز باشید

Title: Re: آموزش شمسی کردن تاریخ انجمن SMF
Post by: CHRIS-7 on March 31, 2015, 08:18:45 PM
با سلام.
فقط یک سوال خدمتتون داشتم. من این کار را کردم و انجمنم از تاریخ میلادی به شمی تغییر کرده است.

آیا وقتی که انجمن را بخواهم از نسخه به نسخه ی دیگری آپدیت کنم با خطایی مواجعه نخواهم شد ؟

زیرا با نصب تاریخ شمسی که پدرام خان پیکیجش را قرار دادند که به منظور تبدیل تاریخ میلادی به شمسی است بنده به صورت آزمایشی انجمنم را آپدیت نموده ام و با خطای مواجعه شدم و بعد اقدام به پاک کردن مود کردم و بعد از آن مجددا تلاش نمودم و این بار با موفقیت رو به رو شدم.
Title: Re: آموزش شمسی کردن تاریخ انجمن SMF
Post by: javad_ft on April 05, 2015, 06:08:47 PM
Quote from: CHRIS-7 on March 31, 2015, 08:18:45 PM
آیا وقتی که انجمن را بخواهم از نسخه به نسخه ی دیگری آپدیت کنم با خطایی مواجعه نخواهم شد ؟

راستش من زیاد خبره نیستم و این مطلب را هم 2 سال پیش نوشتم و زیاد یادم نمیاد
ولی فکر نکنم مشکلی پیش بیاد. شما اگر آپدیت کنید اون تغییراتی که برای تاریخ شمسی کردید از بین میره و باید دوباره انجام بدید
Title: Re: آموزش شمسی کردن تاریخ انجمن SMF
Post by: CHRIS-7 on April 05, 2015, 08:16:28 PM
Quote from: javad_ft on April 05, 2015, 06:08:47 PM
Quote from: CHRIS-7 on March 31, 2015, 08:18:45 PM
آیا وقتی که انجمن را بخواهم از نسخه به نسخه ی دیگری آپدیت کنم با خطایی مواجعه نخواهم شد ؟

راستش من زیاد خبره نیستم و این مطلب را هم 2 سال پیش نوشتم و زیاد یادم نمیاد
ولی فکر نکنم مشکلی پیش بیاد. شما اگر آپدیت کنید اون تغییراتی که برای تاریخ شمسی کردید از بین میره و باید دوباره انجام بدید

اوه ، ممنون بابت کمکتون - این تاریخ شمسی هم خیلی خوبه برای انجمن ها و خیلی طرفدار داره نسبت به تاریخ میلادی.بازم تشکر بابت مطلب با ارزشتون. :)
Title: Re: آموزش شمسی کردن تاریخ انجمن SMF
Post by: SaidJan on June 24, 2017, 09:18:35 PM
آیا میشه کاری کرد که این روش فقط روی زبان فارسی انجمن پیاده بشه و زبان انگلیسی دست نخورده بمونه؟