Views and Routing
Chamilo has a large set of Vue views (page-level components) connected via Vue Router. The actual files live under assets/vue/views/.
Router Architecture
The router is defined in assets/vue/router/index.js using createWebHistory for clean URLs.
Routes are modular — organized into per-feature route files imported into the main router:
admin
Administration panel pages
sessionAdmin
Session administration pages
course
Course list, creation, home, catalog
account
User profile and settings
personalfile
Personal file space
message
Messaging / inbox
user
User management pages
usergroup
User group (class) pages
userreluser
User relationship (friend/follow) pages
ccalendarevent
Course calendar and agenda
ctoolintro
Course tool introduction pages
page
Static CMS pages
pageLayout
Page layout wrappers
publicPage
Publicly accessible pages
social
Social network pages
filemanager
File manager (course documents browser)
skill
Skills and competencies pages
accessurl
Multi-URL (portal) management pages
branch
Branch / network campus pages
room
Virtual room pages
buycourses
Course purchase pages
documents
Document management
assignments
Assignment workflow
links
External links management
glossary
Glossary management
attendance
Attendance tracking
lp
Learning path player and editor
dropbox
Dropbox / file exchange
blog
Blog pages
blogAdmin
Blog administration
coursemaintenance
Course backup and restore
catalogue
Course and session catalogs
Key Routes
/
AppIndex.vue (or custom)
Application entry point
/home
pages/Home.vue
Platform home page
/login
pages/Login.vue
Login page
/courses
views/user/courses/List.vue
User's enrolled courses
/sessions
views/user/sessions/SessionsCurrent.vue
Current sessions
/sessions/past
views/user/sessions/SessionsPast.vue
Past sessions
/sessions/upcoming
views/user/sessions/SessionsUpcoming.vue
Upcoming sessions
/course/:id/home
views/course/CourseHome.vue
Course homepage
/account/home
views/account/Home.vue
User profile
/admin
Admin views
Administration panel
/faq
pages/Faq.vue
FAQ page
Route Guards
The router uses navigation guards (declared with beforeEach and afterEach) to:
Check authentication status via
useSecurityStoreand redirect unauthenticated users to/loginVerify course context via
useCidReqStoreApply page-type CSS classes during SPA navigation (replacing what Twig's
PageHelperwould do on a full page load)Support custom Vue template overrides — the entry component at
/is swapped for a customAppIndex.vuewhen a custom Vue template is enabled (var/vue_templates/pages/AppIndex.vue)
View Organization
Views are in assets/vue/views/, organized by feature:
Last updated
Was this helpful?