Moodle APIs 3.9
Moodle 3.9.13+ (Build: 20220325)
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
mod_data\search\entry Class Reference

Search area for mod_data activity entries. More...

Inheritance diagram for mod_data\search\entry:
core_search\base_mod core_search\base

Public Member Functions

 attach_files ($doc)
 Add the database entries attachments. More...
 
 check_access ($id)
 Whether the user can access the document or not. More...
 
 get_area_id ()
 Returns the area id. More...
 
 get_category_names ()
 Returns a list of category names associated with the area. More...
 
 get_component_name ()
 Returns the moodle component name. More...
 
 get_component_type ()
 Returns the component type. More...
 
 get_config ()
 Returns all the search area configuration. More...
 
 get_config_var_name ()
 Returns the config var name. More...
 
 get_context_url (\core_search\document $doc)
 Link to the database activity. More...
 
 get_context_url (\core_search\document $doc)
 Returns a url to the document context. More...
 
 get_contexts_to_reindex ()
 Gets a list of all contexts to reindex when reindexing this search area. More...
 
 get_doc_icon (document $doc)
 Returns an icon instance for the document. More...
 
 get_doc_url (\core_search\document $doc)
 Link to database entry. More...
 
 get_doc_url (\core_search\document $doc)
 Returns a url to the document, it might match self::get_context_url(). More...
 
 get_document ($entry, $options=array())
 Returns the documents associated with this glossary entry id. More...
 
 get_document_display_title (\core_search\document $doc)
 Returns the document title to display. More...
 
 get_document_recordset ($modifiedfrom=0, context $context=null)
 Returns recordset containing required data for indexing database entries. More...
 
 get_last_indexing_duration ()
 Gets the length of time spent indexing this area (the last time it was indexed). More...
 
 get_recordset_by_timestamp ($modifiedfrom=0)
 Returns a recordset ordered by modification date ASC. More...
 
 get_search_fileareas ()
 Return the context info required to index files for this search area. More...
 
 get_visible_name ($lazyload=false)
 Returns the area visible name. More...
 
 is_enabled ()
 Is the search component enabled by the system administrator? More...
 
 restrict_cm_access_by_group (\cm_info $cm)
 Checks whether the content of this search area should be restricted by group for a specific module. More...
 
 set_enabled ($isenabled)
 
 supports_get_document_recordset ()
 Checks if get_document_recordset is supported for this search area. More...
 
 supports_group_restriction ()
 Confirms that data entries support group restrictions. More...
 
 uses_file_indexing ()
 Returns true if this area uses file indexing. More...
 

Static Public Member Functions

static get_levels ()
 Returns context levels property. More...
 
static get_settingnames ()
 Return a list of all required setting names. More...
 

Protected Member Functions

 get_cm ($modulename, $instanceid, $courseid)
 Gets the course module for the required instanceid + modulename. More...
 
 get_context_restriction_sql (\context $context=null, $modname, $modtable, $paramtype=SQL_PARAMS_QM)
 Helper function that gets SQL useful for restricting a search query given a passed-in context. More...
 
 get_contexts_to_reindex_extra_sql ()
 This can be used in subclasses to change ordering within the get_contexts_to_reindex function. More...
 
 get_course_level_context_restriction_sql (\context $context=null, $coursetable, $paramtype=SQL_PARAMS_QM)
 Helper function that gets SQL useful for restricting a search query given a passed-in context, for data stored at course level. More...
 
 get_entry ($entryid)
 Get database entry data. More...
 
 get_field_class_name ($fieldtype)
 Returns the class name for that field type and includes it. More...
 
 get_fields_for_entries ($entry)
 get_fields_for_entries More...
 
 get_module_name ()
 Returns the module name. More...
 

Protected Attributes

string $areaname = null
 The area name as defined in the class name.
 
string $componentname = null
 The component frankenstyle name.
 
string $componenttype = null
 The component type (core or the plugin type).
 
array $entriesdata = array()
 Internal quick static cache.
 

Static Protected Attributes

static array $levels = [CONTEXT_MODULE]
 The context levels the search area is working on. More...
 

Detailed Description

Search area for mod_data activity entries.

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

Member Function Documentation

◆ attach_files()

mod_data\search\entry::attach_files (   $doc)

Add the database entries attachments.

Parameters
core_search::document$doc
Return values
void

Reimplemented from core_search\base.

◆ check_access()

mod_data\search\entry::check_access (   $id)

Whether the user can access the document or not.

Exceptions
dml_missing_record_exception
dml_exception
Parameters
int$idGlossary entry id
Return values
bool

Reimplemented from core_search\base.

◆ get_area_id()

core_search\base::get_area_id ( )
inherited

Returns the area id.

Return values
string

◆ get_category_names()

core_search\base_mod::get_category_names ( )
inherited

Returns a list of category names associated with the area.

Return values
array

Reimplemented from core_search\base.

◆ get_cm()

core_search\base_mod::get_cm (   $modulename,
  $instanceid,
  $courseid 
)
protectedinherited

Gets the course module for the required instanceid + modulename.

The returned data depends on the logged user, when calling this through self::get_document the admin user is used so everything would be returned.

No need more internal caching here, modinfo is already cached.

Exceptions
dml_missing_record_exception
Parameters
string$modulenameThe module name
int$instanceidModule instance id (depends on the module)
int$courseidHelps speeding up things
Return values
cm_info

◆ get_component_name()

core_search\base::get_component_name ( )
inherited

Returns the moodle component name.

It might be the plugin name (whole frankenstyle name) or the core subsystem name.

Return values
string

Reimplemented in core_course\search\course, core_course\search\customfield, core_course\search\section, and core_user\search\user.

◆ get_component_type()

core_search\base::get_component_type ( )
inherited

Returns the component type.

It might be a plugintype or 'core' for core subsystems.

Return values
string

◆ get_config()

core_search\base::get_config ( )
inherited

Returns all the search area configuration.

Return values
array

◆ get_config_var_name()

core_search\base::get_config_var_name ( )
inherited

Returns the config var name.

It depends on whether it is a moodle subsystem or a plugin as plugin-related config should remain in their own scope.

Return values
stringConfig var path including the plugin (or component) and the varname

◆ get_context_restriction_sql()

core_search\base_mod::get_context_restriction_sql ( \context  $context = null,
  $modname,
  $modtable,
  $paramtype = SQL_PARAMS_QM 
)
protectedinherited

Helper function that gets SQL useful for restricting a search query given a passed-in context.

The SQL returned will be zero or more JOIN statements, surrounded by whitespace, which act as restrictions on the query based on the rows in a module table.

You can pass in a null or system context, which will both return an empty string and no params.

Returns an array with two nulls if there can be no results for the activity within this context (e.g. it is a block context).

If named parameters are used, these will be named gcrs0, gcrs1, etc. The table aliases used in SQL also all begin with gcrs, to avoid conflicts.

Parameters
context | null$contextContext to restrict the query
string$modnameName of module e.g. 'forum'
string$modtableAlias of table containing module id
int$paramtypeType of SQL parameters to use (default question mark)
Return values
arrayArray with SQL and parameters; both null if no need to query
Exceptions
coding_exceptionIf called with invalid params

◆ get_context_url() [1/2]

mod_data\search\entry::get_context_url ( \core_search\document  $doc)

Link to the database activity.

Parameters
core_search::document$doc
Return values
moodle_url

◆ get_context_url() [2/2]

core_search\base::get_context_url ( \core_search\document  $doc)
abstractinherited

Returns a url to the document context.

Parameters
core_search::document$doc
Return values
moodle_url

Reimplemented in core_search\base_activity, and core_search\base_block.

◆ get_contexts_to_reindex()

core_search\base_mod::get_contexts_to_reindex ( )
inherited

Gets a list of all contexts to reindex when reindexing this search area.

For modules, the default is to return all contexts for modules of that type, in order of time added (most recent first).

Return values
IteratorIterator of contexts to reindex
Exceptions
moodle_exceptionIf any DB error

Reimplemented from core_search\base.

◆ get_contexts_to_reindex_extra_sql()

core_search\base_mod::get_contexts_to_reindex_extra_sql ( )
protectedinherited

This can be used in subclasses to change ordering within the get_contexts_to_reindex function.

It returns 2 values:

  • Extra SQL joins (tables course_modules 'cm' and context 'x' already exist).
  • An ORDER BY value which must use aggregate functions, by default 'MAX(cm.added) DESC'.

Note the query already includes a GROUP BY on the context fields, so if your joins result in multiple rows, you can use aggregate functions in the ORDER BY. See forum for an example.

Return values
string[]Array with 2 elements; extra joins for the query, and ORDER BY value

Reimplemented in mod_forum\search\post.

◆ get_course_level_context_restriction_sql()

core_search\base::get_course_level_context_restriction_sql ( \context  $context = null,
  $coursetable,
  $paramtype = SQL_PARAMS_QM 
)
protectedinherited

Helper function that gets SQL useful for restricting a search query given a passed-in context, for data stored at course level.

The SQL returned will be zero or more JOIN statements, surrounded by whitespace, which act as restrictions on the query based on the rows in a module table.

You can pass in a null or system context, which will both return an empty string and no params.

Returns an array with two nulls if there can be no results for a course within this context.

If named parameters are used, these will be named gclcrs0, gclcrs1, etc. The table aliases used in SQL also all begin with gclcrs, to avoid conflicts.

Parameters
context | null$contextContext to restrict the query
string$coursetableName of alias for course table e.g. 'c'
int$paramtypeType of SQL parameters to use (default question mark)
Return values
arrayArray with SQL and parameters; both null if no need to query
Exceptions
coding_exceptionIf called with invalid params

◆ get_doc_icon()

core_search\base_mod::get_doc_icon ( document  $doc)
inherited

Returns an icon instance for the document.

Parameters
core_search::document$doc
Return values
core_search::document_icon

Reimplemented from core_search\base.

◆ get_doc_url() [1/2]

mod_data\search\entry::get_doc_url ( \core_search\document  $doc)

Link to database entry.

Parameters
core_search::document$doc
Return values
moodle_url

◆ get_doc_url() [2/2]

core_search\base::get_doc_url ( \core_search\document  $doc)
abstractinherited

Returns a url to the document, it might match self::get_context_url().

Parameters
core_search::document$doc
Return values
moodle_url

Reimplemented in core_search\base_activity, and core_search\base_block.

◆ get_document()

mod_data\search\entry::get_document (   $entry,
  $options = array() 
)

Returns the documents associated with this glossary entry id.

Parameters
stdClass$entryglossary entry.
array$options
Return values
core_search::document

Reimplemented from core_search\base.

◆ get_document_display_title()

core_search\base::get_document_display_title ( \core_search\document  $doc)
inherited

Returns the document title to display.

Allow to customize the document title string to display.

Parameters
core_search::document$doc
Return values
stringDocument title to display in the search results page

◆ get_document_recordset()

mod_data\search\entry::get_document_recordset (   $modifiedfrom = 0,
context  $context = null 
)

Returns recordset containing required data for indexing database entries.

Parameters
int$modifiedfromtimestamp
context | null$contextOptional context to restrict scope of returned results
Return values
moodle_recordset|nullRecordset (or null if no results)

Reimplemented from core_search\base.

◆ get_entry()

mod_data\search\entry::get_entry (   $entryid)
protected

Get database entry data.

Exceptions
dml_exception
Parameters
int$entryid
Return values
stdClass

◆ get_field_class_name()

mod_data\search\entry::get_field_class_name (   $fieldtype)
protected

Returns the class name for that field type and includes it.

Parameters
string$fieldtype
Return values
string

◆ get_fields_for_entries()

mod_data\search\entry::get_fields_for_entries (   $entry)
protected

get_fields_for_entries

Parameters
StdClass$entry
Return values
array

◆ get_last_indexing_duration()

core_search\base::get_last_indexing_duration ( )
inherited

Gets the length of time spent indexing this area (the last time it was indexed).

Return values
int|boolTime in seconds spent indexing this area last time, false if never indexed

◆ get_levels()

static core_search\base::get_levels ( )
staticinherited

Returns context levels property.

Return values
int

◆ get_module_name()

core_search\base_mod::get_module_name ( )
protectedinherited

Returns the module name.

Return values
string

◆ get_recordset_by_timestamp()

core_search\base::get_recordset_by_timestamp (   $modifiedfrom = 0)
inherited

Returns a recordset ordered by modification date ASC.

Each record can include any data self::get_document might need but it must:

  • Include an 'id' field: Unique identifier (in this area's scope) of a document to index in the search engine If the indexed content field can contain embedded files, the 'id' value should match the filearea itemid.
  • Only return data modified since $modifiedfrom, including $modifiedform to prevent some records from not being indexed (e.g. your-timemodified-fieldname >= $modifiedfrom)
  • Order the returned data by time modified in ascending order, as core_search::manager will need to store the modified time of the last indexed document.

Since Moodle 3.4, subclasses should instead implement get_document_recordset, which has an additional context parameter. This function continues to work for implementations which haven't been updated, or where the context parameter is not required.

Parameters
int$modifiedfrom
Return values
moodle_recordset

◆ get_search_fileareas()

core_search\base::get_search_fileareas ( )
inherited

◆ get_settingnames()

static core_search\base::get_settingnames ( )
staticinherited

Return a list of all required setting names.

Return values
array

◆ get_visible_name()

core_search\base::get_visible_name (   $lazyload = false)
inherited

Returns the area visible name.

Parameters
bool$lazyloadUsually false, unless when in admin settings.
Return values
string

◆ is_enabled()

core_search\base::is_enabled ( )
inherited

Is the search component enabled by the system administrator?

Return values
bool

◆ restrict_cm_access_by_group()

core_search\base_mod::restrict_cm_access_by_group ( \cm_info  $cm)
inherited

Checks whether the content of this search area should be restricted by group for a specific module.

Called at query time.

The default behaviour simply checks if the effective group mode is SEPARATEGROUPS, which is probably correct for most cases.

If restricted by group, the search query will (where supported by the engine) filter out results for groups the user does not belong to, unless the user has 'access all groups' for the activity. This affects only documents which set the 'groupid' field; results with no groupid will not be restricted.

Even if you return true to this function, you may still need to do group access checks in check_access, because the search engine may not support group restrictions.

Parameters
cm_info$cm
Return values
boolTrue to restrict by group

◆ supports_get_document_recordset()

core_search\base::supports_get_document_recordset ( )
inherited

Checks if get_document_recordset is supported for this search area.

For many uses you can simply call get_document_recordset and see if it returns false, but this function is useful when you don't want to actually call the function right away.

◆ supports_group_restriction()

mod_data\search\entry::supports_group_restriction ( )

Confirms that data entries support group restrictions.

Return values
boolTrue

Reimplemented from core_search\base_mod.

◆ uses_file_indexing()

mod_data\search\entry::uses_file_indexing ( )

Returns true if this area uses file indexing.

Return values
bool

Reimplemented from core_search\base.

Member Data Documentation

◆ $levels

array core_search\base_mod::$levels = [CONTEXT_MODULE]
staticprotectedinherited

The context levels the search area is working on.

This can be overwriten by the search area if it works at multiple levels.


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