سلام،دوستان میخواستم برای تغییر مرتبه های کاربری به غیر از تعداد پست ها میزان فعالیت و حضور در فروم رو هم تاثیر بدم،باید چی کار کنم؟
متاسفانه تا حالا همچین چیزی رو باهاش برخورد نکردم تو اس ام اف، لا اقل همچین بسته ای وجود نداره اما اگه برنامه نویسی اس ام اف بلد باشی میشه یا یکی دو تا بسته که ترکیب بشن همچین کارو رو کرد
باید اول بسته ای که میزان فعالیت رو بر اساس درصد نشون میده نصب کنی، بعد تعداد ساعت حضور کاربر در انجمن هم که خود اس ام اف تو آمار نشون میده رو در نظر داشته باشه، یه شرط براشون تو قسمت پرمیشن ها اضافه کنی که اگه مثلا درصد فعالیت بیشتر از 5 و میزان حضور بیشتر از 10 ساعت بود یه درجه به کاربر اضافه بشه.
این بسته ای که گفتم:
http://custom.simplemachines.org/mods/index.php?mod=1929
اینجا یه مطالعه کن:
http://docs.simplemachines.org/index.php?topic=998.0
اگه همچین بسته ای نوشتی خوشحال میشیم به اشتراک بگذاری
من روی یکی از فروم های اس ام اف یک همچین چیزی رو دیدم،احتمالا خودشون اینو نوشتن پس.
addres bedid lotfan
www.sampadia.com/forum
اگه اشتباه نکنم برنامه نویسی این فروم در ابتدا توسط خانوم ثابتی اشرف(توی ایران تقریبا کارش تکه) انجام شد و الان هم بیشتر توسط پویام انجام میشه....
راستش من خیلی از چیزایی رو که میخوام بزارم روی فرومم از اینجا الهام گرفتم تقریبا.
مثل نمایش دادن آخرین استاتوس به جای امضا،و یا نشون داده شدن آخرین لایک ها و دیسلایک ها در پروفایل
براشون پیغام فرستادم
اما اون چیزی که گفتی رو ندیدم تو انجمنشون :)
Quote from: mrtarkhan on August 14, 2012, 06:17:53 AM
براشون پیغام فرستادم
اما اون چیزی که گفتی رو ندیدم تو انجمنشون :)
یعنی چی ندیدید؟مگه نحوه افزایش درجه کاربری رو همه میتونن ببینن؟!ولی خب میتونستید برید یه سری از کاربر هارو که درجه کاربریشون بالا هست رو ببینید!یه عده که تعداد پست هاشون کم تره،ولی زمان حضورشون بیشره مرتبه کاربری بالاتری دارن.
خب ما توی سمپادیا اینجوری اون درجات رو تغییر دادیم :
فایل 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)
بسیار ممنونم جناب مطهری
آه، شاید باور نکنید ولی الان که پاسخ آقای مطهری رو دیدم متوجه شدم دقیقا سوال دوست ما چی بود :P، واقعا از این بابت عذرخواهی می کنم که زیاد دقت نکردم هرچند پستتون رو دیدم چندبار خوندم اما زیاد متوجه نشدم :laugh:
دوست عزیزم من کلا سوال شما رو اشتباه متوجه شدم حتی شمارو اشتباه راهنمایی کردم اگه دقت کنید من لینک پرمیشن ها رو تو داکیومنت بهتون دادم مطالعه کنید:D برای این کار یه بسته هست که کار رو کاملا ساده انجام میده
پوزش به خاطر دیر به پاسخ رسیدن شما
این بسته:
http://custom.simplemachines.org/mods/index.php?mod=1915
امیدوارم این بار به جوابت رسیده باشی