تاثیر دادن زمان فعالیت در درجه های کاربری

Started by sayl3r, August 12, 2012, 11:48:12 AM

Previous topic - Next topic

sayl3r

سلام،دوستان میخواستم برای تغییر مرتبه های کاربری به غیر از تعداد پست ها میزان فعالیت و حضور در فروم رو هم تاثیر بدم،باید چی کار کنم؟
:|

mrtarkhan

متاسفانه تا حالا همچین چیزی رو باهاش برخورد نکردم تو اس ام اف، لا اقل همچین بسته ای وجود نداره اما اگه برنامه نویسی اس ام اف بلد باشی میشه یا یکی دو تا بسته که ترکیب بشن همچین کارو رو کرد
باید اول بسته ای که میزان فعالیت رو بر اساس درصد نشون میده نصب کنی، بعد تعداد ساعت حضور کاربر در انجمن هم که خود اس ام اف تو آمار نشون میده رو در نظر داشته باشه، یه شرط براشون تو قسمت پرمیشن ها اضافه کنی که اگه مثلا درصد فعالیت بیشتر از 5 و میزان حضور بیشتر از 10 ساعت بود یه درجه به کاربر اضافه بشه.

این بسته ای که گفتم:
http://custom.simplemachines.org/mods/index.php?mod=1929

اینجا یه مطالعه کن:
http://docs.simplemachines.org/index.php?topic=998.0

اگه همچین بسته ای نوشتی خوشحال میشیم به اشتراک بگذاری
هر پرسش خردمند، نيمي از پاسخ را در خود دارد.((سليمان ابن گاويرول))

sayl3r

من روی یکی از فروم های اس ام اف یک همچین چیزی رو دیدم،احتمالا خودشون اینو نوشتن پس.
:|

mrtarkhan

هر پرسش خردمند، نيمي از پاسخ را در خود دارد.((سليمان ابن گاويرول))

sayl3r

www.sampadia.com/forum
اگه اشتباه نکنم برنامه نویسی این فروم در ابتدا توسط خانوم ثابتی اشرف(توی ایران تقریبا کارش تکه) انجام شد و الان هم بیشتر توسط پویام انجام میشه....
راستش من خیلی از چیزایی رو که میخوام بزارم روی فرومم از اینجا الهام گرفتم تقریبا.
مثل نمایش دادن آخرین استاتوس به جای امضا،و یا نشون داده شدن آخرین لایک ها و دیسلایک ها در پروفایل
:|

mrtarkhan

براشون پیغام فرستادم
اما اون چیزی که گفتی رو ندیدم تو انجمنشون :)
هر پرسش خردمند، نيمي از پاسخ را در خود دارد.((سليمان ابن گاويرول))

sayl3r

Quote from: mrtarkhan on August 14, 2012, 06:17:53 AM
براشون پیغام فرستادم
اما اون چیزی که گفتی رو ندیدم تو انجمنشون :)
یعنی چی ندیدید؟مگه نحوه افزایش درجه کاربری رو همه میتونن ببینن؟!ولی خب میتونستید برید یه سری از کاربر هارو که درجه کاربریشون بالا هست رو ببینید!یه عده که تعداد  پست هاشون کم تره،ولی زمان حضورشون بیشره مرتبه کاربری بالاتری دارن.
:|

Motahhari

خب ما توی سمپادیا اینجوری اون درجات رو تغییر دادیم :


فایل subs.php در شاخه سورس :

// Set all membergroups from most posts to least posts.
$conditions = '';
foreach ($postgroups as $id => $min_posts)
{
$conditions .= '
WHEN posts >= ' . $min_posts . (!empty($lastMin) ? ' AND posts <= ' . $lastMin : '') . ' THEN ' . $id;
$lastMin = $min_posts;
}


جایگزین :

// Set all membergroups from most posts to least posts.
$conditions = '';
foreach ($postgroups as $id => $min_posts)
{
$conditions .= '

WHEN round(5*posts + 5*pow(total_time_logged_in/86400,2)) >= ' . $min_posts .((!empty($lastMin) ? ' AND  round(5*posts + 5*pow(total_time_logged_in/86400,2)) <= ' . $lastMin : '') )   . ' THEN ' . $id;

$lastMin = $min_posts;
}
///////////////////////////////////////



خب این کد ۵ برابر تعداد پست ها رو + مدت زمان حضور برحسب روز به توان ۵ رو جایگزین معیار تعداد پست ها میکنه. در واقع یک امتیاز تعریف میشه اینجا. حالا باید بری توی تنظیمات درجات کاربری اونجا که تعیین میکنن درجات کاربری براساس چندتا پست باشن به جای تعداد پست ها امتیازها رو بنویسی. باید خودت حساب بکنی که به چه امتیازهایی چه درجه هایی میخوای بدی. من برای اینکه اعضای سایتمون فرمول رو نفهمن فرمول توی کد رو تغییر دادم. تقسیم بندی امتیازها رو هم نیمتونم بگم. برای تغییر فرمول هم این تیکه کدش رو باید تغییر بدی :

5*posts + 5*pow(total_time_logged_in/86400,2)

mrtarkhan

هر پرسش خردمند، نيمي از پاسخ را در خود دارد.((سليمان ابن گاويرول))

mrtarkhan

آه، شاید باور نکنید ولی الان که پاسخ آقای مطهری رو دیدم متوجه شدم دقیقا سوال دوست ما چی بود :P، واقعا از این بابت عذرخواهی می کنم که زیاد دقت نکردم هرچند پستتون رو دیدم چندبار خوندم اما زیاد متوجه نشدم  :laugh:
دوست عزیزم من کلا سوال شما رو اشتباه متوجه شدم حتی شمارو اشتباه راهنمایی کردم اگه دقت کنید من لینک پرمیشن ها رو تو داکیومنت بهتون دادم مطالعه کنید:D برای این کار یه بسته هست که کار رو کاملا ساده انجام میده
پوزش به خاطر دیر به پاسخ رسیدن شما
این بسته:
http://custom.simplemachines.org/mods/index.php?mod=1915
امیدوارم این بار به جوابت رسیده باشی
هر پرسش خردمند، نيمي از پاسخ را در خود دارد.((سليمان ابن گاويرول))

Advertisement: