Address Moodle Marketplace review for mod_meetletacbfree 1.1.3.

Migrate legacy ajax/JS to external services and AMD, enable TLS verification, scope admin CSS with RTLCSS-safe rules, and fix README/lang/boilerplate gaps.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-20 12:41:47 +03:30
parent 91334a46b5
commit be252e49e2
33 changed files with 1281 additions and 1023 deletions
+9
View File
@@ -176,6 +176,9 @@ $string['testsso'] = 'Single sign-on (SSO)';
$string['testsso_adminok'] = 'Admin SSO succeeded';
$string['testsso_userok'] = 'Test-user SSO succeeded';
$string['testsso_userwarn'] = 'Test-user SSO warned (admin SSO infrastructure is healthy)';
$string['testsso_direct_ok'] = 'Admin SSO from Moodle server succeeded';
$string['testsso_direct_fail'] = 'Direct HTTP SSO from Moodle failed — {$a}';
$string['testmeeting'] = 'Create and remove test meeting';
$string['tabinfo'] = 'Overview';
$string['tabdetails'] = 'Session details';
@@ -334,6 +337,7 @@ $string['emptytab'] = 'Nothing to show';
$string['cachedef_folders'] = 'Adobe Connect folder sco-ids';
$string['cachedef_meetinginfo'] = 'Adobe Connect meeting info';
$string['cachedef_templates'] = 'Adobe Connect meeting templates';
$string['cachedef_license_webhook_nonces'] = 'MeetLet license webhook nonce cache';
$string['tasksync'] = 'Sync MeetLet recordings';
$string['brand'] = 'MeetLet';
$string['subtitle'] = 'Adobe Connect';
@@ -352,6 +356,10 @@ $string['enable_contenttab_desc'] = 'Master switch for the content tab. Roles st
$string['allow_override_contenttab'] = 'Allow per-activity content tab setting';
$string['allow_override_contenttab_desc'] = 'Teachers may enable/disable the content tab for each activity.';
$string['showrecordingstab'] = 'Show recordings tab';
$string['offlinesettings'] = 'Offline session video';
$string['autooffline'] = 'Automatically create offline video after the Adobe Connect class ends';
$string['autooffline_help'] = 'When this class’s Adobe Connect room had people in it and then becomes empty, recordings are sent for MP4 creation. This is independent of the optional Moodle end time (which only blocks joining).';
$string['showzip_help'] = 'When ZIP links are enabled in site settings, use this to turn the ZIP link on or off for this activity only.';
$string['showcontenttab'] = 'Show content tab';
$string['activityfeatures'] = 'Links and tabs visibility';
$string['featuredisabled'] = 'This section has been disabled by the site administrator.';
@@ -551,6 +559,7 @@ $string['registration_err_misconfigured'] = 'Activation request misconfigured.';
$string['registration_err_bad_signature'] = 'Invalid authorization signature from MeetLet.';
$string['registration_err_network'] = 'Could not reach the MeetLet activation server.';
$string['registration_err_unknown'] = 'An unknown activation error occurred.';
$string['registration_api_error'] = 'MeetLet activation API error: {$a}';
$string['registration_crypto_error'] = 'Activation cryptography error.';
$string['registration_sodium_required'] = 'PHP sodium extension is required for plugin activation.';
$string['task_registration_heartbeat'] = 'MeetLet plugin activation heartbeat';
+9
View File
@@ -176,6 +176,9 @@ $string['testsso'] = 'ورود یکپارچه (SSO)';
$string['testsso_adminok'] = 'SSO مدیر موفق بود';
$string['testsso_userok'] = 'SSO کاربر آزمایشی موفق بود';
$string['testsso_userwarn'] = 'SSO کاربر آزمایشی هشدار داد (زیرساخت SSO مدیر سالم است)';
$string['testsso_direct_ok'] = 'SSO مدیر از سرور مودل موفق بود';
$string['testsso_direct_fail'] = 'SSO مستقیم HTTP از مودل ناموفق بود — {$a}';
$string['testmeeting'] = 'ایجاد و حذف جلسه آزمایشی';
$string['tabinfo'] = 'نمای کلی';
$string['tabdetails'] = 'توضیحات جلسه';
@@ -336,6 +339,7 @@ $string['emptytab'] = 'موردی برای نمایش نیست';
$string['cachedef_folders'] = 'شناسه پوشه‌های Adobe Connect';
$string['cachedef_meetinginfo'] = 'اطلاعات جلسه Adobe Connect';
$string['cachedef_templates'] = 'قالب‌های جلسه Adobe Connect';
$string['cachedef_license_webhook_nonces'] = 'کش nonce وب‌هوک لایسنس MeetLet';
$string['tasksync'] = 'همگام‌سازی ضبط‌های MeetLet';
$string['brand'] = 'MeetLet';
$string['subtitle'] = 'Adobe Connect';
@@ -354,6 +358,10 @@ $string['enable_contenttab_desc'] = 'کلید اصلی تب محتوا. نقش
$string['allow_override_contenttab'] = 'اجازه تنظیم تب محتوا در هر فعالیت';
$string['allow_override_contenttab_desc'] = 'مدرس بتواند برای هر جلسه نمایش تب محتوا را جداگانه کنترل کند.';
$string['showrecordingstab'] = 'نمایش تب ضبط‌ها';
$string['offlinesettings'] = 'ویدیوی آفلاین جلسه';
$string['autooffline'] = 'ساخت خودکار ویدیوی آفلاین پس از پایان کلاس Adobe Connect';
$string['autooffline_help'] = 'وقتی اتاق Adobe Connect این کلاس خالی شود (پس از حضور شرکت‌کنندگان)، ضبط‌ها برای ساخت MP4 ارسال می‌شوند. این مستقل از زمان پایان اختیاری در مودل است.';
$string['showzip_help'] = 'اگر لینک ZIP در تنظیمات سایت فعال باشد، با این گزینه می‌توانید لینک ZIP را فقط برای این فعالیت روشن یا خاموش کنید.';
$string['showcontenttab'] = 'نمایش تب محتوا';
$string['activityfeatures'] = 'نمایش لینک‌ها و تب‌ها';
$string['featuredisabled'] = 'این بخش توسط مدیر سایت غیرفعال شده است.';
@@ -553,6 +561,7 @@ $string['registration_err_misconfigured'] = 'درخواست فعال‌سازی
$string['registration_err_bad_signature'] = 'امضای مجوز از MeetLet نامعتبر است.';
$string['registration_err_network'] = 'اتصال به سرور فعال‌سازی MeetLet برقرار نشد.';
$string['registration_err_unknown'] = 'خطای ناشناخته در فعال‌سازی رخ داد.';
$string['registration_api_error'] = 'خطای API فعال‌سازی MeetLet: {$a}';
$string['registration_crypto_error'] = 'خطای رمزنگاری فعال‌سازی.';
$string['registration_sodium_required'] = 'افزونه sodium در PHP برای فعال‌سازی پلاگین لازم است.';
$string['task_registration_heartbeat'] = 'بررسی روزانه فعال‌سازی پلاگین MeetLet';