Moodle APIs 4.3
Moodle 4.3.6 (Build: 20240812)
core\navigation\output\primary Class Reference

Primary navigation renderable. More...

Inheritance diagram for core\navigation\output\primary:

Public Member Functions

 __construct ($page)
 primary constructor.
 
 export_for_template (?renderer_base $output=null)
 Combine the various menus into a standardized output.
 
 export_for_template (renderer_base $output)
 Function to export the renderer data in a format that is suitable for a mustache template.
 
 get_user_menu (renderer_base $output)
 Get/Generate the user menu.
 

Protected Member Functions

 flag_active_nodes (object $node, bool $expandedmenu=false)
 Recursive checks if any of the children is active.
 
 get_custom_menu (renderer_base $output)
 Custom menu items reside on the same level as the original nodes.
 
 get_primary_nav ($parent=null)
 Get the primary nav object and standardize the output.
 
 merge_primary_and_custom (array $primary, array $custom, bool $expandedmenu=false)
 When defining custom menu items, the active flag is not obvserved correctly.
 

Detailed Description

Primary navigation renderable.

This file combines primary nav, custom menu, lang menu and usermenu into a standardized format for the frontend

License
http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later

Constructor & Destructor Documentation

◆ __construct()

core\navigation\output\primary::__construct ( $page)

primary constructor.

Parameters
moodle_page$page

Member Function Documentation

◆ export_for_template() [1/2]

core\navigation\output\primary::export_for_template ( ?renderer_base $output = null)

Combine the various menus into a standardized output.

Parameters
renderer_base | null$output
Return values
array

◆ export_for_template() [2/2]

templatable::export_for_template ( renderer_base $output)
inherited

Function to export the renderer data in a format that is suitable for a mustache template.

This means:

  1. No complex types - only stdClass, array, int, string, float, bool
  2. Any additional info that is required for the template is pre-calculated (e.g. capability checks).
Parameters
renderer_base$outputUsed to do a final render of any components that need to be rendered for export.
Return values
stdClass|array

Implemented in action_menu, assign_attempt_history_chooser, block_lp\output\competencies_to_review_page, block_lp\output\plans_to_review_page, block_lp\output\summary, block_myoverview\output\main, block_myprofile\output\myprofile, block_recentlyaccessedcourses\output\main, block_recentlyaccesseditems\output\main, block_search_forums\output\search_form, block_starredcourses\output\main, block_timeline\output\main, booktool_print\output\print_book_chapter_page, booktool_print\output\print_book_page, component_action, core\navigation\output\more_menu, core\output\activity_header, core\output\checkbox_toggleall, core\output\choicelist, core\output\chooser, core\output\chooser_item, core\output\chooser_section, core\output\comboboxsearch, core\output\dynamic_tabs, core\output\select_menu, core_auth\output\digital_minor_page, core_auth\output\login, core_auth\output\verify_age_location_page, core_badges\output\manage_badge_action_bar, core_badges\output\recipients_action_bar, core_badges\output\standard_action_bar, core_contentbank\output\bankcontent, core_contentbank\output\viewcontent, core_course\output\activity_completion, core_course\output\activity_dates, core_course\output\activity_information, core_course\output\completion_action_bar, core_courseformat\output\activitybadge, core_courseformat\output\local\content\cm, core_courseformat\output\local\content\section, core_group\output\group_details, core_group\output\index_page, core_h5p\output\libraries, core_privacy\output\exported_html_page, core_privacy\output\exported_navigation_page, core_question\output\qbank_action_menu, core_question\output\question_bank_filter_ui, core_question\output\question_version_info, core_question\output\question_version_selection, core_reportbuilder\output\custom_report, core_reportbuilder\output\dynamictabs\access, core_reportbuilder\output\dynamictabs\audience, core_reportbuilder\output\dynamictabs\editor, core_reportbuilder\output\dynamictabs\schedules, core_reportbuilder\output\system_report, core_tag\output\tag, core_tag\output\tagcloud, core_tag\output\tagfeed, core_tag\output\tagindex, core_tag\output\taglist, core_user\output\participants_filter, core_user\output\status_field, custom_menu_item, enrol_lti\output\registration, format_topics\output\courseformat\content, forumreport_summary\output\filters, gradereport_singleview\output\action_bar, help_icon, initials_bar, login_signup_form, mod_assign\output\grading_app, mod_assign\output\timelimit_panel, mod_bigbluebuttonbn\output\import_view, mod_bigbluebuttonbn\output\instance_updated_message, mod_bigbluebuttonbn\output\recording_row_actionbar, mod_bigbluebuttonbn\output\recording_row_playback, mod_bigbluebuttonbn\output\recording_row_preview, mod_bigbluebuttonbn\output\recordings_session, mod_bigbluebuttonbn\output\view_page, mod_data\output\presets, mod_data\output\view_footer, mod_feedback\output\base_action_bar, mod_feedback\output\summary, mod_forum\output\big_search_form, mod_forum\output\forum_actionbar, mod_forum\output\quick_search_form, mod_forum\output\subscription_actionbar, mod_glossary\output\standard_action_bar, mod_h5pactivity\output\attempt, mod_h5pactivity\output\reportattempts, mod_h5pactivity\output\reportlink, mod_h5pactivity\output\reportresults, mod_h5pactivity\output\result, mod_h5pactivity\output\result\longfillin, mod_h5pactivity\output\result\other, mod_lti\output\course_tools_page_header, mod_lti\output\external_registration_return_page, mod_lti\output\registration_upgrade_choice_page, mod_lti\output\repost_crosssite_page, mod_lti\output\tool_configure_page, mod_quiz\output\overrides_actions, mod_scorm\output\actionbar, mod_scorm\output\userreportsactionbar, mod_survey\output\actionbar, mod_workshop\output\actionbar, MoodleQuickForm_advcheckbox, MoodleQuickForm_autocomplete, MoodleQuickForm_button, MoodleQuickForm_checkbox, MoodleQuickForm_date_selector, MoodleQuickForm_date_time_selector, MoodleQuickForm_editor, MoodleQuickForm_filemanager, MoodleQuickForm_filepicker, MoodleQuickForm_grading, MoodleQuickForm_group, MoodleQuickForm_passwordunmask, MoodleQuickForm_recaptcha, MoodleQuickForm_select, MoodleQuickForm_selectgroups, MoodleQuickForm_selectwithlink, MoodleQuickForm_static, MoodleQuickForm_submit, MoodleQuickForm_tags, MoodleQuickForm_textarea, MoodleQuickForm_url, MoodleQuickForm_warning, MoodleQuickForm_wikieditor, paging_bar, pix_icon, pix_icon_font, progress_bar, qbank_columnsortorder\output\add_column, qbank_columnsortorder\output\reset_columns, qbank_editquestion\output\add_new_question, qbank_viewquestiontext\output\question_text_format, report_competency\output\report, report_competency\output\user_course_navigation, single_select, tabobject, tabtree, tool_admin_presets\output\export_import, tool_admin_presets\output\presets_list, tool_componentlibrary\local\examples\dynamictabs\tab1, tool_componentlibrary\local\examples\dynamictabs\tab2, tool_customlang\output\translator, tool_dataprivacy\output\categories, tool_dataprivacy\output\data_deletion_page, tool_dataprivacy\output\data_registry_compliance_page, tool_dataprivacy\output\data_registry_page, tool_dataprivacy\output\data_requests_page, tool_dataprivacy\output\defaults_page, tool_dataprivacy\output\my_data_requests_page, tool_dataprivacy\output\purposes, tool_dataprivacy\output\request_filter, tool_dataprivacy\output\summary_page, tool_langimport\output\langimport_page, tool_lp\output\competency_plan_navigation, tool_lp\output\competency_summary, tool_lp\output\course_competencies_page, tool_lp\output\manage_competencies_page, tool_lp\output\manage_competency_frameworks_page, tool_lp\output\manage_templates_page, tool_lp\output\module_navigation, tool_lp\output\plans_page, tool_lp\output\related_competencies, tool_lp\output\template_competencies_page, tool_lp\output\user_competency_course_navigation, tool_lp\output\user_competency_summary, tool_lp\output\user_competency_summary_in_course, tool_lp\output\user_evidence_list_page, tool_policy\output\acceptances, tool_policy\output\guestconsent, tool_policy\output\page_agreedocs, tool_policy\output\page_managedocs_list, tool_policy\output\page_nopermission, tool_policy\output\page_viewalldoc, tool_policy\output\page_viewdoc, tool_templatelibrary\output\list_templates_page, and url_select.

◆ flag_active_nodes()

core\navigation\output\primary::flag_active_nodes ( object $node,
bool $expandedmenu = false )
protected

Recursive checks if any of the children is active.

If that's the case this node (the parent) is active as well. If the node has no children, check if the node itself is active. Use pass by reference for the node object because we actively change/set the "isactive" flag inside the method and this needs to be kept at the callers side. Set $expandedmenu to true, if the mobile menu is done, in this case the active flag gets the node that is actually active, while the parent hierarchy of the active node gets the flag isopen.

Parameters
object$node
bool$expandedmenu
Return values
bool

◆ get_custom_menu()

core\navigation\output\primary::get_custom_menu ( renderer_base $output)
protected

Custom menu items reside on the same level as the original nodes.

Fetch and convert the nodes to a standardised array.

Parameters
renderer_base$output
Return values
array

◆ get_primary_nav()

core\navigation\output\primary::get_primary_nav ( $parent = null)
protected

Get the primary nav object and standardize the output.

Parameters
navigation_node | null$parentused for nested nodes, by default the primarynav node
Return values
array

◆ get_user_menu()

core\navigation\output\primary::get_user_menu ( renderer_base $output)

Get/Generate the user menu.

This is leveraging the data from user_get_user_navigation_info and the logic in $OUTPUT->user_menu()

Parameters
renderer_base$output
Return values
array

◆ merge_primary_and_custom()

core\navigation\output\primary::merge_primary_and_custom ( array $primary,
array $custom,
bool $expandedmenu = false )
protected

When defining custom menu items, the active flag is not obvserved correctly.

Therefore, the merge of the primary and custom navigation must be handled a bit smarter. Change the "isactive" flag of the nodes (this may set by default in the primary nav nodes but is entirely missing in the custom nav nodes). Set the $expandedmenu argument to true when the menu for the mobile template is build.

Parameters
array$primary
array$custom
bool$expandedmenu
Return values
array

The documentation for this class was generated from the following file: