GetSearchResults
extends AbstractBase
in package
implements
LoggerAwareInterface, TranslatorAwareInterface
Uses
TranslatorAwareTrait, LoggerAwareTrait
"Get Search Results" AJAX handler
Tags
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
$config
protected
array<string|int, mixed>
$config
$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
$recordLoader
protected
Loader
$recordLoader
$renderer
protected
PhpRenderer
$renderer
$resultsManager
protected
PluginManager
$resultsManager
$searchMemory
protected
Memory
$searchMemory
$searchNormalizer
protected
SearchNormalizer
$searchNormalizer
$sessionId
protected
string
$sessionId
$sessionSettings
Session settings
protected
Settings
$sessionSettings
= null
$translator
Translator
protected
TranslatorInterface
$translator
= null
$user
protected
UserEntityInterface|null
$user
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]
setTranslator()
Set a translator
public
setTranslator(TranslatorInterface $translator) : TranslatorAwareInterface
Parameters
- $translator : TranslatorInterface
-
Translator
Return values
TranslatorAwareInterface —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?