هاست لینوکس

آخرین بسته‌ی MyBB: نسخه‌ی 1.8.27 MyBB منتشر شد


امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
آموزش حل مشکل پلاگین تاریخ خورشیدی با تاریخ تولد کاربران
#1
درود

لطفا قبل از شروع به کار ، از فایلهایی که اسمشون در پایین میاد پشتیبان تهیه کنید تا اگه به مشکلی خوردید بتونید برشون گردونید (اگه درست انجام بدید هیچ مشکلی به وجود نمیاد ، نگران نباشید 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
پاسخ
 سپاس شده توسطmhy (۱۳۹۱/۹/۱۴، ۰۱:۱۶:۴۳ صبح) ، yaser0421 (۱۳۹۱/۹/۱۴، ۰۱:۱۹:۲۳ صبح) ، HOssE!N-B (۱۳۹۱/۹/۱۴، ۱۰:۳۵:۴۶ صبح) ، Amir_Sam (۱۳۹۱/۹/۱۴، ۱۲:۰۵:۲۹ عصر) ، baxe rapper (۱۳۹۱/۹/۲۳، ۰۲:۰۶:۴۸ صبح) ، bmgp7 (۱۳۹۱/۹/۲۸، ۱۳:۴۳:۱۳ عصر) ، milad1364 (۱۳۹۱/۹/۲۹، ۱۷:۵۸:۲۳ عصر) ، auuob (۱۳۹۱/۱۲/۱۰، ۱۷:۱۴:۳۲ عصر) ، maneoo (۱۳۹۲/۴/۲۴، ۱۴:۰۰:۴۲ عصر) ، ofpersia (۱۳۹۳/۵/۱۱، ۱۳:۱۴:۰۱ عصر)
#2
سلام دوست عزیز
مشکل کاملا حل نمیشه با این تغییرات
وقتی حالت نمایش تاریخ رو به این شکل قرار بدی d-M-Y
تاریخ تولد و سن رو به این شکل نمایش میده :

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

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

چراHuh
پاسخ
#3
نبود کسی مشکل رو حل کنهHuh
پاسخ
#4
(۱۳۹۱/۱۰/۱، ۲۲:۲۴:۰۴ عصر)bmgp7 نوشته است: نبود کسی مشکل رو حل کنهHuh

من به نتیجه ای نرسیدم ...Sad
پاسخ
 سپاس شده توسطbmgp7 (۱۳۹۱/۱۰/۲، ۱۶:۵۱:۴۴ عصر)
#5
(۱۳۹۱/۹/۱۴، ۰۰:۵۹:۴۸ صبح)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




منظورتون رفع کدوم مشگل هستش؟
چی رو حل کردید؟
پاسخ
 سپاس شده توسطشماره مجازی (۱۴۰۱/۸/۲۶، ۰۱:۵۳:۰۶ صبح) ، گراف مسنجر (۱۴۰۱/۱۰/۳، ۰۴:۱۵:۰۶ صبح) ، چارتر ۴۲۴ (۱۴۰۲/۹/۱۲، ۱۵:۱۶:۳۲ عصر)


موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [برای 1.6.5] پلاگین تاریخ خورشیدی imei Jalali Date Mohammad-Za 105 72,489 ۱۳۹۳/۳/۱، ۰۲:۰۷:۵۳ صبح
آخرین ارسال: mersadnouri

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان