Statusbeheer
Chamilo gebruikt twee bibliotheken voor staatbeheer naast elkaar:
Pinia — de huidige standaard voor alle nieuwe stores. Het merendeel van de codebase gebruikt Pinia.
Vuex — verouderde store, nog steeds aanwezig en gebruikt door oudere weergaven. Nieuwe code moet Pinia gebruiken.
Pinia Stores
De Pinia stores bevinden zich direct in assets/vue/store/:
securityStore.js
useSecurityStore
Geauthenticeerde gebruiker, inloggen/uitloggen, sessiecontrole
cidReq.js
useCidReqStore
Huidige cursus/sessiecontext (cursus-ID, sessie-ID)
courseSettingStore.js
useCourseSettings
Cache voor cursusniveau-instellingen
enrolledStore.js
useEnrolledStore
Gegevens over inschrijvingen van gebruikers
platformConfig.js
usePlatformConfig
Platformconfiguratie, plugins, thema, OAuth2-providers
messageRelUserStore.js
useMessageRelUserStore
Berichtenstatus
socialStore.js
useSocialStore
Status van sociale netwerken
Beveiligingsstore
const securityStore = useSecurityStore()
// Controleren of de gebruiker is ingelogd
if (securityStore.isAuthenticated) { ... }
// Toegang tot het huidige gebruikersobject
const user = securityStore.userCID Verzoekstore
Volgt de huidige cursus/sessiecontext — vereist voor elke cursusgebonden API-operatie:
Cursusinstellingenstore
Slaat cursusniveau-instellingen op in de cache om herhaalde API-aanroepen te vermijden:
Platformconfiguratiestore
Bevat platformbrede configuratie opgehaald van /platform-config/list:
Vuex Store (Verouderd)
De Vuex store is gedefinieerd in assets/vue/store/index.js en bevat:
modules/crud.js
Fabriek (makeCrudModule) die een volledige CRUD Vuex-module genereert voor een bepaalde service — gebruikt door oudere lijst/aanmaken/bijwerken weergaven
modules/notifications.js
Status van toastmeldingen (weergeven, kleur, tekst, time-out)
modules/ux.js
UX-status (bericht over verboden toegang)
security.js
Verouderde Vuex-beveiligingsmodule (vervangen door securityStore.js)
Vermijd het toevoegen van nieuwe Vuex-modules. Gebruik Pinia voor nieuwe statussen.
Composables
Naast stores bevat assets/vue/composables/ gedeelde compositiefuncties. Opmerkelijke voorbeelden:
useFileManager.js
Bestandsbrowserstatus en -operaties
useTopbarLoggedIn.js / useTopbarNotLoggedIn.js
Bedrading van het bovenbalkmenu
useTopbarTour.js
Begeleide tour voor de bovenbalk
useDocumentCreate.js / useDocumentUpdate.js / useDocumentTemplates.js
Hulpmiddelen voor documenttools
useCertificateTags.js
Hulpmiddelen voor certificaat-sjabloontags
sidebarMenu.js
Navigatieboom voor zijbalk
theme.js
Laden en wisselen van thema
pluginRegion.js
Rendering van door plugins geïnjecteerde UI-regio's
userPermissions.js
Controle van rechten voor de huidige gebruiker
notification.js
Hulpmiddelen voor pushmeldingen
locale.js
Detectie en wisseling van taalinstellingen
datatableList.js / datatableCreate.js / datatableUpdate.js
Herbruikbare CRUD-patronen voor datatabellen
useSocialInfo.js / useSocialMenuItems.js
Hulpmiddelen voor sociale netwerken
usePushSubscription.js
Beheer van Web Push-abonnementen
upload.js
Hulpmiddelen voor bestandsuploads
useConfirmation.js
Hulpmiddel voor bevestigingsdialoog
Composables zijn ook georganiseerd in functie-submappen (course/, session/, document/, calendar/, admin/, auth/, message/, skill/, enz.). De volledige lijst bevindt zich in assets/vue/composables/.
Laatst bijgewerkt
Was dit nuttig?