Zustandsverwaltung
Chamilo verwendet zwei Zustandsverwaltungsbibliotheken nebeneinander:
Pinia — der aktuelle Standard für alle neuen Stores. Der Großteil des Codes verwendet Pinia.
Vuex — veralteter Store, der noch vorhanden ist und von älteren Ansichten genutzt wird. Neuer Code sollte Pinia verwenden.
Pinia Stores
Die Pinia Stores befinden sich direkt in assets/vue/store/:
securityStore.js
useSecurityStore
Authentifizierter Benutzer, Login/Logout, Sitzungsprüfung
cidReq.js
useCidReqStore
Aktueller Kurs-/Sitzungskontext (Kurs-ID, Sitzungs-ID)
courseSettingStore.js
useCourseSettings
Cache für Kurseinstellungen
enrolledStore.js
useEnrolledStore
Daten zur Benutzeranmeldung
platformConfig.js
usePlatformConfig
Plattformkonfiguration, Plugins, Theme, OAuth2-Anbieter
messageRelUserStore.js
useMessageRelUserStore
Zustand für Nachrichten
socialStore.js
useSocialStore
Zustand für soziale Netzwerke
Security Store
const securityStore = useSecurityStore()
// Prüfen, ob der Benutzer eingeloggt ist
if (securityStore.isAuthenticated) { ... }
// Zugriff auf das aktuelle Benutzerobjekt
const user = securityStore.userCID Request Store
Verfolgt den aktuellen Kurs-/Sitzungskontext — erforderlich für jede kursbezogene API-Operation:
Course Settings Store
Speichert Kurseinstellungen im Cache, um wiederholte API-Aufrufe zu vermeiden:
Platform Config Store
Enthält plattformweite Konfigurationen, die von /platform-config/list abgerufen werden:
Vuex Store (Veraltet)
Der Vuex Store ist in assets/vue/store/index.js definiert und enthält:
modules/crud.js
Factory (makeCrudModule), die ein vollständiges CRUD-Vuex-Modul für einen gegebenen Dienst generiert — wird von älteren Listen-/Erstellungs-/Aktualisierungsansichten verwendet
modules/notifications.js
Zustand für Toast-Benachrichtigungen (Anzeige, Farbe, Text, Timeout)
modules/ux.js
UX-Zustand (Nachricht bei verbotenem Zugriff)
security.js
Veraltetes Vuex-Sicherheitsmodul (ersetzt durch securityStore.js)
Vermeiden Sie das Hinzufügen neuer Vuex-Module. Verwenden Sie Pinia für jeden neuen Zustand.
Composables
Zusätzlich zu den Stores enthält assets/vue/composables/ gemeinsame Kompositionsfunktionen. Bemerkenswerte Beispiele:
useFileManager.js
Zustand und Operationen des Dateibrowsers
useTopbarLoggedIn.js / useTopbarNotLoggedIn.js
Verkabelung des oberen Menüs
useTopbarTour.js
Geführte Tour für die obere Leiste
useDocumentCreate.js / useDocumentUpdate.js / useDocumentTemplates.js
Hilfsfunktionen für das Dokumenten-Tool
useCertificateTags.js
Hilfsfunktionen für Zertifikatvorlagen-Tags
sidebarMenu.js
Navigationsbaum der Seitenleiste
theme.js
Laden und Wechseln von Themes
pluginRegion.js
Rendern von UI-Regionen, die von Plugins eingefügt wurden
userPermissions.js
Berechtigungsprüfungen für den aktuellen Benutzer
notification.js
Hilfsfunktionen für Push-Benachrichtigungen
locale.js
Erkennung und Wechsel der Sprache
datatableList.js / datatableCreate.js / datatableUpdate.js
Wiederverwendbare CRUD-Muster für Datentabellen
useSocialInfo.js / useSocialMenuItems.js
Hilfsfunktionen für soziale Netzwerke
usePushSubscription.js
Verwaltung von Web-Push-Abonnements
upload.js
Hilfsfunktionen für Datei-Uploads
useConfirmation.js
Hilfsfunktion für Bestätigungsdialoge
Composables sind auch in Funktionsunterverzeichnisse organisiert (course/, session/, document/, calendar/, admin/, auth/, message/, skill/ usw.). Die vollständige Liste befindet sich in assets/vue/composables/.
Zuletzt aktualisiert
War das hilfreich?