PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : طريقه شمسي كردن تاريخ در MT به وسيله php



Borna66
12-25-2009, 01:22 AM
طريقه شمسي كردن تاريخ در MT به وسيله php با كليك كردن روي لينك زير ميتونيد اين مطلب رو مطالعه كنيد.
توجه: براي استفاده از اين راهنما بايد سرور شما php را ساپورت كند. براي اينكه از اين موضوع مطلع شويد با آنجايي كه از آن فضا گزفته ايد تماس بگيريد. (https://www.mypersianforum.com/)
درMT به قسمت Templates برويد و سپس روي بخش Main Index كليك و در آنجا در قسمت Output File اسم Index.php را بنويسيد و در ابتداي قالب اين را paste كنيد:



کد:

<?php
// "jalali.php" is convertor to and from Gregorian and Jalali calendars.
// Copyright (C) 2000 Roozbeh Pournader and Mohammad Toossi
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// A copy of the GNU General Public License is available from:
//
// http://www.gnu.org/copyleft/gpl.html
//

$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);


function gregorian_to_jalali($g_y, $g_m, $g_d)
{
global $g_days_in_month;
global $j_days_in_month;

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

function jalali_to_gregorian($j_y, $j_m, $j_d)
{
global $g_days_in_month;
global $j_days_in_month;

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

$jy = $j_y-979;
$jm = $j_m-1;
$jd = $j_d-1;

$j_day_no = 365*$jy + $div($jy, 33)*8 + $div($jy%33+3, 4);
for ($i=0; $i < $jm; ++$i)
$j_day_no += $j_days_in_month[$i];

$j_day_no += $jd;

$g_day_no = $j_day_no+79;

$gy = 1600 + 400*$div($g_day_no, 146097); /* 146097 = 365*400 + 400/4 - 400/100 + 400/400 */
$g_day_no = $g_day_no % 146097;

$leap = true;
if ($g_day_no >= 36525) /* 36525 = 365*100 + 100/4 */
{
$g_day_no--;
$gy += 100*$div($g_day_no, 36524); /* 36524 = 365*100 + 100/4 - 100/100 */
$g_day_no = $g_day_no % 36524;

if ($g_day_no >= 365)
$g_day_no++;
else
$leap = false;
}

$gy += 4*$div($g_day_no, 1461); /* 1461 = 365*4 + 4/4 */
$g_day_no %= 1461;

if ($g_day_no >= 366) {
$leap = false;

$g_day_no--;
$gy += $div($g_day_no, 365);
$g_day_no = $g_day_no % 365;
}

for ($i = 0; $g_day_no >= $g_days_in_month[$i] + ($i == 1 && $leap); $i++)
$g_day_no -= $g_days_in_month[$i] + ($i == 1 && $leap);
$gm = $i+1;
$gd = $g_day_no+1;

return array($gy, $gm, $gd);
}
?>

بعد قسمت "<$MTEntryDate format="%x"$>" را پيدا كنيد و به جاي آن نوشته هاي زير را بنويسيد:
<?
$week= Array("Thursday" => "پنجشنبه","Saturday" => "شنبه","Sunday" => "يكشنبه","Monday" => "دوشنبه","Tuesday" => "سه شنبه","Wednesday" => "چهارشنبه","Friday" => "جمعه");
$month = Array("فروردين","ارديبهشت","خرداد","تير","مرداد","شهريور","مهر","آبان","آذر","دي","بهمن","اسفند");
list( $gyear, $gmonth, $gday ) = preg_split ( '/-/', '<$MTEntryDate format="%Y-%m-%d"$>' );
list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($gyear, $gmonth, $gday);
echo "<div style='direction:rtl'>" . $week["<$MTEntryDate format="%A"$>"] . ", ". $jday . " " . $month[--$jmonth] . " " . $jyear . "</div>"
?>


حالا بايد به وسيله يك برنامه FTP به سايت خودتان وصل شويد و به پوشه ايي كه آنجا فايلهاي ثايت وبلاگ قرار دارد برويد و فايل Index.HTML را پاك كنيد. (https://www.mypersianforum.com/)
همين طور كه ميدانيد MT مطالب نوشته شده را به صورت صفحات ثابت در محلي كه مشخص كرده ايد ذخيره ميكند. براي مثال صفحات اين وبلاگ در weblog.mojde.com قرار گرفته است در حالي كه MT در محل ديگري نصب شده است.
اگر برنامه FTP نداريد نگران نباشيد! چون از خود برنامه Internet explorer هم ميتوانيد براي اين كار استفاده كنيد. (https://www.mypersianforum.com/) براي اين كار در قسمت آدرس IE آدرس را به اين صورت وارد كنيد:
ftp://username@domain.com (ftp://username@domain.com/)
(بجاي username و domain.com مشخصات مربوط به سايت خودتان را وارد كنيد) بعد صفحه ايي ظاهر ميشود كه در آن بايد شماره رمز FTP سايتتان را وارد كنيد.