2.2 KiB
The Chamilo Zoom plugin class itself is defined in plugin/zoom/lib/ZoomPlugin.php
It manipulates both remote Zoom server objects and local database entities:
Local database entities
The local entities map the remote objects to Chamilo courses/sessions and users.
They also maintain a cache of the matching remote objects.
Entity/*Entity.php are the local database entity classes.
Doctrine entity manager repository classes are in lib/*EntityRepository.php.
Remote Zoom server objets
lib/API/*.php contains the Zoom API data structure definition classes, based on Zoom's own API specification:
- https://marketplace.zoom.us/docs/api-reference/zoom-api
- https://marketplace.zoom.us/docs/api-reference/zoom-api/Zoom%20API.oas2.json
These classes provide methods to list, create, update and delete the remote objects.
JWT Client
API class methods use a JWT client implemented in lib/API/JWTClient.php.
The plugin constructor initializes the JWT Client, giving it required API key and secret.
Event notification handler
endpoint.php is the Zoom API event notification web hook end point.
It handles notifications sent by Zoom servers on useful events :
- meeting start and end,
- registrant join and leave,
- recordings created and deleted
Administrative interface
admin.php is the administrative interface. It lists all meetings and recordings.
Course tool
start.php is the course tool target:
- to the course teacher, it shows a course meeting management interface;
- to the course learners, it shows the list of scheduled course meetings.
Home page's profile block (also on "My Courses" page)
This plugin can add 3 kinds of links to "profile block" :
- join_meeting.php?meetingId=… links to upcoming meetings accessible to the current user. join_meeting.php presents the meeting and shows a link to enter the meeting.
- user.php is the user's own meeting management interface.
- global.php directs the user to join_meeting.php with the global meeting.
Meeting management page
admin.php, start.php and user.php link to meeting.php.
meeting.php is the meeting management page, where one can manage
- the meeting properties,
- the list of its registrants and
- its recordings.