Moodle APIs
3.8
Moodle 3.8.6 (Build: 20201109)
|
Represents a document to index. More...
Public Member Functions | |
__construct ($itemid, $componentname, $areaname) | |
We ensure that the document has a unique id across search areas. More... | |
add_stored_file ($file) | |
Add a stored file to the document. More... | |
export_for_engine () | |
Returns the document ready to submit to the search engine. More... | |
export_for_template (\renderer_base $output) | |
Export the document data to be used as a template context. More... | |
export_for_template (renderer_base $output) | |
Function to export the renderer data in a format that is suitable for a mustache template. More... | |
get ($field) | |
Getter. More... | |
get_context_url () | |
Gets the url to the context. More... | |
get_doc_icon () | |
Gets document icon instance. More... | |
get_doc_url () | |
Gets the url to the doc. More... | |
get_files () | |
Returns the array of attached files. More... | |
get_is_new () | |
Returns if the document is new. More... | |
is_set ($field) | |
Checks if a field is set. More... | |
set ($fieldname, $value) | |
Setter. More... | |
set_context_url (\moodle_url $url) | |
set_data_from_engine ($docdata) | |
Fills the document with data coming from the search engine. More... | |
set_doc_icon (document_icon $docicon) | |
Sets document icon instance. More... | |
set_doc_url (\moodle_url $url) | |
Sets the document url. More... | |
set_extra ($fieldname, $value) | |
Sets data to this->extradata. More... | |
set_is_new ($new) | |
Set if this is a new document. More... | |
Static Public Member Functions | |
static | format_string_for_engine ($string) |
Formats a string value for the search engine. More... | |
static | format_text_for_engine ($text) |
Formats a text value for the search engine. More... | |
static | format_time_for_engine ($timestamp) |
Formats the timestamp preparing the time fields to be inserted into the search engine. More... | |
static | get_default_fields_definition () |
Returns all default fields definitions. More... | |
static | import_time_from_engine ($time) |
Returns a timestamp from the value stored in the search engine. More... | |
Public Attributes | |
int const | SCHEMA_VERSION = 2017091700 |
Change list (for engine implementers): 2017091700 - add optional field groupid. More... | |
Protected Member Functions | |
apply_defaults () | |
Apply any defaults to unset fields before export. More... | |
format_text ($text) | |
Formats a text string coming from the search engine. More... | |
get_text_format () | |
Returns how text is returned from the search engine. More... | |
Protected Attributes | |
int null | $contentfilearea = null |
The content field filearea. | |
int null | $contentitemid = null |
The content field itemid. | |
moodle_url | $contexturl = null |
Link to the document context. | |
array | $data = array() |
$data The document data. | |
core_search document_icon | $docicon = null |
Document icon instance. | |
moodle_url | $docurl = null |
Link to the document. | |
array | $extradata = array() |
Extra data needed to render the document. | |
stored_file[] | $files = array() |
An array of stored files to attach to the document. | |
bool | $isnew = false |
Should be set to true if document hasn't been indexed before. More... | |
Static Protected Attributes | |
static array | $enginefields = array() |
Any fields that are engine specifc. More... | |
static array | $optionalfields |
All optional fields docs can contain. More... | |
static array | $requiredfields |
All required fields any doc should contain. More... | |
Represents a document to index.
Note that, if you are writting a search engine and you want to change core_search\document behaviour, you can overwrite this class, will be automatically loaded from search_YOURENGINE\document.
core_search\document::__construct | ( | $itemid, | |
$componentname, | |||
$areaname | |||
) |
We ensure that the document has a unique id across search areas.
int | $itemid | An id unique to the search area |
string | $componentname | The search area component Frankenstyle name |
string | $areaname | The area name (the search area class name) |
void |
core_search\document::add_stored_file | ( | $file | ) |
Add a stored file to the document.
stored_file | int | $file | The file to add, or file id. |
void |
|
protected |
Apply any defaults to unset fields before export.
Called after document building, but before export.
Sub-classes of this should make sure to call parent::apply_defaults().
Reimplemented in search_solr\document.
core_search\document::export_for_engine | ( | ) |
Returns the document ready to submit to the search engine.
coding_exception |
array |
core_search\document::export_for_template | ( | \renderer_base | $output | ) |
Export the document data to be used as a template context.
Adding more info than the required one as people might be interested in extending the template.
Although content is a required field when setting up the document, it accepts '' (empty) values as they may be the result of striping out HTML.
SECURITY NOTE: It is the responsibility of the document to properly escape any text to be displayed. The renderer will output the content without any further cleaning.
renderer_base | $output | The renderer. |
array |
|
inherited |
Function to export the renderer data in a format that is suitable for a mustache template.
This means:
renderer_base | $output | Used to do a final render of any components that need to be rendered for export. |
stdClass|array |
Implemented in forumreport_summary\output\filters, core_user\output\unified_filter, core_user\output\status_field, core_tag\output\taglist, core_tag\output\tagindex, core_tag\output\tagfeed, core_tag\output\tagcloud, core_tag\output\tag, report_competency\output\user_course_navigation, report_competency\output\report, core_privacy\output\exported_navigation_page, core_privacy\output\exported_html_page, MoodleQuickForm_wikieditor, mod_lti\output\tool_configure_page, mod_lti\output\external_registration_return_page, mod_forum\output\quick_search_form, mod_forum\output\big_search_form, mod_feedback\output\summary, booktool_print\output\print_book_page, booktool_print\output\print_book_chapter_page, assign_attempt_history_chooser, mod_assign\output\grading_app, login_signup_form, progress_bar, action_menu, tabtree, tabobject, custom_menu_item, initials_bar, paging_bar, url_select, single_select, pix_icon, pix_icon_font, help_icon, component_action, MoodleQuickForm_warning, MoodleQuickForm_url, MoodleQuickForm_textarea, MoodleQuickForm_tags, MoodleQuickForm_submit, MoodleQuickForm_static, MoodleQuickForm_selectwithlink, MoodleQuickForm_selectgroups, MoodleQuickForm_select, MoodleQuickForm_recaptcha, MoodleQuickForm_passwordunmask, MoodleQuickForm_group, MoodleQuickForm_grading, MoodleQuickForm_filepicker, MoodleQuickForm_filemanager, MoodleQuickForm_editor, MoodleQuickForm_date_time_selector, MoodleQuickForm_date_selector, MoodleQuickForm_checkbox, MoodleQuickForm_autocomplete, MoodleQuickForm_advcheckbox, core\output\chooser_section, core\output\chooser_item, core\output\chooser, core\output\checkbox_toggleall, core_group\output\index_page, core_group\output\group_details, enrol_lti\output\registration, core_course\output\modchooser, block_timeline\output\main, block_starredcourses\output\main, block_search_forums\output\search_form, block_recentlyaccesseditems\output\main, block_recentlyaccessedcourses\output\main, block_myprofile\output\myprofile, block_myoverview\output\main, block_lp\output\summary, block_lp\output\plans_to_review_page, block_lp\output\competencies_to_review_page, core_auth\output\verify_age_location_page, core_auth\output\login, core_auth\output\digital_minor_page, tool_templatelibrary\output\list_templates_page, tool_policy\output\page_viewdoc, tool_policy\output\page_viewalldoc, tool_policy\output\page_nopermission, tool_policy\output\page_managedocs_list, tool_policy\output\page_agreedocs, tool_policy\output\guestconsent, tool_policy\output\acceptances, tool_lp\output\user_evidence_list_page, tool_lp\output\user_competency_summary_in_course, tool_lp\output\user_competency_summary, tool_lp\output\user_competency_course_navigation, tool_lp\output\template_competencies_page, tool_lp\output\related_competencies, tool_lp\output\plans_page, tool_lp\output\module_navigation, tool_lp\output\manage_templates_page, tool_lp\output\manage_competency_frameworks_page, tool_lp\output\manage_competencies_page, tool_lp\output\course_competencies_page, tool_lp\output\competency_summary, tool_lp\output\competency_plan_navigation, tool_langimport\output\langimport_page, tool_dataprivacy\output\summary_page, tool_dataprivacy\output\request_filter, tool_dataprivacy\output\purposes, tool_dataprivacy\output\my_data_requests_page, tool_dataprivacy\output\defaults_page, tool_dataprivacy\output\data_requests_page, tool_dataprivacy\output\data_registry_page, tool_dataprivacy\output\data_registry_compliance_page, tool_dataprivacy\output\data_deletion_page, tool_dataprivacy\output\categories, and tool_customlang\output\translator.
|
static |
Formats a string value for the search engine.
Search engines may overwrite this method to apply restrictions, like limiting the size. The default behaviour is just returning the string.
string | $string |
string |
Reimplemented in search_solr\document.
|
protected |
Formats a text string coming from the search engine.
By default just return the text as it is:
string | $text | Text to format |
string | HTML text to be renderer |
Reimplemented in search_solr\document.
|
static |
Formats a text value for the search engine.
Search engines may overwrite this method to apply restrictions, like limiting the size. The default behaviour is just returning the string.
string | $text |
string |
|
static |
Formats the timestamp preparing the time fields to be inserted into the search engine.
By default it just returns a timestamp so any search engine could just store integers and use integers comparison to get documents between x and y timestamps, but search engines might be interested in using their own field formats. They can do it extending this class in search_xxx\document.
int | $timestamp |
string |
Reimplemented in search_solr\document.
core_search\document::get | ( | $field | ) |
Getter.
Use self::is_set if you are not sure if this field is set or not as otherwise it will trigger a coding_exception
coding_exception |
string | $field |
string|int |
core_search\document::get_context_url | ( | ) |
Gets the url to the context.
moodle_url |
|
static |
Returns all default fields definitions.
array |
core_search\document::get_doc_icon | ( | ) |
Gets document icon instance.
core_search |
core_search\document::get_doc_url | ( | ) |
Gets the url to the doc.
moodle_url |
core_search\document::get_files | ( | ) |
Returns the array of attached files.
stored_file[] |
core_search\document::get_is_new | ( | ) |
Returns if the document is new.
False if unknown.
bool |
|
protected |
Returns how text is returned from the search engine.
int |
Reimplemented in search_solr\document.
|
static |
Returns a timestamp from the value stored in the search engine.
By default it just returns a timestamp so any search engine could just store integers and use integers comparison to get documents between x and y timestamps, but search engines might be interested in using their own field formats. They should do it extending this class in search_xxx\document.
string | $time |
int |
Reimplemented in search_solr\document.
core_search\document::is_set | ( | $field | ) |
Checks if a field is set.
string | $field |
bool |
core_search\document::set | ( | $fieldname, | |
$value | |||
) |
Setter.
Basic checkings to prevent common issues.
If the field is a string tags will be stripped, if it is an integer or a date it will be casted to a PHP integer. tdate fields values are expected to be timestamps.
coding_exception |
string | $fieldname | The field name |
string | int | $value | The value to store |
string|int | The stored value |
core_search\document::set_data_from_engine | ( | $docdata | ) |
Fills the document with data coming from the search engine.
core_search |
core_search\document::set_doc_icon | ( | document_icon | $docicon | ) |
Sets document icon instance.
core_search\document_icon | $docicon |
core_search\document::set_doc_url | ( | \moodle_url | $url | ) |
core_search\document::set_extra | ( | $fieldname, | |
$value | |||
) |
Sets data to this->extradata.
This data can be retrieved using core_search\document->get($fieldname).
string | $fieldname | |
string | $value |
void |
core_search\document::set_is_new | ( | $new | ) |
Set if this is a new document.
False if unknown.
bool | $new |
|
staticprotected |
Any fields that are engine specifc.
These are fields that are solely used by a search engine plugin for internal purposes.
Field names should be prefixed with engine name to avoid potential conflict with core fields.
Uses same format as fields above.
|
protected |
Should be set to true if document hasn't been indexed before.
False if unknown.
|
staticprotected |
All optional fields docs can contain.
Although it matches solr fields format, this is just to define the field types. Search engine plugins are responsible of setting their appropriate field types and map these naming to whatever format they need.
|
staticprotected |
All required fields any doc should contain.
We have to choose a format to specify field types, using solr format as we have to choose one and solr is the default search engine.
Search engine plugins are responsible of setting their appropriate field types and map these naming to whatever format they need.
int const core_search\document::SCHEMA_VERSION = 2017091700 |
Change list (for engine implementers): 2017091700 - add optional field groupid.
Schema version number (update if any change)