ابزار سایت

سازوکار_حذف_محتوای_کاربر_در_هنگام_حذف_کاربر

تفاوت‌ها

تفاوت دو نسخهٔ متفاوت از صفحه را مشاهده می‌کنید.

پیوند به صفحه‌ی تفاوت‌ها

سازوکار_حذف_محتوای_کاربر_در_هنگام_حذف_کاربر [2019/01/15 12:45] (فعلی)
خط 1: خط 1:
 +======سازوکار حذف محتوای کاربر در هنگام حذف کاربر======
  
 +در تنظیمات کاربری بخش مدیریت، امکان حذف کاربر‌(کاربران) سامانه وجود دارد، با انتخاب گزینه حذف کاربر سازوکار رویداد لازم با نام ON_USER_UNREGISTER برای حذف تمامی محتوای ایجاد شده توسط کاربر در بخش‌های مختلف اجرا می‌شود:​
 +
 +=====سازوکار حذف محتوای کاربری=====
 +
 +نام استاندارد در نظر گرفته‌شده برای تابع حذف محتوای کاربر onDeleteUserContent است.
 +
 +برای تمامی بخش‌ها مانند اطلاعات پایه‌ای کاربر و یا افزونه‌هایی که کاربر می‌تواند در آن‌ها اطلاعاتی ​ وارد کند، می‌بایست این تابع در فایل event_handler تعریف شده و در تابع genericInit() یا init() ​ فایل event_handler مربوط به افزونه می‌بایست bind شود. ​
 +
 +فراخوانی رویداد ON_USER_UNREGISTER در تابع deleteUser در مسیر زیر انجام می‌شود.
 +
 +
 +#;;
 +<​code>​
 +ow_system_plugins\base\bol\user_service.php
 +</​code>​
 +#;;
 +
 +**نکته:​** تاکید می‌شود برای کلیه افزونه‌هایی که کاربر می‌تواند در آن‌ها داده‌ای ایجاد کند، می‌بایست رویکرد حذف محتوا در نظر گرفته شود.
 +
 +برای مثال افزونه ویدیو:
 +
 + در تابع genericInit() در فایل event_handler.php ویدیو، رویداد فوق bind شده است:
 +
 +
 +#;;
 +<code php>
 +$em->​bind(OW_EventManager::​ON_USER_UNREGISTER,​ array($this,​ '​deleteUserContent'​));​
 +</​code>​
 +#;;
 +
 +و به صورت زیر تعریف شده است:
 +
 +#;;
 +<code php>
 +
 +public function deleteUserContent( OW_Event $event )
 +{
 +    $params = $event->​getParams();​
 +    if ( !isset($params['​deleteContent'​]) || !(bool) $params['​deleteContent'​] )
 +    {
 +        return;
 +    }
 +    $userId = (int) $params['​userId'​];​
 +    if ( $userId > 0 )
 +    {
 +        VIDEO_BOL_ClipService::​getInstance()->​deleteUserClips($userId);​
 +    }
 +}
 +
 +</​code>​
 +#;;
سازوکار_حذف_محتوای_کاربر_در_هنگام_حذف_کاربر.txt · آخرین ویرایش: 2019/01/15 12:45