یکی از معضلاتی بزرگی که مینواند فرومها را به چالش بکشد دکمههایی مانند تشکر و اعتبار است. نبودنش یک مشکلاتی دارد و بودنشان(با امکانات فعلی) یکسری مشکلات دیگر؟!
دکمهی اعتبار فعلی آپشنهای چندانی را در اختیار نمیگذارد!(یا اینکه من بلد نیستم!) میتوان با آن به همهی کاربران امکان داد که اعتبار بدهند یا گروهی را از اعتبار دادن منع کرد. میتوان اجازه داد که کاربر بتواند اعتبار 1+/1-، 2+/2- و... بدهد و محدودیت روی بیشترین تعداد ارسال در هر روز یا هر موضوع را اعمال کرد. اما اینها به تنهایی کافی نیست!
نبودن امکانهایی دیگر میتواند فروم را کلهپا! کند. باید این امکان وجود داشته باشد که
1. از منفی شدن اعتبار کاربر جلوگیری شود و از صفر پایینتر نرود.
2. کاربران با شرایط خاص را اجازهی اعتبار دهی داد. مثلاً کاربری که تعداد ارسالهایش از 50 رد شده است بتواند اعتبار بدهد
3. بازههای زمانی بین اعتباردهی را محدود کرد. مثلاً کاربر در هر نیم ساعت فقط یک اعتبار بتواند بدهد.
راهکار یا پلاگینی برای برآوردن موارد فوق وجود دارد؟
1- پیکربندی --> Reputation --> گزینهی Allow Negative Reputation
2- درمورد جلوگیری از منفی شدن اعتبار هم فایل reputation.php را که در ROOT انجمن و در همان محل فایل index.php است با
Notepad++ باز کرده و خط زیر را بیابید:
کد php:
$plugins->run_hooks("reputation_start");
و خط زیر را به زیر آن اضافه کنید:
کد php:
if ($mybb->user['postnum'] <= "20" && $mybb->user['usergroup'] != "4")
{
error("شما تعداد ارسال کافی برای دادن اعتبار را ندارید.");
}
به جای عدد
۲۰ تعداد ارسال مورد نیاز را وارد کنید.
عدد
۴ هم مروبط به گروه کاربری مدیر کل است که این محدودیت برای آنها اعمال نمیشود.
و سپس فایل را ذخیره کنید. (با فرمت UTF-8 Without BOM )
Notepad ++ -> (منوهای بالا) ENCODING --> (گزینه) UTF-8 Without BOM
3- کاربران و گروهها --> گروهها --> گروه مورد نظر --> (تب) کاربران و دسترسیها --> سیستم اعتبارها --> بیشترین تعداد اعتبارهای مجاز در هر روز:
فقط میشود گفت: بچهها مچکریم(متشکریم)!
1. از منفی شدن اعتبار کاربر جلوگیری شود و از صفر پایینتر نرود.
پاسخ:
(۱۳۹۰/۹/۱۰، ۰۲:۴۷:۴۰ صبح)Mohammad-Za نوشته است: [ -> ]پیکربندی --> Reputation --> گزینهی Allow Negative Reputation
روش بالا اشکالی که دارد این است که امکان امتیاز منفی دادن را برمیدارد. درخواست این است که وقتی کاربری اعتبارش صفر است یا به صفر کاهش پیدا میکند، دیگر این امکان وجود نداشته باشد که به او امتیاز منفی داد، نه اینکه امکان اعتبار منفی دادن کلاً برداشته شود.
2. کاربران با شرایط خاص را اجازهی اعتبار دهی داد. مثلاً کاربری که تعداد ارسالهایش از 50 رد شده است بتواند اعتبار بدهد
پاسخ:
(۱۳۹۰/۹/۱۰، ۰۲:۴۷:۴۰ صبح)Mohammad-Za نوشته است: [ -> ]فایل reputation.php را باز کنید و اولین خط زیر را بیابید:
کد php:
$plugins->run_hooks("reputation_start");
و خط زیر را به زیر آن اضافه کنید:
کد php:
if ($mybb->user['postnum'] <= "20" && $mybb->user['usergroup'] != "4")
{
error("شما تعداد ارسال کافی برای دادن اعتبار را ندارید.");
}
به جای عدد ۲۰ تعداد ارسال مورد نیاز را وارد کنید. عدد ۴ هم مروبط به گروه کاربری مدیر کل است که این محدودیت برای آنها اعمال نمیشود.
1+
فقط اینکه فایل reputation.php کجا قرا دارد؟
3. بازههای زمانی بین اعتباردهی را محدود کرد. مثلاً کاربر در هر نیم ساعت فقط یک اعتبار بتواند بدهد.
(۱۳۹۰/۹/۱۰، ۰۲:۴۷:۴۰ صبح)Mohammad-Za نوشته است: [ -> ]کاربران و گروهها --> گروهها --> گروه مورد نظر --> (تب) کاربران و دسترسیها --> سیستم اعتبارها --> بیشترین تعداد اعتبارهای مجاز در هر روز:
این یک روش است. اما درخواست این است که بهجای اعمال محدودیت در تعداد ارسالهای روزانه، محدودیت را در اعتباردهی زمانی اعمال کرد. مثلاً بین هر دو اعتبار متوالی حداقل نیم ساعت زمان لازم باشد.
میشه بگید چطور میشه مقدار اعتبار رو هم اعشاری کرد .مثلاً هربار 0.1
توی کنترل پنل قبول نکرد مگه با ویرایش فایل اصلی
(۱۳۹۰/۹/۱۰، ۱۴:۳۶:۵۶ عصر)h.d.n نوشته است: [ -> ]فقط میشود گفت: بچهها مچکریم(متشکریم)!
1. از منفی شدن اعتبار کاربر جلوگیری شود و از صفر پایینتر نرود.
پاسخ:
(۱۳۹۰/۹/۱۰، ۰۲:۴۷:۴۰ صبح)Mohammad-Za نوشته است: [ -> ]پیکربندی --> Reputation --> گزینهی Allow Negative Reputation
زوش بالا اشکالی که دارد این است که امکان امتیاز منفی دادن را برمیدارد. درخواست این است که وقتی کاربری اعتبارش صفر است یا به صفر کاهش پیدا میکند، دیگر این امکان وجود نداشته باشد که به او امتیاز منفی داد، نه اینکه امکان اعتبار منفی دادن کلاً برداشته شود.
2. کاربران با شرایط خاص را اجازهی اعتبار دهی داد. مثلاً کاربری که تعداد ارسالهایش از 50 رد شده است بتواند اعتبار بدهد
پاسخ:
(۱۳۹۰/۹/۱۰، ۰۲:۴۷:۴۰ صبح)Mohammad-Za نوشته است: [ -> ]فایل reputation.php را باز کنید و اولین خط زیر را بیابید:
کد php:
$plugins->run_hooks("reputation_start");
و خط زیر را به زیر آن اضافه کنید:
کد php:
if ($mybb->user['postnum'] <= "20" && $mybb->user['usergroup'] != "4")
{
error("شما تعداد ارسال کافی برای دادن اعتبار را ندارید.");
}
به جای عدد ۲۰ تعداد ارسال مورد نیاز را وارد کنید. عدد ۴ هم مروبط به گروه کاربری مدیر کل است که این محدودیت برای آنها اعمال نمیشود.
1+
فقط اینکه فایل reputation.php کجا قرا دارد؟
3. بازههای زمانی بین اعتباردهی را محدود کرد. مثلاً کاربر در هر نیم ساعت فقط یک اعتبار بتواند بدهد.
(۱۳۹۰/۹/۱۰، ۰۲:۴۷:۴۰ صبح)Mohammad-Za نوشته است: [ -> ]کاربران و گروهها --> گروهها --> گروه مورد نظر --> (تب) کاربران و دسترسیها --> سیستم اعتبارها --> بیشترین تعداد اعتبارهای مجاز در هر روز:
این یک روش است. اما درخواست این است که بهجای اعمال محدودیت در تعداد ارسالهای روزانه، محدودیت را در اعتباردهی زمانی اعمال کرد. مثلاق بین هر دو اعتبار متوالی حداقل نیم ساعت زمان لازم باشد.
به نظر شما بین 48 اعتبار در هر روز با 1 اعتبار در هر نیم ساعت تفاوتی وجود دارد؟!
درمورد جلوگیری از منفی شدن اعتبار هم فایل reputation.php را که در ROOT انجمن و در همان محل فایل index.php است با
Notepad++ باز کرده و خط زیر را بیابید:
کد php:
// Is this user trying to give themself a reputation?
و زیر آن این خط را اضاقه کنید:
کد php:
$queryt = $db->simple_select("users", "reputation", "uid=$uid");
while ($test = $db->fetch_array($queryt))
{
if ($test['reputation'] >= "0" && $test['reputation'] + $mybb->input['reputation'] < "0")
{
$message = "اعتبار اين کاربر با دادن اين اعتبار منفي خواهد شد و اعتبار منفي در اين انجمن امکان پذير نيست.";
eval("\$error = \"".$templates->get("reputation_add_error")."\";");
output_page($error);
exit;}
if ($test['reputation'] < "0" && $test['reputation'] + $mybb->input['reputation'] < $test['reputation'])
{
$message = "اعتبار اين کاربر با دادن اين اعتبار منفي خواهد شد و اعتبار منفي در اين انجمن امکان پذير نيست.";
eval("\$error = \"".$templates->get("reputation_add_error")."\";");
output_page($error);
exit;
}
}
و سپس فایل را ذخیره کنید. (با فرمت UTF-8 Without BOM )
Notepad ++ -> (منوهای بالا) ENCODING --> (گزینه) UTF-8 Without BOM
(۱۳۹۰/۹/۱۰، ۱۵:۳۸:۲۵ عصر)majid1605 نوشته است: [ -> ]میشه بگید چطور میشه مقدار اعتبار رو هم اعشاری کرد .مثلاً هربار 0.1
توی کنترل پنل قبول نکرد مگه با ویرایش فایل اصلی
این کار امکان پذیر است!
اما خیلی وقت گیر است و باید سیستم اعتبار دهی را متحول کرد!
@Mohammad-Za
بسیار سپاس از شما
تا اینجا بخش مهم مسئلهی دکمهی اعتبار با لطف شما حل شد. 1+
(۱۳۹۰/۹/۱۰، ۱۴:۳۶:۵۶ عصر)h.d.n نوشته است: [ -> ]درخواست این است که بهجای اعمال محدودیت در تعداد ارسالهای روزانه، محدودیت را در اعتباردهی زمانی اعمال کرد. مثلاً بین هر دو اعتبار متوالی حداقل نیم ساعت زمان لازم باشد.
(۱۳۹۰/۹/۱۰، ۱۶:۴۳:۲۶ عصر)Mohammad-Za نوشته است: [ -> ]به نظر شما بین 48 اعتبار در هر روز با 1 اعتبار در هر نیم ساعت تفاوتی وجود دارد؟!
بین 48 اعتبار در روز و امکان اعتبار در هر نیم ساعت از نظر تعداد اعتبارهای ممکن در پایان روز تفاوتی وجود ندارد، اما مگر یک کاربر در روز چه مدتی را در فروم سپری میکند؟! معمولاً بین نیم تا 2 ساعت و نبود محدودیت زمانی بین اعتبارها، به کاربر اجازه میدهد که 48 اعتبار مجاز(یا هر تعداد تعریف شدهی دیگر) را بدون وقفه در فاصلهای کوتاه استفاده کند!
(۱۳۹۰/۹/۱۱، ۰۰:۴۴:۴۵ صبح)h.d.n نوشته است: [ -> ]@Mohammad-Za
بسیار سپاس از شما
تا اینجا بخش مهم مسئلهی دکمهی اعتبار با لطف شما حل شد. 1+
(۱۳۹۰/۹/۱۰، ۱۴:۳۶:۵۶ عصر)h.d.n نوشته است: [ -> ]درخواست این است که بهجای اعمال محدودیت در تعداد ارسالهای روزانه، محدودیت را در اعتباردهی زمانی اعمال کرد. مثلاً بین هر دو اعتبار متوالی حداقل نیم ساعت زمان لازم باشد.
(۱۳۹۰/۹/۱۰، ۱۶:۴۳:۲۶ عصر)Mohammad-Za نوشته است: [ -> ]به نظر شما بین 48 اعتبار در هر روز با 1 اعتبار در هر نیم ساعت تفاوتی وجود دارد؟!
بین 48 اعتبار در روز و امکان اعتبار در هر نیم ساعت از نظر تعداد اعتبارهای ممکن در پایان روز تفاوتی وجود ندارد، اما مگر یک کاربر در روز چه مدتی را در فروم سپری میکند؟! معمولاً بین نیم تا 2 ساعت و بدون محدودیت زمانی بین اعتبارها، کاربر میتواند 48 اعتبار مجاز(یا هر تعداد تعریف شدهی دیگر) را بدون وقفه در فاصلهای کوتاه استفاده کند!
خط زیر سه بار در فایل reputation.php تکرار شده است:
کد php:
$timesearch = TIME_NOW - (60 * 60 * 24);
هر سه خط را با خط زیر جایگزین کنید:
کد php:
$timesearch = TIME_NOW - (60 * 30);
حال محدودیت تعداد اعتبار ها که X اعتبار در هر روز بود به X اعتبار در هر نیم ساعت تبدیل شد.
تنظیمات آن در بخش پنل مدیرکل همان تعداد مجاز اعتبار در هر روز است که ما آن را به نیم ساعت تغییر داده ایم.
میتوانید فایل زبان را ویرایش کرده و روز را به نیم ساعت تغییر دهید. (این قسمت برای راحتی خودتان و کاربرانتان است و میتوانید متغیرهای زبان را همان روز نگه دارید.)
فایل inc/languages/persian/reputation.lang.php را باز کرده و متن متغیر های زیر را از روز به نیم ساعت تغییر دهید:
کد php:
$l['add_maxperday'] = "شما به بیشترین حد مجاز اعتبار دادن در امروز رسیدهاید.";
کد php:
$l['add_maxperuser'] = "شما تعداد مجاز اعتبارهایی را که در یک روز میتوانید بدهید را به این کاربر دادهاید.";
سپس فایل inc/languages/admin/user_groups.lang.php را باز کرده و متن زیر را هم از روز به نیم ساعت تغییر دهید.
کد php:
$l['max_reputations_daily'] = "بیشترین تعداد اعتبارهای مجاز در هر روز: ";
نقلقول: (امروز ۰۱:۰۸:۲۵ صبح)majid1605 نوشته شده توسط: میشه بگید چطور میشه مقدار اعتبار رو هم اعشاری کرد .مثلاً هربار 0.1Big Grin
توی کنترل پنل قبول نکرد مگه با ویرایش فایل اصلی
این کار امکان پذیر است!
اما خیلی وقت گیر است و باید سیستم اعتبار دهی را متحول کرد!
فقط باید یه کاری کنیم که اعداد اعشاری رو قبول کنه توی زبانهای برنامه نویسی دیگه کار راحتیه فقط کافیه نوعش رو تغییر بدیم ولی توی php از روی مقدار متغیر نعش رو تشخیص میده.
حالا راه اسونتری برای اینکار وجود نداره ؟
متغیرش چیه ما یه کم باهاش ور بریم
کافیه از توی تنضیمات غیر فعالش کنید