Rename marketplace plugin to meetletacbfree (mdl_modules.name limit + CI table prefixes)

This commit is contained in:
2026-09-01 23:24:11 +03:30
parent 555cd725f7
commit d987994ded
77 changed files with 1497 additions and 1322 deletions
+31 -31
View File
@@ -17,24 +17,24 @@
/**
* Ajax: load tab HTML/data.
*
* @package mod_meetletacbmarketplace
* @package mod_meetletacbfree
* @copyright 2026 MeetLet
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace mod_meetletacbmarketplace\external;
namespace mod_meetletacbfree\external;
use core_external\external_api;
use core_external\external_function_parameters;
use core_external\external_single_structure;
use core_external\external_value;
use mod_meetletacbmarketplace\api\service;
use mod_meetletacbmarketplace\local\config;
use mod_meetletacbmarketplace\local\content;
use mod_meetletacbmarketplace\local\featureaccess;
use mod_meetletacbmarketplace\local\icons;
use mod_meetletacbmarketplace\local\instance;
use mod_meetletacbmarketplace\local\recordings;
use mod_meetletacbfree\api\service;
use mod_meetletacbfree\local\config;
use mod_meetletacbfree\local\content;
use mod_meetletacbfree\local\featureaccess;
use mod_meetletacbfree\local\icons;
use mod_meetletacbfree\local\instance;
use mod_meetletacbfree\local\recordings;
use moodle_exception;
defined('MOODLE_INTERNAL') || die();
@@ -60,16 +60,16 @@ class get_tab extends external_api {
'groupid' => $groupid,
]);
\mod_meetletacbmarketplace\registration\manager::require_registered();
\mod_meetletacbfree\registration\manager::require_registered();
$inst = instance::get_from_cmid($params['cmid'], $params['groupid']);
self::validate_context($inst->context);
require_capability('mod/meetletacbmarketplace:view', $inst->context);
require_capability('mod/meetletacbfree:view', $inst->context);
$PAGE->set_context($inst->context);
if (!config::is_configured()) {
return [
'html' => \html_writer::div(get_string('notconfigured', 'meetletacbmarketplace'), 'meetlet-alert'),
'html' => \html_writer::div(get_string('notconfigured', 'meetletacbfree'), 'meetlet-alert'),
'tab' => $params['tab'],
];
}
@@ -78,11 +78,11 @@ class get_tab extends external_api {
switch ($params['tab']) {
case 'details':
// Served locally in the activity page; keep endpoint defensive.
$html = \html_writer::div(get_string('emptydetails', 'meetletacbmarketplace'), 'meetlet-empty');
$html = \html_writer::div(get_string('emptydetails', 'meetletacbfree'), 'meetlet-empty');
break;
case 'info':
// Legacy tab id — no Adobe call.
$html = \html_writer::div(get_string('emptydetails', 'meetletacbmarketplace'), 'meetlet-empty');
$html = \html_writer::div(get_string('emptydetails', 'meetletacbfree'), 'meetlet-empty');
break;
case 'recordings':
featureaccess::require_feature(featureaccess::RECORDINGS, $inst->context, $inst->record);
@@ -93,7 +93,7 @@ class get_tab extends external_api {
$html = self::render_content($inst);
break;
default:
throw new moodle_exception('error', 'meetletacbmarketplace');
throw new moodle_exception('error', 'meetletacbfree');
}
return ['html' => $html, 'tab' => $params['tab']];
@@ -110,7 +110,7 @@ class get_tab extends external_api {
* Toolbar with refresh for cacheable Adobe tabs.
*/
protected static function wrap_refreshable(string $html, string $tab, bool $pending = false): string {
$refreshlabel = get_string('refreshtab', 'meetletacbmarketplace');
$refreshlabel = get_string('refreshtab', 'meetletacbfree');
$refreshcontent = icons::svg('refresh')
. \html_writer::span($refreshlabel, 'meetlet-btn-with-icon__label');
$bits = [
@@ -125,7 +125,7 @@ class get_tab extends external_api {
];
if ($pending) {
$bits[] = \html_writer::div(
\html_writer::span(get_string('jobpollwait', 'meetletacbmarketplace'), 'meetlet-jobpoll__label') .
\html_writer::span(get_string('jobpollwait', 'meetletacbfree'), 'meetlet-jobpoll__label') .
\html_writer::div(\html_writer::div('', 'meetlet-jobpoll__bar'), 'meetlet-jobpoll__track'),
'meetlet-jobpoll',
['aria-live' => 'polite']
@@ -206,7 +206,7 @@ class get_tab extends external_api {
$rows = recordings::for_tab($inst);
if (empty($rows)) {
return self::wrap_refreshable(
\html_writer::div(get_string('norecordings', 'meetletacbmarketplace'), 'meetlet-empty'),
\html_writer::div(get_string('norecordings', 'meetletacbfree'), 'meetlet-empty'),
'recordings'
);
}
@@ -215,21 +215,21 @@ class get_tab extends external_api {
$table = new \html_table();
$table->attributes['class'] = 'generaltable meetlet-table meetlet-table--recordings';
$table->head = [
get_string('recordingname', 'meetletacbmarketplace'),
get_string('recordingdate', 'meetletacbmarketplace'),
get_string('duration', 'meetletacbmarketplace'),
get_string('sessiondetails', 'meetletacbmarketplace'),
get_string('recordingname', 'meetletacbfree'),
get_string('recordingdate', 'meetletacbfree'),
get_string('duration', 'meetletacbfree'),
get_string('sessiondetails', 'meetletacbfree'),
];
foreach ($rows as $r) {
$actions = [];
$actions[] = self::icon_action('play', get_string('play', 'meetletacbmarketplace'), [
$actions[] = self::icon_action('play', get_string('play', 'meetletacbfree'), [
'class' => 'meetlet-iconbtn--play',
'data-action' => 'launch-recording',
'data-mode' => 'play',
'data-recording' => $r->recordingscoid,
]);
if ($canadobeedit && !empty($r->urlpath)) {
$actions[] = self::icon_action('adobeedit', get_string('adobeeditor', 'meetletacbmarketplace'), [
$actions[] = self::icon_action('adobeedit', get_string('adobeeditor', 'meetletacbfree'), [
'class' => 'meetlet-iconbtn--adobeedit',
'data-action' => 'launch-recording',
'data-mode' => 'edit',
@@ -257,7 +257,7 @@ class get_tab extends external_api {
if (!$canedit) {
return \html_writer::div($text, 'meetlet-recname');
}
$pencil = self::icon_action('edit', get_string('editrecording', 'meetletacbmarketplace'), [
$pencil = self::icon_action('edit', get_string('editrecording', 'meetletacbfree'), [
'class' => 'meetlet-iconbtn--edit meetlet-iconbtn--inline',
'data-action' => 'inline-rename',
]);
@@ -283,7 +283,7 @@ class get_tab extends external_api {
$service->logout();
if (empty($items)) {
return self::wrap_refreshable(
\html_writer::div(get_string('nocontent', 'meetletacbmarketplace'), 'meetlet-empty'),
\html_writer::div(get_string('nocontent', 'meetletacbfree'), 'meetlet-empty'),
'content'
);
}
@@ -291,10 +291,10 @@ class get_tab extends external_api {
$table->attributes['class'] = 'generaltable meetlet-table meetlet-table--content';
$table->head = [
get_string('name'),
get_string('contenttype', 'meetletacbmarketplace'),
get_string('contentsize', 'meetletacbmarketplace'),
get_string('contentdate', 'meetletacbmarketplace'),
get_string('sessiondetails', 'meetletacbmarketplace'),
get_string('contenttype', 'meetletacbfree'),
get_string('contentsize', 'meetletacbfree'),
get_string('contentdate', 'meetletacbfree'),
get_string('sessiondetails', 'meetletacbfree'),
];
foreach ($items as $item) {
$scoid = (int)($item->scoid ?? 0);
@@ -307,7 +307,7 @@ class get_tab extends external_api {
];
if ($scoid > 0 && !empty($item->name)) {
$dlurl = content::download_url((int)$USER->id, (int)$inst->cm->id, $scoid)->out(false);
$actions[] = self::icon_action('download', get_string('downloadcontent', 'meetletacbmarketplace'), [
$actions[] = self::icon_action('download', get_string('downloadcontent', 'meetletacbfree'), [
'href' => $dlurl,
'class' => 'meetlet-iconbtn--download',
'target' => '_self',