VuFind API Documentation

GetSearchResults extends AbstractBase
in package
implements LoggerAwareInterface, TranslatorAwareInterface Uses TranslatorAwareTrait, LoggerAwareTrait

"Get Search Results" AJAX handler

Tags
category

VuFind

author

Ere Maijala ere.maijala@helsinki.fi

license

http://opensource.org/licenses/gpl-2.0.php GNU General Public License

link

Wiki

Interfaces, Classes, Traits and Enums

LoggerAwareInterface
TranslatorAwareInterface
Lightweight translator aware marker interface (used as an alternative to \Laminas\I18n\Translator\TranslatorAwareInterface, which requires an excessive number of methods to be implemented).

Table of Contents

$config  : array<string|int, mixed>
$elements  : array<string|int, mixed>
Elements to render for each search results page.
$recordLoader  : Loader
$renderer  : PhpRenderer
$resultsManager  : PluginManager
$searchMemory  : Memory
$searchNormalizer  : SearchNormalizer
$sessionId  : string
$sessionSettings  : Settings
Session settings
$translator  : TranslatorInterface
Translator
$user  : UserEntityInterface|null
__construct()  : mixed
Constructor
getTranslator()  : TranslatorInterface
Get translator object.
getTranslatorLocale()  : string
Get the locale from the translator.
handleRequest()  : array<string|int, mixed>
Handle a request.
setTranslator()  : TranslatorAwareInterface
Set a translator
translate()  : string
Translate a string (or string-castable object)
translateWithPrefix()  : string
Translate a string (or string-castable object) using a prefix, or without the prefix if a prefixed translation is not found.
debug()  : void
Log a debug message.
disableSessionWrites()  : void
Prevent session writes -- this is designed to be called prior to time- consuming AJAX operations to help reduce the odds of a timing-related bug that causes the wrong version of session data to be written to disk (see VUFIND-716 for more details).
extractTextDomain()  : array<string|int, mixed>
Given a translation string with or without a text domain, return an array with the raw string and the text domain separated.
formatResponse()  : array<string|int, mixed>
Format a response array.
getDebugTranslation()  : string
Build a debug-mode translation
getElements()  : array<string|int, mixed>
Render page elements
getSearchResults()  : Results|null
Get search results
log()  : void
Send a message to the logger.
logError()  : void
Log an error message.
logWarning()  : void
Log a warning message.
renderAnalytics()  : string|null
Render analytics
renderPagination()  : string|null
Render pagination
renderPaginationSimple()  : string|null
Render simple pagination
renderPaginationTop()  : string|null
Render top pagination
renderResults()  : string|null
Render search results
renderSearchStats()  : string|null
Render search stats
sanitizeTranslationKey()  : string
Make sure there are not any illegal characters in the translation key that might prevent successful lookup in language files.
saveSearchToHistory()  : void
Save a search to the history in the database.
translateString()  : string
Get translation for a string

Properties

$elements

Elements to render for each search results page.

protected array<string|int, mixed> $elements = ['.js-pagination.js-pagination__top' => ['method' => 'renderPaginationTop', 'target' => 'outer'], '.js-pagination:not(.js-pagination__top)' => ['method' => 'renderPagination', 'target' => 'outer'], '.js-pagination-simple' => ['method' => 'renderPaginationSimple', 'target' => 'outer'], '.js-search-stats' => ['method' => 'renderSearchStats', 'target' => 'inner', 'attrs' => ['aria-live' => 'polite']], '.js-result-list' => ['method' => 'renderResults', 'target' => 'outer'], 'head' => ['method' => 'renderAnalytics', 'target' => null]]

Note that results list is last before scripts so that we update most controls before hiding the loading indicator (in practice this only affects tests).

Key is a selector that finds all elements to update. Value is an associative array with the following keys:

method Method to create the response content target Target attribute in the element for the content (inner for innerHTML, outer for outerHTML or null for none) attrs New attributes for the element

Methods

__construct()

Constructor

public __construct(Settings $sessionSettings, PluginManager $resultsManager, PhpRenderer $renderer, Loader $recordLoader, UserEntityInterface|null $user, string $sessionId, SearchNormalizer $searchNormalizer, array<string|int, mixed> $config, Memory $searchMemory) : mixed
Parameters
$sessionSettings : Settings

Session settings

$resultsManager : PluginManager

Results Manager

$renderer : PhpRenderer

View renderer

$recordLoader : Loader

Record loader

$user : UserEntityInterface|null

Logged-in user

$sessionId : string

Session ID

$searchNormalizer : SearchNormalizer

Search normalizer

$config : array<string|int, mixed>

Main configuration

$searchMemory : Memory

Search memory

Return values
mixed

getTranslator()

Get translator object.

public getTranslator() : TranslatorInterface
Return values
TranslatorInterface

getTranslatorLocale()

Get the locale from the translator.

public getTranslatorLocale([string $default = 'en' ]) : string
Parameters
$default : string = 'en'

Default to use if translator absent.

Return values
string

handleRequest()

Handle a request.

public handleRequest(Params $requestParams) : array<string|int, mixed>
Parameters
$requestParams : Params

Parameter helper from controller

Return values
array<string|int, mixed>

[response data, HTTP status code]

translate()

Translate a string (or string-castable object)

public translate(string|object|array<string|int, mixed> $target[, array<string|int, mixed> $tokens = [] ][, string $default = null ][, bool $useIcuFormatter = false ][, array<string|int, string> $fallbackDomains = [] ]) : string
Parameters
$target : string|object|array<string|int, mixed>

String to translate or an array of text domain and string to translate

$tokens : array<string|int, mixed> = []

Tokens to inject into the translated string

$default : string = null

Default value to use if no translation is found (null for no default).

$useIcuFormatter : bool = false

Should we use an ICU message formatter instead of the default behavior?

$fallbackDomains : array<string|int, string> = []

Text domains to check if no match is found in the domain specified in $target

Return values
string

translateWithPrefix()

Translate a string (or string-castable object) using a prefix, or without the prefix if a prefixed translation is not found.

public translateWithPrefix(string $prefix, string|object|array<string|int, mixed> $target[, array<string|int, mixed> $tokens = [] ][, string $default = null ][, bool $useIcuFormatter = false ][, array<string|int, string> $fallbackDomains = [] ]) : string
Parameters
$prefix : string

Translation key prefix

$target : string|object|array<string|int, mixed>

String to translate or an array of text domain and string to translate

$tokens : array<string|int, mixed> = []

Tokens to inject into the translated string

$default : string = null

Default value to use if no translation is found (null for no default).

$useIcuFormatter : bool = false

Should we use an ICU message formatter instead of the default behavior?

$fallbackDomains : array<string|int, string> = []

Text domains to check if no match is found in the domain specified in $target

Return values
string

debug()

Log a debug message.

protected debug(string $msg[, array<string|int, mixed> $context = [] ][, bool $prependClass = true ]) : void
Parameters
$msg : string

Log message

$context : array<string|int, mixed> = []

Log context

$prependClass : bool = true

Prepend class name to message?

Return values
void

disableSessionWrites()

Prevent session writes -- this is designed to be called prior to time- consuming AJAX operations to help reduce the odds of a timing-related bug that causes the wrong version of session data to be written to disk (see VUFIND-716 for more details).

protected disableSessionWrites() : void
Return values
void

extractTextDomain()

Given a translation string with or without a text domain, return an array with the raw string and the text domain separated.

protected extractTextDomain(string|object|array<string|int, mixed> $target) : array<string|int, mixed>
Parameters
$target : string|object|array<string|int, mixed>

String to translate or an array of text domain and string to translate

Return values
array<string|int, mixed>

formatResponse()

Format a response array.

protected formatResponse(mixed $response[, int $httpCode = null ]) : array<string|int, mixed>
Parameters
$response : mixed

Response data

$httpCode : int = null

HTTP status code (omit for default)

Return values
array<string|int, mixed>

getDebugTranslation()

Build a debug-mode translation

protected getDebugTranslation(string $domain, string $str, array<string|int, mixed> $tokens) : string
Parameters
$domain : string

Text domain

$str : string

String to translate

$tokens : array<string|int, mixed>

Tokens to inject into the translated string

Return values
string

getElements()

Render page elements

protected getElements(Params $requestParams, Results $results) : array<string|int, mixed>
Parameters
$requestParams : Params

Request params

$results : Results

Search results

Return values
array<string|int, mixed>

getSearchResults()

Get search results

protected getSearchResults(Params $requestParams) : Results|null
Parameters
$requestParams : Params

Request params

Return values
Results|null

log()

Send a message to the logger.

protected log(string $level, string $message[, array<string|int, mixed> $context = [] ][, bool $prependClass = false ]) : void
Parameters
$level : string

Log level

$message : string

Log message

$context : array<string|int, mixed> = []

Log context

$prependClass : bool = false

Prepend class name to message?

Return values
void

logError()

Log an error message.

protected logError(string $msg[, array<string|int, mixed> $context = [] ][, bool $prependClass = true ]) : void
Parameters
$msg : string

Log message

$context : array<string|int, mixed> = []

Log context

$prependClass : bool = true

Prepend class name to message?

Return values
void

logWarning()

Log a warning message.

protected logWarning(string $msg[, array<string|int, mixed> $context = [] ][, bool $prependClass = true ]) : void
Parameters
$msg : string

Log message

$context : array<string|int, mixed> = []

Log context

$prependClass : bool = true

Prepend class name to message?

Return values
void

renderAnalytics()

Render analytics

protected renderAnalytics(Params $requestParams, Results $results) : string|null
Parameters
$requestParams : Params

Request params

$results : Results

Search results

Return values
string|null

renderPagination()

Render pagination

protected renderPagination(Params $requestParams, Results $results[, string $template = 'search/pagination.phtml' ][, string $ulClass = '' ][, string $navClass = '' ]) : string|null
Parameters
$requestParams : Params

Request params

$results : Results

Search results

$template : string = 'search/pagination.phtml'

Paginator template

$ulClass : string = ''

Additional class for the pagination container

$navClass : string = ''

Additional class for the nav element

Return values
string|null

renderPaginationSimple()

Render simple pagination

protected renderPaginationSimple(Params $requestParams, Results $results) : string|null
Parameters
$requestParams : Params

Request params

$results : Results

Search results

Return values
string|null

renderPaginationTop()

Render top pagination

protected renderPaginationTop(Params $requestParams, Results $results) : string|null
Parameters
$requestParams : Params

Request params

$results : Results

Search results

Return values
string|null

renderResults()

Render search results

protected renderResults(Params $requestParams, Results $results) : string|null
Parameters
$requestParams : Params

Request params

$results : Results

Search results

Return values
string|null

renderSearchStats()

Render search stats

protected renderSearchStats(Params $requestParams, Results $results) : string|null
Parameters
$requestParams : Params

Request params

$results : Results

Search results

Return values
string|null

sanitizeTranslationKey()

Make sure there are not any illegal characters in the translation key that might prevent successful lookup in language files.

protected sanitizeTranslationKey(string $key) : string
Parameters
$key : string

Key to sanitize

Return values
string

Sanitized key

saveSearchToHistory()

Save a search to the history in the database.

protected saveSearchToHistory(Results $results) : void
Parameters
$results : Results

Search results

Return values
void

translateString()

Get translation for a string

protected translateString(string $rawStr[, array<string|int, mixed> $tokens = [] ][, string $default = null ][, string $domain = 'default' ][, bool $useIcuFormatter = false ]) : string
Parameters
$rawStr : string

String to translate

$tokens : array<string|int, mixed> = []

Tokens to inject into the translated string

$default : string = null

Default value to use if no translation is found (null for no default).

$domain : string = 'default'

Text domain (omit for default)

$useIcuFormatter : bool = false

Should we use an ICU message formatter instead of the default behavior?

Return values
string

Search results