تغییر نقش کاربر بعد از انقضای ثبت‌نام دستی در درس

در پاسخ به: تغییر نقش کاربر بعد از انقضای ثبت‌نام دستی در درس

از sama rabbani در
Number of replies: 1

ممنون از راهنماییتون،

اما به روش دیگه ای میخوام این کار رو بکنم، تو کد اصلی میخوام به جای اینکه کاربر غیر فعال بشه و از درس حذف بشه، نقش کاربر تغییر کند. ولی نمیدونم چطوری این کد را تغییر بدم.

در فایل  enrol\manual\lib.php

در کد زیر چطور باید این کار رو بکنم

 if ($action == ENROL_EXT_REMOVED_SUSPENDNOROLES) {
                    // Remove all manually assigned roles here, this may break enrol_self roles but we do not want hardcoded hacks here.
                    role_unassign_all(array('userid'=>$ue->userid,'contextid'=>$ue->contextid, 'component'=>'', 'itemid'=>0), true);
                    $this->update_user_enrol($instance, $ue->userid, ENROL_USER_SUSPENDED);
                    $trace->output("suspending expired user $ue->userid in course $instance->courseid, roles unassigned", 1);
                } 

ممنون میشم کمکم کنین.


In reply to sama rabbani

در پاسخ به: تغییر نقش کاربر بعد از انقضای ثبت‌نام دستی در درس

از Moien Abadi در
سلام

راستش به شخصه به هیچ وجه توصیه نمی کنم که در کد اصلی مودل دست ببرید چون در این صورت:

  • اولا باید یک رشته تغییرات وابسته نه در این قسمت که را در جاهای دیگر هم باید اعمال کنید. چون تغییر نقش هم سیستم خودش را دارد و داستان فقط به همین جا هم ختم نمیشه،  وابستگی های دیتابیسی هم هست.
  • دوما اگر بعدتر خواستید از امکان استاندارد مودل برای بحث ثبت نام استفاده کنید آن وقت دیگر این قسمت کار نمی کند.
  • سوما دیگر نمی توانید به این سادگی مودل خود را به روز نگه دارید و هر دفعه نسخه جدیدی که ارائه شود (چه بابت رفع باگ ها و چه امکانات جدید) آنگاه شما باید دوباره کل کدهای اعمال شده را بر روی نسخه جدید که ممکن است تغییراتی حتی در توابع اش هم داشته باشد اعمال کنید.

پیشنهاد من این است که با کمک و ایده نوشته شده در  «پلاگین ثبت نام دستی» یک پلاگین مشابه بنویسید ولی با خصوصیاتی که میخواهید، و بعد آن را روی مودل تان نصب کنید.

شاید این لینک‌ها را هم دیده باشید که ممکن است کمک کننده باشد: