mirror of
https://github.com/mediacms-io/mediacms.git
synced 2026-03-09 06:27:21 -04:00
foo
This commit is contained in:
@@ -201,11 +201,11 @@ class MediaPublishForm(forms.ModelForm):
|
||||
|
||||
# Check query parameter
|
||||
mode = self.request.GET.get('mode', '')
|
||||
if mode == 'embed_mode':
|
||||
if mode == 'lms_embed_mode':
|
||||
return True
|
||||
|
||||
# Check session storage
|
||||
if self.request.session.get('media_cms_embed_mode') == 'true':
|
||||
if self.request.session.get('lms_embed_mode') == 'true':
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
@@ -3,17 +3,17 @@ export function inEmbeddedApp() {
|
||||
const params = new URL(globalThis.location.href).searchParams;
|
||||
const mode = params.get('mode');
|
||||
|
||||
if (mode === 'embed_mode') {
|
||||
sessionStorage.setItem('media_cms_embed_mode', 'true');
|
||||
if (mode === 'lms_embed_mode') {
|
||||
sessionStorage.setItem('lms_embed_mode', 'true');
|
||||
return true;
|
||||
}
|
||||
|
||||
if (mode === 'standard') {
|
||||
sessionStorage.removeItem('media_cms_embed_mode');
|
||||
sessionStorage.removeItem('lms_embed_mode');
|
||||
return false;
|
||||
}
|
||||
|
||||
return sessionStorage.getItem('media_cms_embed_mode') === 'true';
|
||||
return sessionStorage.getItem('lms_embed_mode') === 'true';
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -9,33 +9,37 @@ function xmldb_filter_mediacms_install() {
|
||||
global $CFG, $DB;
|
||||
require_once($CFG->libdir . '/filterlib.php');
|
||||
|
||||
// 1. Enable the filter globally.
|
||||
// Enable the filter globally.
|
||||
filter_set_global_state('filter_mediacms', TEXTFILTER_ON);
|
||||
|
||||
// 2. Move to top priority (lowest sortorder).
|
||||
// Get all global active filters.
|
||||
$filters = $DB->get_records('filter_active', ['contextid' => SYSCONTEXTID], 'sortorder ASC', 'filter, id, sortorder');
|
||||
|
||||
// If we are already the only one or something failed, stop.
|
||||
// Move to top priority (lowest sortorder).
|
||||
$syscontextid = context_system::instance()->id;
|
||||
$filters = $DB->get_records('filter_active', ['contextid' => $syscontextid], 'sortorder ASC');
|
||||
|
||||
if (empty($filters)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Prepare the new order: mediacms first, then everyone else (excluding mediacms if present).
|
||||
$sortedfilters = ['filter_mediacms'];
|
||||
foreach ($filters as $filtername => $record) {
|
||||
if ($filtername !== 'filter_mediacms') {
|
||||
$sortedfilters[] = $filtername;
|
||||
// Separate mediacms from other filters by inspecting the record property,
|
||||
// not the array key (get_records indexes by id, not by filter name).
|
||||
$mediacmsrecord = null;
|
||||
$otherrecords = [];
|
||||
foreach ($filters as $record) {
|
||||
if ($record->filter === 'filter_mediacms') {
|
||||
$mediacmsrecord = $record;
|
||||
} else {
|
||||
$otherrecords[] = $record;
|
||||
}
|
||||
}
|
||||
|
||||
// Write back the new sort orders.
|
||||
// Reassign sortorders: mediacms first, then everyone else.
|
||||
$sortorder = 1;
|
||||
foreach ($sortedfilters as $filtername) {
|
||||
if ($record = $DB->get_record('filter_active', ['filter' => $filtername, 'contextid' => SYSCONTEXTID])) {
|
||||
$record->sortorder = $sortorder;
|
||||
$DB->update_record('filter_active', $record);
|
||||
$sortorder++;
|
||||
}
|
||||
if ($mediacmsrecord) {
|
||||
$mediacmsrecord->sortorder = $sortorder++;
|
||||
$DB->update_record('filter_active', $mediacmsrecord);
|
||||
}
|
||||
foreach ($otherrecords as $record) {
|
||||
$record->sortorder = $sortorder++;
|
||||
$DB->update_record('filter_active', $record);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ class SelectMediaView(View):
|
||||
|
||||
def get(self, request):
|
||||
"""Display media selection interface - redirects to user's profile page"""
|
||||
profile_url = f"/user/{request.user.username}?mode=embed_mode&action=select_media"
|
||||
profile_url = f"/user/{request.user.username}?mode=lms_embed_mode&action=select_media"
|
||||
return HttpResponseRedirect(profile_url)
|
||||
|
||||
@method_decorator(csrf_exempt)
|
||||
|
||||
@@ -234,7 +234,7 @@ class LaunchView(View):
|
||||
# Check if base_url already has query parameters
|
||||
separator = '&' if '?' in base_url else '?'
|
||||
|
||||
query_parts = ['mode=embed_mode']
|
||||
query_parts = ['mode=lms_embed_mode']
|
||||
query_parts.extend(embed_params)
|
||||
|
||||
return f"{base_url}{separator}{'&'.join(query_parts)}"
|
||||
@@ -429,7 +429,7 @@ class LaunchView(View):
|
||||
except Media.DoesNotExist:
|
||||
pass
|
||||
|
||||
return reverse('lti:my_media') + '?mode=embed_mode'
|
||||
return reverse('lti:my_media') + '?mode=lms_embed_mode'
|
||||
|
||||
def handle_state_not_found(self, request, platform=None):
|
||||
"""
|
||||
@@ -582,7 +582,7 @@ class LaunchView(View):
|
||||
base_url = reverse('lti:embed_media', args=[media_token])
|
||||
redirect_url = self.build_url_with_embed_params(base_url, embed_params)
|
||||
else:
|
||||
redirect_url = reverse('lti:select_media') + '?mode=embed_mode'
|
||||
redirect_url = reverse('lti:select_media') + '?mode=lms_embed_mode'
|
||||
|
||||
# Use HTML meta refresh to ensure session cookie is preserved in cross-site contexts
|
||||
html_content = f"""
|
||||
@@ -657,7 +657,7 @@ class MyMediaLTIView(View):
|
||||
if not lti_session:
|
||||
return JsonResponse({'error': 'Not authenticated via LTI'}, status=403)
|
||||
|
||||
profile_url = f"/user/{request.user.username}?mode=embed_mode"
|
||||
profile_url = f"/user/{request.user.username}?mode=lms_embed_mode"
|
||||
return HttpResponseRedirect(profile_url)
|
||||
|
||||
|
||||
|
||||
@@ -229,10 +229,10 @@
|
||||
try {
|
||||
const params = new URLSearchParams(window.location.search);
|
||||
const mode = params.get('mode');
|
||||
if (mode === 'embed_mode') {
|
||||
if (mode === 'lms_embed_mode') {
|
||||
return true;
|
||||
}
|
||||
return sessionStorage.getItem('media_cms_embed_mode') === 'true';
|
||||
return sessionStorage.getItem('lms_embed_mode') === 'true';
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user