Moodle PHP Documentation 4.5
Moodle 4.5dev (Build: 20240606) (d3ae1391abe)
core\output\inplace_editable Class Reference

Class allowing to quick edit a title inline. More...

Inheritance diagram for core\output\inplace_editable:
templatable renderable core_calendar\output\refreshintervalcollection core_cohort\output\cohortidnumber core_cohort\output\cohortname core_courseformat\output\local\content\cm\title core_group\output\user_groups_editable core_reportbuilder\output\audience_heading_editable core_reportbuilder\output\column_aggregation_editable core_reportbuilder\output\column_heading_editable core_reportbuilder\output\filter_heading_editable core_reportbuilder\output\report_name_editable core_reportbuilder\output\schedule_name_editable core_tag\output\tagareacollection core_tag\output\tagareaenabled core_tag\output\tagareashowstandard core_tag\output\tagcollname core_tag\output\tagcollsearchable core_tag\output\tagflag core_tag\output\tagisstandard core_tag\output\tagname core_user\output\user_roles_editable mod_bigbluebuttonbn\output\recording_editable qbank_viewquestionname\output\questionname

Public Member Functions

 __construct ($component, $itemtype, $itemid, $editable, $displayvalue, $value=null, $edithint=null, $editlabel=null, ?pix_icon $editicon=null)
 Constructor.
 
 export_for_template (\renderer_base $output)
 Export this data so it can be used as the context for a mustache template (core/inplace_editable).
 
 export_for_template (renderer_base $output)
 Function to export the renderer data in a format that is suitable for a mustache template.
 
 render (\renderer_base $output)
 Renders this element.
 
 set_type_autocomplete ($options, $attributes)
 Sets the element type to be an autocomplete field.
 
 set_type_select ($options)
 Sets the element type to be a dropdown.
 
 set_type_toggle ($options=null)
 Sets the element type to be a toggle.
 

Protected Member Functions

 get_linkeverything ()
 Whether the link should contain all of the content or not.
 

Protected Attributes

string $component = null
 component responsible for diplsying/updating
 
string $displayvalue = null
 value of the editable element as it should be displayed, must be formatted and may contain links or other html tags
 
bool $editable = false
 indicates if the current user is allowed to edit this element - set in constructor after permissions are checked
 
string $edithint = null
 hint for the input element (for screenreaders)
 
pix_icon $editicon = null
 icon to use to toggle editing
 
string $editlabel = null
 label for the input element (for screenreaders)
 
int $itemid = null
 identifier of the editable element (usually database id)
 
string $itemtype = null
 itemtype inside the component
 
string $options = ''
 options for the element, for example new value for the toggle or json-encoded list of options for select
 
string $type = 'text'
 type of the element - text, toggle or select
 
string $value = null
 value of the editable element as it is present in the database
 

Detailed Description

Class allowing to quick edit a title inline.

This class is used for displaying an element that can be in-place edited by the user. To display call: echo $OUTPUT->render($element); or echo $OUTPUT->render_from_template('core/inplace_editable', $element->export_for_template($OUTPUT));

Template core/inplace_editable will automatically load javascript module with the same name core/inplace_editable. Javascript module registers a click-listener on edit link and then replaces the displayed value with an input field. On "Enter" it sends a request to web service core_update_inplace_editable, which invokes the callback from the component. Any exception thrown by the web service (or callback) is displayed as an error popup.

Callback {$component}_inplace_editable($itemtype, $itemid, $newvalue) must be present in the lib.php file of the component or plugin. It must return instance of this class.

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

Constructor & Destructor Documentation

◆ __construct()

core\output\inplace_editable::__construct ( $component,
$itemtype,
$itemid,
$editable,
$displayvalue,
$value = null,
$edithint = null,
$editlabel = null,
?pix_icon $editicon = null )

Constructor.

Parameters
string$componentname of the component or plugin responsible for the updating of the value (must declare callback)
string$itemtypetype of the item inside the component - each component/plugin may implement multiple inplace-editable elements
int$itemididentifier of the item that can be edited in-place
bool$editablewhether this value is editable (check capabilities and editing mode), if false, only "displayvalue" will be displayed without anything else
string$displayvaluewhat needs to be displayed to the user, it must be cleaned, with applied filters (call format_string()). It may be wrapped in an html link, contain icons or other decorations
string$valuewhat needs to be edited - usually raw value from the database, it may contain multilang tags
lang_string | string$edithinthint (title) that will be displayed under the edit link
lang_string | string$editlabellabel for the input element in the editing mode (for screenreaders)
pix_icon | null$editiconicon to use to toggle editing

Member Function Documentation

◆ export_for_template() [1/2]

core\output\inplace_editable::export_for_template ( \renderer_base $output)

Export this data so it can be used as the context for a mustache template (core/inplace_editable).

Parameters
renderer_base$outputtypically, the renderer that's calling this function
Return values
arraydata context for a mustache template

Reimplemented in core_courseformat\output\local\content\cm\title, core_group\output\user_groups_editable, core_tag\output\tagareaenabled, core_tag\output\tagcollsearchable, core_tag\output\tagflag, core_tag\output\tagisstandard, and core_user\output\user_roles_editable.

◆ 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, context_header, 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_admin\output\theme_selector, 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\attempt_summary_information, mod_quiz\output\edit_grading_page, mod_quiz\output\edit_nav_actions, mod_quiz\output\list_of_attempts, 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_choicedropdown, 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, qtype_ordering\output\feedback, 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_generator\output\parsingresult, 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.

◆ render()

core\output\inplace_editable::render ( \renderer_base $output)

Renders this element.

Parameters
renderer_base$outputtypically, the renderer that's calling this function
Return values
string

◆ set_type_autocomplete()

core\output\inplace_editable::set_type_autocomplete ( $options,
$attributes )

Sets the element type to be an autocomplete field.

Parameters
array$optionsassociative array with dropdown options
array$attributesassociative array with attributes for autoselect field. See AMD module core/form-autocomplete.
Return values
self

◆ set_type_select()

core\output\inplace_editable::set_type_select ( $options)

Sets the element type to be a dropdown.

For select element specifying $displayvalue is optional, if null it will be assumed that $displayvalue = $options[$value]. However displayvalue can still be specified if it needs icons and/or html links.

If only one option specified, the element will not be editable.

Parameters
array$optionsassociative array with dropdown options
Return values
self

◆ set_type_toggle()

core\output\inplace_editable::set_type_toggle ( $options = null)

Sets the element type to be a toggle.

For toggle element $editlabel is not used. $displayvalue must be specified, it can have text or icons but can not contain html links.

Toggle element can have two or more options.

Parameters
array$optionstoggle options as simple, non-associative array; defaults to array(0,1)
Return values
self

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