مرجع پارسی MyBB

نسخه‌ی کامل: آموزش حل مشکل پلاگین تاریخ خورشیدی با تاریخ تولد کاربران
شما درحال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب‌بندی مناسب.
درود

لطفا قبل از شروع به کار ، از فایلهایی که اسمشون در پایین میاد پشتیبان تهیه کنید تا اگه به مشکلی خوردید بتونید برشون گردونید (اگه درست انجام بدید هیچ مشکلی به وجود نمیاد ، نگران نباشید Wink )

اولین قسمت ، حل مشکل پلاگین با قسمت "متولدین امروز" در صفحه ی اصلی انجمن ؛ برای حل این مشکل :

فایل inc/functions.php رو باز کنید و کد زیر رو به انتهای فایل ، قبل از <? اضافه کنید :

کد php:
function my_date1($format$stamp=""$offset=""$ty=1$adodb=false)
{
    global 
$mybb$lang$mybbadmin$plugins;

    
// If the stamp isn't set, use TIME_NOW
    
if(empty($stamp))
    {
        
$stamp TIME_NOW;
    }

    if(!
$offset && $offset != '0')
    {
        if(
$mybb->user['uid'] != && array_key_exists("timezone"$mybb->user))
        {
            
$offset $mybb->user['timezone'];
            
$dstcorrection $mybb->user['dst'];
        }
        elseif(
defined("IN_ADMINCP"))
        {
            
$offset =  $mybbadmin['timezone'];
            
$dstcorrection $mybbadmin['dst'];
        }
        else
        {
            
$offset $mybb->settings['timezoneoffset'];
            
$dstcorrection $mybb->settings['dstcorrection'];
        }

        
// If DST correction is enabled, add an additional hour to the timezone.
        
if($dstcorrection == 1)
        {
            ++
$offset;
            if(
my_substr($offset01) != "-")
            {
                
$offset "+".$offset;
            }
        }
    }

    if(
$offset == "-")
    {
        
$offset 0;
    }
    
    if(
$adodb == true && function_exists('adodb_date'))
    {
        
$date adodb_date($format$stamp + ($offset 3600));
    }
    else
    {
        
$date gmdate($format$stamp + ($offset 3600));
    }
    
    if(
$mybb->settings['dateformat'] == $format && $ty)
    {
        
$stamp TIME_NOW;
        
        if(
$adodb == true && function_exists('adodb_date'))
        {
            
$todaysdate adodb_date($format$stamp + ($offset 3600));
            
$yesterdaysdate adodb_date($format, ($stamp 86400) + ($offset 3600));
        }
        else
        {
            
$todaysdate gmdate($format$stamp + ($offset 3600));
            
$yesterdaysdate gmdate($format, ($stamp 86400) + ($offset 3600));
        }

        if(
$todaysdate == $date)
        {
            
$date $lang->today;
        }
        else if(
$yesterdaysdate == $date)
        {
            
$date $lang->yesterday;
        }
    }

    if(
is_object($plugins))
    {
        
//$plugins->run_hooks_by_ref("my_date", $date);
    
}

    return 
$date;


فایل inc/class_datacache.php رو باز کنید . توی فایل به دنبال خط زیر بگردید :

کد php:
$bdaydate my_date("j-n"$bdaytime''0); 

توی این خط و دو خط بعدی ، my_date رو به my_date1 تبدیل کنید .

فایل index.php رو باز کنید . توی فایل به دنبال خط زیر بگردید :

کد php:
$bdaydate my_date("j-n"$bdaytime''0); 

توی این خط و خط بعدی ، my_date رو به my_date1 تبدیل کنید .

قسمت بعد ، حل مشکل نمایش سن در پروفایل کاربرها؛ برای حل این مشکل :

فایل inc/functions.php رو باز کنید و به دنبال خط زیر بگردید :

کد php:
list($day$month$year) = explode("-"my_date("j-n-Y"TIME_NOW00)); 

در این خط هم my_date رو به my_date1 تبدیل کنید .

تمام Smile
سلام دوست عزیز
مشکل کاملا حل نمیشه با این تغییرات
وقتی حالت نمایش تاریخ رو به این شکل قرار بدی d-M-Y
تاریخ تولد و سن رو به این شکل نمایش میده :

تاریخ ثبت نام: ۱۳-آذر-۱۳۹۱
تاریخ تولد: 11-Ju&-1991 (21 ساله)

ولی اگه فرمت رو d-m-Y
درست میشه!!!

چراHuh
نبود کسی مشکل رو حل کنهHuh
(۱۳۹۱/۱۰/۱، ۲۲:۲۴:۰۴ عصر)bmgp7 نوشته است: [ -> ]نبود کسی مشکل رو حل کنهHuh

من به نتیجه ای نرسیدم ...Sad
(۱۳۹۱/۹/۱۴، ۰۰:۵۹:۴۸ صبح)ahmadb نوشته است: [ -> ]درود

لطفا قبل از شروع به کار ، از فایلهایی که اسمشون در پایین میاد پشتیبان تهیه کنید تا اگه به مشکلی خوردید بتونید برشون گردونید (اگه درست انجام بدید هیچ مشکلی به وجود نمیاد ، نگران نباشید Wink )

اولین قسمت ، حل مشکل پلاگین با قسمت "متولدین امروز" در صفحه ی اصلی انجمن ؛ برای حل این مشکل :

فایل inc/functions.php رو باز کنید و کد زیر رو به انتهای فایل ، قبل از <? اضافه کنید :

کد php:
function my_date1($format$stamp=""$offset=""$ty=1$adodb=false)
{
    global 
$mybb$lang$mybbadmin$plugins;

    
// If the stamp isn't set, use TIME_NOW
    
if(empty($stamp))
    {
        
$stamp TIME_NOW;
    }

    if(!
$offset && $offset != '0')
    {
        if(
$mybb->user['uid'] != && array_key_exists("timezone"$mybb->user))
        {
            
$offset $mybb->user['timezone'];
            
$dstcorrection $mybb->user['dst'];
        }
        elseif(
defined("IN_ADMINCP"))
        {
            
$offset =  $mybbadmin['timezone'];
            
$dstcorrection $mybbadmin['dst'];
        }
        else
        {
            
$offset $mybb->settings['timezoneoffset'];
            
$dstcorrection $mybb->settings['dstcorrection'];
        }

        
// If DST correction is enabled, add an additional hour to the timezone.
        
if($dstcorrection == 1)
        {
            ++
$offset;
            if(
my_substr($offset01) != "-")
            {
                
$offset "+".$offset;
            }
        }
    }

    if(
$offset == "-")
    {
        
$offset 0;
    }
    
    if(
$adodb == true && function_exists('adodb_date'))
    {
        
$date adodb_date($format$stamp + ($offset 3600));
    }
    else
    {
        
$date gmdate($format$stamp + ($offset 3600));
    }
    
    if(
$mybb->settings['dateformat'] == $format && $ty)
    {
        
$stamp TIME_NOW;
        
        if(
$adodb == true && function_exists('adodb_date'))
        {
            
$todaysdate adodb_date($format$stamp + ($offset 3600));
            
$yesterdaysdate adodb_date($format, ($stamp 86400) + ($offset 3600));
        }
        else
        {
            
$todaysdate gmdate($format$stamp + ($offset 3600));
            
$yesterdaysdate gmdate($format, ($stamp 86400) + ($offset 3600));
        }

        if(
$todaysdate == $date)
        {
            
$date $lang->today;
        }
        else if(
$yesterdaysdate == $date)
        {
            
$date $lang->yesterday;
        }
    }

    if(
is_object($plugins))
    {
        
//$plugins->run_hooks_by_ref("my_date", $date);
    
}

    return 
$date;


فایل inc/class_datacache.php رو باز کنید . توی فایل به دنبال خط زیر بگردید :

کد php:
$bdaydate my_date("j-n"$bdaytime''0); 

توی این خط و دو خط بعدی ، my_date رو به my_date1 تبدیل کنید .

فایل index.php رو باز کنید . توی فایل به دنبال خط زیر بگردید :

کد php:
$bdaydate my_date("j-n"$bdaytime''0); 

توی این خط و خط بعدی ، my_date رو به my_date1 تبدیل کنید .

قسمت بعد ، حل مشکل نمایش سن در پروفایل کاربرها؛ برای حل این مشکل :

فایل inc/functions.php رو باز کنید و به دنبال خط زیر بگردید :

کد php:
list($day$month$year) = explode("-"my_date("j-n-Y"TIME_NOW00)); 

در این خط هم my_date رو به my_date1 تبدیل کنید .

تمام Smile




منظورتون رفع کدوم مشگل هستش؟
چی رو حل کردید؟