Moodle APIs 4.1
Moodle 4.1.9+ (Build: 20240402)
|
Directories | |
directory | analytics |
| |
directory | backup |
| |
directory | bigbluebutton |
| |
Files | |
file | access.php |
Capabilities for BigBlueButton. | |
file | activity.php |
Search area for mod_bigbluebuttonbn activities. | |
file | activity_base.php |
Activity base class. | |
file | activity_management_viewed.php |
The mod_bigbluebuttonbn activity management viewed event. | |
file | backup_bigbluebuttonbn_activity_task.class.php |
Class for backup BigBlueButtonBN. | |
file | backup_bigbluebuttonbn_stepslib.php |
Class for the structure used for backup BigBlueButtonBN. | |
file | base.php |
The mod_bigbluebuttonbn abstract base event class. | |
file | base_send_notification.php |
Class containing the abstract class for notification processes in BBB. | |
file | behat_mod_bigbluebuttonbn.php |
Behat custom steps and configuration for mod_bigbluebuttonbn. | |
file | behat_mod_bigbluebuttonbn_generator.php |
Behat data generator for mod_bigbluebuttonbn. | |
file | bigbluebutton_exception.php |
Class bigbluebutton_exception generic exception. | |
file | bigbluebutton_proxy.php |
The bigbluebutton proxy class. | |
file | broker.php |
The broker routines. | |
file | caches.php |
Caches for Bigbluebuttonbn. | |
file | can_join.php |
External service to check whether a user can join a meeting. | |
file | check_dismissed_recordings.php |
Synchronise pending and dismissed recordings from the server. | |
file | check_pending_recordings.php |
Synchronise pending recordings from the server. | |
file | cognitive_depth.php |
Cognitive depth indicator - BigBlueButtonBN. | |
file | completion_update_state.php |
Class containing the scheduled task for updating the completion state. | |
file | completion_validate.php |
External service to validate completion. | |
file | config.php |
Handles the global configuration based on config.php. | |
file | course_module_viewed.php |
The mod_bigbluebuttonbn activity viewed event. | |
file | coverage.php |
Coverage information for the mod_bigbluebuttonbn component. | |
file | curl.php |
A curl wrapper for bbb. | |
file | custom_completion.php |
Class custom_completion. | |
file | end_meeting.php |
External service to end a meeting. | |
file | events.php |
The mod_bigbluebuttonbn class for event name definition. | |
file | files.php |
The mod_bigbluebuttonbn files helper. | |
file | get_bigbluebuttonbns_by_courses.php |
External service to get activity per course. | |
file | get_join_url.php |
External service to create the meeting (if needed), check user limit, and return the join URL when we can join. | |
file | get_recordings.php |
External service to fetch a list of recordings from the BBB service. | |
file | get_recordings_to_import.php |
External service to fetch a list of recordings from the BBB service. | |
file | guest_add.php |
Popup form to add new guests to a meeting and show/copy credential to access the guest login page. | |
file | guest_login.php |
Guest login form. | |
file | import_view.php |
Renderable for the import page. | |
file | index.php |
Renderer for the Index page. | |
file | install.php |
Install script for mod_bigbluebuttonbn. | |
file | instance.php |
Instance record for mod_bigbluebuttonbn. | |
file | lib.php |
Library calls for Moodle and BigBlueButton. | |
file | lib.php |
mod_bigbluebuttonbn data generator | |
file | live_session_event.php |
The mod_bigbluebuttonbn live_session (Experimental: for being triggered when external events are received). | |
file | log.php |
Definition of log events. | |
file | logger.php |
Utility class for all logs routines helper. | |
file | meeting.php |
Class to describe a BBB Meeting. | |
file | meeting_created.php |
The mod_bigbluebuttonbn meeting created event, triggered when the meeting is created before join. | |
file | meeting_ended.php |
The mod_bigbluebuttonbn meeting ended event, triggered when the meeting is ended by the user. | |
file | meeting_info.php |
External service to fetch meeting information. | |
file | meeting_join_exception.php |
The mod_bigbluebuttonbn cannot join meeting exception. | |
file | meeting_joined.php |
The mod_bigbluebuttonbn meeting joined event, triggered when the user joins the session. | |
file | meeting_left.php |
The mod_bigbluebuttonbn meeting left event, triggered when the user lefts the meeting using the logout button. | |
file | mobile.php |
Mobile output class for bigbluebuttonbn. | |
file | mobile.php |
Mobile app definition for BigBlueButton. | |
file | mod_form.php |
Config all BigBlueButtonBN instances in this course. | |
file | mod_helper.php |
Utility class for all instance (module) routines helper. | |
file | plugin.php |
Class plugin. | |
file | provider.php |
Privacy class for requesting user data. | |
file | proxy_base.php |
The abstract proxy base class. | |
file | recording.php |
The recording entity. | |
file | recording_action.php |
Collection of helper methods for handling recordings actions in Moodle. | |
file | recording_data.php |
The recordings_data. | |
file | recording_deleted.php |
The mod_bigbluebuttonbn recording deleted event. | |
file | recording_description_editable.php |
Renderer for recording name in place editable. | |
file | recording_editable.php |
Renderer for recording in place editable. | |
file | recording_edited.php |
The mod_bigbluebuttonbn recording edited event. | |
file | recording_imported.php |
The mod_bigbluebuttonbn recording imported event. | |
file | recording_name_editable.php |
Renderer for recording name in place editable. | |
file | recording_protected.php |
The mod_bigbluebuttonbn recording protected event. | |
file | recording_proxy.php |
The recording proxy. | |
file | recording_published.php |
The mod_bigbluebuttonbn recording published event. | |
file | recording_row_actionbar.php |
Renderer for recording row actionbar column. | |
file | recording_row_playback.php |
Renderer for recording row playback column. | |
file | recording_row_preview.php |
Renderer for recording_row_preview column. | |
file | recording_unprotected.php |
The mod_bigbluebuttonbn recording unprotected event. | |
file | recording_unpublished.php |
The mod_bigbluebuttonbn recording unpublished event. | |
file | recording_viewed.php |
The mod_bigbluebuttonbn recording viewed event. | |
file | recordings_session.php |
Renderer for recording section. | |
file | renderer.php |
Renderer for the mod_bigbluebuttonbn plugin. | |
file | reset.php |
The mod_bigbluebuttonbn resetting instance helper. | |
file | reset_recordings.php |
Class containing the scheduled task for converting recordings for the BigBlueButton version 2.5 in Moodle 4.0. | |
file | restore_bigbluebuttonbn_activity_task.class.php |
Class for restore BigBlueButtonBN. | |
file | restore_bigbluebuttonbn_stepslib.php |
Class for the structure used for restore BigBlueButtonBN. | |
file | roles.php |
The mod_bigbluebuttonbn roles helper. | |
file | send_bigbluebutton_module_disabled_notification.php |
Ad-hoc task to send a notification related to the disabling of the BigBlueButton activity module. | |
file | send_guest_emails.php |
This adhoc task will send emails to guest users with the meeting's details. | |
file | send_notification.php |
Class containing the deprecated class for send_notification event in BBB. | |
file | send_recording_ready_notification.php |
Class containing the adhoc task to send a recording ready notification. | |
file | server_not_available_exception.php |
Class server_not_available_exception. | |
file | services.php |
URL external functions and service definitions. | |
file | setting_validator.php |
Helper class for validating settings used HTML for settings.php. | |
file | settings.php |
The mod_bigbluebuttonbn settings helper. | |
file | settings.php |
Settings for BigBlueButtonBN. | |
file | social_breadth.php |
Social breadth indicator - BigBlueButtonBN. | |
file | tags.php |
Search area for mod_bigbluebuttonbn tags. | |
file | tasks.php |
Definition of scheduled tasks for mod_bigbluebuttonbn. | |
file | testcase_helper_trait.php |
BBB Library tests class trait. | |
file | text_with_copy_element.php |
Text type form element with a copy widget. | |
file | update_recording.php |
External service to update the details of one recording. | |
file | upgrade.php |
Upgrade logic. | |
file | upgrade_recordings_task.php |
Class containing the scheduled task for converting recordings for the BigBlueButton version 2.5 in Moodle 4.0. | |
file | user_info.php |
Utility class for all user information. | |
file | version.php |
Version for BigBlueButtonBN Moodle Activity Module. | |
file | view_bigbluebuttonbn.php |
External service to trigger the course module viewed event and update the module completion status. | |
file | view_page.php |
View Page template renderable. | |
Namespaces | |
namespace | mod_bigbluebuttonbn |
| |
namespace | mod_bigbluebuttonbn\analytics\indicator |
| |
namespace | mod_bigbluebuttonbn\completion |
| |
namespace | mod_bigbluebuttonbn\event |
| |
namespace | mod_bigbluebuttonbn\external |
| |
namespace | mod_bigbluebuttonbn\form |
| |
namespace | mod_bigbluebuttonbn\local |
| |
namespace | mod_bigbluebuttonbn\local\bigbluebutton\recordings |
| |
namespace | mod_bigbluebuttonbn\local\exceptions |
| |
namespace | mod_bigbluebuttonbn\local\helpers |
| |
namespace | mod_bigbluebuttonbn\local\proxy |
| |
namespace | mod_bigbluebuttonbn\output |
| |
namespace | mod_bigbluebuttonbn\privacy |
| |
namespace | mod_bigbluebuttonbn\search |
| |
namespace | mod_bigbluebuttonbn\task |
| |
namespace | mod_bigbluebuttonbn\test |
| |
Functions | |
bigbluebuttonbn_add_instance ($bigbluebuttonbn) | |
Given an object containing all the necessary data, (defined by the form in mod_form.php) this function will create a new instance and return the id number of the new instance. | |
bigbluebuttonbn_check_updates_since (cm_info $cm, $from, $filter=[]) | |
Check if the module has any update that affects the current user since a given time. | |
bigbluebuttonbn_delete_instance ($id) | |
Given an ID of an instance of this module, this function will permanently delete the instance and any data that depends on it. | |
bigbluebuttonbn_extend_settings_navigation (settings_navigation $settingsnav, navigation_node $nodenav) | |
Adds module specific settings to the settings block. | |
bigbluebuttonbn_get_completion_aggregation_state () | |
This flags this module with the capability to override the completion status with the custom completion rules. | |
bigbluebuttonbn_get_coursemodule_info ($coursemodule) | |
Given a course_module object, this function returns any "extra" information that may be needed when printing this activity in a course listing. | |
bigbluebuttonbn_get_extra_capabilities () | |
Returns all other caps used in module. | |
bigbluebuttonbn_get_recent_mod_activity (&$activities, &$index, $timestart, $courseid, $cmid, $userid=0, $groupid=0) | |
Returns all events since a given time in specified bigbluebutton activity. | |
bigbluebuttonbn_inplace_editable ($itemtype, $itemid, $newvalue) | |
In place editable for the recording table. | |
bigbluebuttonbn_pluginfile ($course, $cm, $context, $filearea, $args, $forcedownload, array $options=[]) | |
bigbluebuttonbn_pre_enable_plugin_actions () | |
Callback method executed prior to enabling the activity module. | |
bigbluebuttonbn_print_recent_activity (object $course, bool $viewfullnames, int $timestart) | |
Given a course and a date, prints a summary of all the activity for this module. | |
bigbluebuttonbn_print_recent_mod_activity (stdClass $activity, int $courseid, bool $detail, array $modnames, bool $viewfullnames) | |
Outputs the bigbluebutton logs indicated by $activity. | |
bigbluebuttonbn_reset_course_form_defaults (stdClass $course) | |
Course reset form defaults. | |
bigbluebuttonbn_reset_course_form_definition (object &$mform) | |
Called by course/reset.php. | |
bigbluebuttonbn_reset_userdata (stdClass $data) | |
This function is used by the reset_course_userdata function in moodlelib. | |
bigbluebuttonbn_supports ($feature) | |
Indicates API features that the bigbluebuttonbn supports. | |
bigbluebuttonbn_update_instance ($bigbluebuttonbn) | |
Given an object containing all the necessary data, (defined by the form in mod_form.php) this function will update an existing instance with new data. | |
bigbluebuttonbn_user_complete (stdClass $course, stdClass $user, cm_info $mod, stdClass $bigbluebuttonbn) | |
Print a detailed representation of what a user has done with a given particular instance of this module, for user activity reports. | |
bigbluebuttonbn_user_outline (stdClass $course, stdClass $user, cm_info $mod, stdClass $bigbluebuttonbn) | |
Return a small object with summary information about what a user has done with a given particular instance of this module Used for user activity reports. | |
bigbluebuttonbn_view ($bigbluebuttonbn, $course, $cm, $context) | |
Mark the activity completed (if required) and trigger the course_module_viewed event. | |
mod_bigbluebuttonbn\test::create_activity_with_recordings (stdClass $course, int $type, array $recordingdata, int $groupid=0) | |
Create an activity which includes a set of recordings. | |
mod_bigbluebuttonbn\test::create_from_dataset (array $dataset) | |
Create a course, users and recording from dataset given in an array form. | |
mod_bigbluebuttonbn\test::create_instance (?stdClass $course=null, array $params=[], array $options=[]) | |
Convenience function to create an instance of a bigbluebuttonactivty. | |
mod_bigbluebuttonbn\test::create_legacy_log_entries (instance $instance, int $userid, int $count=30, bool $importedrecordings=false, bool $withremoterecordings=true) | |
Create the legacy log entries for this task. | |
mod_bigbluebuttonbn\test::create_recordings_for_instance (instance $instance, array $recordingdata=[], $additionalmeetingdata=[]) | |
Create an return an array of recordings. | |
mod_bigbluebuttonbn\test::get_course () | |
Get or create course if it does not exist. | |
mod_bigbluebuttonbn\test::get_form_data_from_instance (stdClass $bbactivity, ?stdClass $course=null) | |
Get the matching form data. | |
mod_bigbluebuttonbn\test::initialise_mock_server () | |
This test requires mock server to be present. | |
mod_bigbluebuttonbn_core_calendar_is_event_visible (calendar_event $event) | |
Is the event visible? | |
mod_bigbluebuttonbn_core_calendar_provide_event_action (calendar_event $event, action_factory $factory) | |
This function receives a calendar event and returns the action associated with it, or null if there is none. | |
mod_bigbluebuttonbn\test::setup_course_students_teachers (stdClass $courserecord, int $numstudents, int $numteachers, int $groupsnum) | |
Generate a course, several students and several groups. | |
xmldb_bigbluebuttonbn_add_change_field (database_manager $dbman, string $tablename, string $fieldname, array $fielddefinition) | |
Generic helper function for adding or changing a field in a table. | |
xmldb_bigbluebuttonbn_index_table (database_manager $dbman, string $tablename, string $indexname, array $indexfields, $indextype=XMLDB_INDEX_NOTUNIQUE) | |
Generic helper function for adding index to a table. | |
xmldb_bigbluebuttonbn_install () | |
Perform the post-install procedures. | |
xmldb_bigbluebuttonbn_upgrade ($oldversion=0) | |
Performs data migrations and updates on upgrade. | |
Variables | |
$addons | |
$bbbsettings = new mod_bigbluebuttonbn\settings($ADMIN, $module, $section) | |
$capabilities | |
global | $CFG |
global | mod_bigbluebuttonbn\external::$CFG |
global | mod_bigbluebuttonbn\form::$CFG |
global | mod_bigbluebuttonbn\local\proxy::$CFG |
global | mod_bigbluebuttonbn\output::$CFG |
global | mod_bigbluebuttonbn::$CFG |
global | $CFG |
global | $CFG |
global | $CFG |
object null | mod_bigbluebuttonbn\test::$course = null |
global | $DB |
$definitions | |
$functions | |
$logs | |
$messageproviders | |
$plugin = 2022111800 | |
$settings = null | |
$tasks | |
return new | bbb_coverage |
$plugin | component = 'mod_bigbluebuttonbn' |
trait | mod_bigbluebuttonbn\test::testcase_helper_trait |
$plugin | version = 2022112800 |
bigbluebuttonbn_add_instance | ( | $bigbluebuttonbn | ) |
Given an object containing all the necessary data, (defined by the form in mod_form.php) this function will create a new instance and return the id number of the new instance.
stdClass | $bigbluebuttonbn | An object from the form in mod_form.php |
int | The id of the newly inserted bigbluebuttonbn record |
bigbluebuttonbn_check_updates_since | ( | cm_info | $cm, |
$from, | |||
$filter = [] |
|||
) |
Check if the module has any update that affects the current user since a given time.
cm_info | $cm | course module data |
int | $from | the time to check updates from |
array | $filter | if we need to check only specific updates |
stdClass | an object with the different type of areas indicating if they were updated or not |
bigbluebuttonbn_delete_instance | ( | $id | ) |
Given an ID of an instance of this module, this function will permanently delete the instance and any data that depends on it.
int | $id | Id of the module instance |
bool | Success/Failure |
bigbluebuttonbn_extend_settings_navigation | ( | settings_navigation | $settingsnav, |
navigation_node | $nodenav | ||
) |
Adds module specific settings to the settings block.
settings_navigation | $settingsnav | The settings navigation object |
navigation_node | $nodenav | The node to add module settings to |
bigbluebuttonbn_get_completion_aggregation_state | ( | ) |
This flags this module with the capability to override the completion status with the custom completion rules.
int |
bigbluebuttonbn_get_coursemodule_info | ( | $coursemodule | ) |
Given a course_module object, this function returns any "extra" information that may be needed when printing this activity in a course listing.
See get_array_of_activities() in course/lib.php.
stdClass | $coursemodule |
null|cached_cm_info |
bigbluebuttonbn_get_extra_capabilities | ( | ) |
Returns all other caps used in module.
string[] |
bigbluebuttonbn_get_recent_mod_activity | ( | & | $activities, |
& | $index, | ||
$timestart, | |||
$courseid, | |||
$cmid, | |||
$userid = 0 , |
|||
$groupid = 0 |
|||
) |
Returns all events since a given time in specified bigbluebutton activity.
We focus here on the two events: play and join.
array | $activities | |
int | $index | |
int | $timestart | |
int | $courseid | |
int | $cmid | |
int | $userid | |
int | $groupid |
array |
bigbluebuttonbn_inplace_editable | ( | $itemtype, | |
$itemid, | |||
$newvalue | |||
) |
In place editable for the recording table.
string | $itemtype | |
string | $itemid | |
mixed | $newvalue |
mixed|null |
bigbluebuttonbn_pre_enable_plugin_actions | ( | ) |
Callback method executed prior to enabling the activity module.
bool | Whether to proceed and enable the plugin or not. |
bigbluebuttonbn_print_recent_activity | ( | object | $course, |
bool | $viewfullnames, | ||
int | $timestart | ||
) |
Given a course and a date, prints a summary of all the activity for this module.
object | $course | |
bool | $viewfullnames | capability |
int | $timestart |
bool | success |
bigbluebuttonbn_print_recent_mod_activity | ( | stdClass | $activity, |
int | $courseid, | ||
bool | $detail, | ||
array | $modnames, | ||
bool | $viewfullnames | ||
) |
Outputs the bigbluebutton logs indicated by $activity.
stdClass | $activity | the activity object the bigbluebuttonbn resides in |
int | $courseid | the id of the course the bigbluebuttonbn resides in |
bool | $detail | not used, but required for compatibilty with other modules |
array | $modnames | not used, but required for compatibilty with other modules |
bool | $viewfullnames | not used, but required for compatibilty with other modules |
bigbluebuttonbn_reset_course_form_defaults | ( | stdClass | $course | ) |
Course reset form defaults.
stdClass | $course |
array |
bigbluebuttonbn_reset_course_form_definition | ( | object & | $mform | ) |
Called by course/reset.php.
object | $mform |
bigbluebuttonbn_reset_userdata | ( | stdClass | $data | ) |
This function is used by the reset_course_userdata function in moodlelib.
stdClass | $data | the data submitted from the reset course. |
array | status array |
bigbluebuttonbn_supports | ( | $feature | ) |
Indicates API features that the bigbluebuttonbn supports.
string | $feature |
mixed | True if yes (some features may use other values) @uses FEATURE_IDNUMBER @uses FEATURE_GROUPS @uses FEATURE_GROUPINGS @uses FEATURE_GROUPMEMBERSONLY @uses FEATURE_MOD_INTRO @uses FEATURE_BACKUP_MOODLE2 @uses FEATURE_COMPLETION_TRACKS_VIEWS @uses FEATURE_COMPLETION_HAS_RULES @uses FEATURE_GRADE_HAS_GRADE @uses FEATURE_GRADE_OUTCOMES @uses FEATURE_SHOW_DESCRIPTION |
bigbluebuttonbn_update_instance | ( | $bigbluebuttonbn | ) |
Given an object containing all the necessary data, (defined by the form in mod_form.php) this function will update an existing instance with new data.
stdClass | $bigbluebuttonbn | An object from the form in mod_form.php |
bool | Success/Fail |
bigbluebuttonbn_user_complete | ( | stdClass | $course, |
stdClass | $user, | ||
cm_info | $mod, | ||
stdClass | $bigbluebuttonbn | ||
) |
Print a detailed representation of what a user has done with a given particular instance of this module, for user activity reports.
stdClass | $course | |
stdClass | $user | |
cm_info | $mod | |
stdClass | $bigbluebuttonbn |
bigbluebuttonbn_user_outline | ( | stdClass | $course, |
stdClass | $user, | ||
cm_info | $mod, | ||
stdClass | $bigbluebuttonbn | ||
) |
Return a small object with summary information about what a user has done with a given particular instance of this module Used for user activity reports.
stdClass | $course | |
stdClass | $user | |
cm_info | $mod | |
stdClass | $bigbluebuttonbn |
stdClass | with info and time (timestamp of the last log) |
bigbluebuttonbn_view | ( | $bigbluebuttonbn, | |
$course, | |||
$cm, | |||
$context | |||
) |
Mark the activity completed (if required) and trigger the course_module_viewed event.
stdClass | $bigbluebuttonbn | bigbluebuttonbn object |
stdClass | $course | course object |
cm_info | $cm | course module object |
context | $context | context object |
|
protected |
Create an activity which includes a set of recordings.
stdClass | $course | |
int | $type | |
array | $recordingdata | array of recording information |
int | $groupid |
array |
|
protected |
Create a course, users and recording from dataset given in an array form.
array | $dataset |
mixed |
|
protected |
Convenience function to create an instance of a bigbluebuttonactivty.
stdClass | null | $course | course to add the module to |
array | $params | Array of parameters to pass to the generator |
array | $options | Array of options to pass to the generator |
array($context,$cm,$instance) | Testable wrapper around the assign class. |
|
protected |
Create the legacy log entries for this task.
instance | $instance | |
int | $userid | |
int | $count | |
bool | $importedrecordings | |
bool | $withremoterecordings | create recording on the mock server ? |
array |
|
protected |
Create an return an array of recordings.
instance | $instance | |
array | $recordingdata | array of recording information |
array | $additionalmeetingdata |
array |
|
protected |
Get or create course if it does not exist.
stdClass|null |
|
protected |
Get the matching form data.
stdClass | $bbactivity | the current bigbluebutton activity |
stdClass | null | $course | the course or null (taken from $this->get_course() if null) |
mixed |
mod_bigbluebuttonbn_core_calendar_is_event_visible | ( | calendar_event | $event | ) |
Is the event visible?
calendar_event | $event |
bool | Returns true if the event is visible to the current user, false otherwise. |
mod_bigbluebuttonbn_core_calendar_provide_event_action | ( | calendar_event | $event, |
action_factory | $factory | ||
) |
This function receives a calendar event and returns the action associated with it, or null if there is none.
This is used by block_myoverview in order to display the event appropriately. If null is returned then the event is not displayed on the block.
calendar_event | $event | |
action_factory | $factory |
action_interface|null |
|
protected |
Generate a course, several students and several groups.
stdClass | $courserecord | |
int | $numstudents | |
int | $numteachers | |
int | $groupsnum |
array |
xmldb_bigbluebuttonbn_add_change_field | ( | database_manager | $dbman, |
string | $tablename, | ||
string | $fieldname, | ||
array | $fielddefinition | ||
) |
Generic helper function for adding or changing a field in a table.
database_manager | $dbman | |
string | $tablename | |
string | $fieldname | |
array | $fielddefinition |
xmldb_bigbluebuttonbn_index_table | ( | database_manager | $dbman, |
string | $tablename, | ||
string | $indexname, | ||
array | $indexfields, | ||
$indextype = XMLDB_INDEX_NOTUNIQUE |
|||
) |
Generic helper function for adding index to a table.
database_manager | $dbman | |
string | $tablename | |
string | $indexname | |
array | $indexfields | |
string | false | null | $indextype |
xmldb_bigbluebuttonbn_upgrade | ( | $oldversion = 0 | ) |
Performs data migrations and updates on upgrade.
int | $oldversion |
bool |
$addons |
$logs |
$messageproviders |
$tasks |
trait mod_bigbluebuttonbn::test\testcase_helper_trait |