本文整理汇总了PHP中VuFind\Search\Base\Results::getParams方法的典型用法代码示例。如果您正苦于以下问题:PHP Results::getParams方法的具体用法?PHP Results::getParams怎么用?PHP Results::getParams使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VuFind\Search\Base\Results
的用法示例。
在下文中一共展示了Results::getParams方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getAuthor
/**
* Takes the search term and extracts a normal name from it
*
* @return string
*/
protected function getAuthor()
{
$search = $this->searchObject->getParams()->getSearchTerms();
if (isset($search[0]['lookfor'])) {
$author = $search[0]['lookfor'];
// remove quotes
$author = str_replace('"', '', $author);
// remove dates
$author = preg_replace('/[0-9]+-[0-9]*/', '', $author);
// if name is rearranged by commas
$author = trim($author, ', .');
$nameParts = explode(', ', $author);
$last = $nameParts[0];
// - move all names up an index, move last name to last
// - Last, First M. -> First M. Last
for ($i = 1; $i < count($nameParts); $i++) {
$nameParts[$i - 1] = $nameParts[$i];
}
$nameParts[count($nameParts) - 1] = $last;
$author = implode($nameParts, ' ');
// remove punctuation
return $author;
}
return '';
}
示例2: getSuggestions
/**
* This method returns an array of strings matching the user's query for
* display in the autocomplete box.
*
* @param string $query The user query
*
* @return array The suggestions for the provided query
*/
public function getSuggestions($query)
{
if (!is_object($this->searchObject)) {
throw new \Exception('Please set configuration first.');
}
try {
$this->searchObject->getParams()->setBasicSearch($this->mungeQuery($query), $this->handler);
$this->searchObject->getParams()->setSort($this->sortField);
foreach ($this->filters as $current) {
$this->searchObject->getParams()->addFilter($current);
}
// Perform the search:
$searchResults = $this->searchObject->getResults();
// Build the recommendation list -- first we'll try with exact matches;
// if we don't get anything at all, we'll try again with a less strict
// set of rules.
$results = $this->getSuggestionsFromSearch($searchResults, $query, true);
if (empty($results)) {
$results = $this->getSuggestionsFromSearch($searchResults, $query, false);
}
} catch (\Exception $e) {
// Ignore errors -- just return empty results if we must.
}
return isset($results) ? array_unique($results) : [];
}
示例3: process
/**
* Called after the Search Results object has performed its main search. This
* may be used to extract necessary information from the Search Results object
* or to perform completely unrelated processing.
*
* @param \VuFind\Search\Base\Results $results Search results object
*
* @return void
*/
public function process($results)
{
$this->results = $results;
// We can't currently deal with advanced searches:
if ($this->results->getParams()->getSearchType() == 'advanced') {
return;
}
// Get the query to manipulate:
$query = $this->results->getParams()->getDisplayQuery();
// If the query is of a type that should be skipped, go no further:
if ($this->queryShouldBeSkipped($query)) {
return;
}
// Perform all checks (based on naming convention):
$methods = get_class_methods($this);
foreach ($methods as $method) {
if (substr($method, 0, 5) == 'check') {
$currentCheck = strtolower(substr($method, 5));
if (!in_array($currentCheck, $this->skipChecks)) {
if ($result = $this->{$method}($query)) {
$this->suggestions['switchquery_' . $currentCheck] = $result;
}
}
}
}
}
示例4: getIdentities
/**
* Get identities related to the query.
*
* @return array
*/
public function getIdentities()
{
// Extract the first search term from the search object:
$search = $this->searchObject->getParams()->getQuery();
$lookfor = $search instanceof Query ? $search->getString() : '';
// Get terminology information:
return $this->worldCatUtils->getRelatedIdentities($lookfor);
}
示例5: initUrlQueryHelper
/**
* Internal utility function for initializing
* UrlQueryHelper for a Results-object with search ids for all tabs.
*
* @param ResultsManager $results Search results.
* @param ServiceManager $sm Service manager.
*
* @return Results Search results with initialized UrlQueryHelper
*/
public static function initUrlQueryHelper(\VuFind\Search\Base\Results $results, $sm)
{
$helper = new UrlQueryHelper($results->getParams());
$savedSearches = $sm->getServiceLocator()->get('Request')->getQuery('search');
if ($savedSearches) {
$helper->setDefaultParameter('search', $savedSearches);
}
$results->setHelper('urlQuery', $helper);
return $results;
}
示例6: init
/**
* Initialize this result set scroller. This should only be called
* prior to displaying the results of a new search.
*
* @param \VuFind\Search\Base\Results $searchObject The search object that was
* used to execute the last search.
*
* @return bool
*/
public function init($searchObject)
{
// Do nothing if disabled:
if (!$this->enabled) {
return;
}
// Save the details of this search in the session
$this->data->searchId = $searchObject->getSearchId();
$this->data->page = $searchObject->getParams()->getPage();
$this->data->limit = $searchObject->getParams()->getLimit();
$this->data->total = $searchObject->getResultTotal();
// save the IDs of records on the current page to the session
// so we can "slide" from one record to the next/previous records
// spanning 2 consecutive pages
$this->data->currIds = $this->fetchPage($searchObject);
// clear the previous/next page
unset($this->data->prevIds);
unset($this->data->nextIds);
return true;
}
示例7: getAuthor
/**
* Takes the search term and extracts a normal name from it
*
* @return string
*/
protected function getAuthor()
{
$search = $this->searchObject->getParams()->getQuery();
if ($search instanceof Query) {
$author = $search->getString();
// remove quotes
$author = str_replace('"', '', $author);
return $this->useViaf ? $this->normalizeNameWithViaf($author) : $this->normalizeName($author);
}
return '';
}
示例8: __invoke
/**
* Turns facet information into an alphabetical list.
*
* @param \VuFind\Search\Base\Results $results Search result object
* @param string $field Facet field to sort
* @param array $list Facet value list extract from
* the search result object's getFacetList method
* @param array $searchRoute Route to use to generate
* search URLs for individual facet values
*
* @return array Associative URL => description array sorted by description
*/
public function __invoke($results, $field, $list, $searchRoute)
{
$facets = [];
// avoid limit on URL
$results->getParams()->setLimit($results->getOptions()->getDefaultLimit());
$urlHelper = $this->getView()->plugin('url');
foreach ($list as $value) {
$url = $urlHelper($searchRoute) . $results->getUrlQuery()->addFacet($field, $value['value']);
$facets[$url] = $value['displayText'];
}
natcasesort($facets);
return $facets;
}
示例9: __invoke
/**
* Return the count of records when checkbox filter is activated.
*
* @param array $checkboxFilter Checkbox filter
* @param \VuFind\Search\Base\Results $results Search result set
*
* @return int Record count
*/
public function __invoke($checkboxFilter, $results)
{
$ret = 0;
list($field, $value) = $results->getParams()->parseFilter($checkboxFilter['filter']);
$facets = $results->getFacetList([$field => $value]);
if (isset($facets[$field])) {
foreach ($facets[$field]['list'] as $item) {
if ($item['value'] == $value || substr($value, -1) == '*' && preg_match('/^' . $value . '/', $item['value']) || $item['value'] == 'true' && $value == '1' || $item['value'] == 'false' && $value == '0') {
$ret += $item['count'];
}
}
}
return $ret;
}
示例10: getApiInput
/**
* Get input parameters for API call.
*
* @return array
*/
protected function getApiInput()
{
// Extract the first search term from the search object:
$search = $this->searchObject->getParams()->getQuery();
$filters = $this->searchObject->getParams()->getFilters();
$lookfor = $search instanceof \VuFindSearch\Query\Query ? $search->getString() : '';
$params = ['q' => $lookfor, 'fields' => implode(',', $this->returnFields), 'api_key' => $this->apiKey];
foreach ($filters as $field => $filter) {
if (isset($this->formatMap[$field])) {
$params[$this->formatMap[$field]] = implode(',', $filter);
}
}
return $params;
}
示例11: __invoke
/**
* Represent the current search results as a feed.
*
* @param \VuFind\Search\Base\Results $results Search results to convert to
* feed
* @param string $currentPath Base path to display in feed
* (leave null to load dynamically using currentpath view helper)
*
* @return Feed
*/
public function __invoke($results, $currentPath = null)
{
$this->registerExtension();
// Determine base URL if not already provided:
if (is_null($currentPath)) {
$currentPath = $this->getView()->plugin('currentpath')->__invoke();
}
$serverUrl = $this->getView()->plugin('serverurl');
$baseUrl = $serverUrl($currentPath);
// Create the parent feed
$feed = new Feed();
$feed->setTitle($this->translate('Results for') . ' ' . $results->getParams()->getDisplayQuery());
$feed->setLink($baseUrl . $results->getUrlQuery()->setViewParam(null, false));
$feed->setFeedLink($baseUrl . $results->getUrlQuery()->getParams(false), $results->getParams()->getView());
$feed->setDescription($this->translate('Showing') . ' ' . $results->getStartRecord() . '-' . $results->getEndRecord() . ' ' . $this->translate('of') . ' ' . $results->getResultTotal());
$params = $results->getParams();
// add atom links for easier paging
$feed->addOpensearchLink($baseUrl . $results->getUrlQuery()->setPage(1, false), 'first', $params->getView());
if ($params->getPage() > 1) {
$feed->addOpensearchLink($baseUrl . $results->getUrlQuery()->setPage($params->getPage() - 1, false), 'previous', $params->getView());
}
$lastPage = ceil($results->getResultTotal() / $params->getLimit());
if ($params->getPage() < $lastPage) {
$feed->addOpensearchLink($baseUrl . $results->getUrlQuery()->setPage($params->getPage() + 1, false), 'next', $params->getView());
}
$feed->addOpensearchLink($baseUrl . $results->getUrlQuery()->setPage($lastPage, false), 'last', $params->getView());
// add opensearch fields
$feed->setOpensearchTotalResults($results->getResultTotal());
$feed->setOpensearchItemsPerPage($params->getLimit());
$feed->setOpensearchStartIndex($results->getStartRecord() - 1);
$feed->setOpensearchSearchTerms($params->getQuery()->getString());
$records = $results->getResults();
foreach ($records as $current) {
$this->addEntry($feed, $current);
}
return $feed;
}
示例12: processDateFacets
/**
* Support method for getVisData() -- extract details from applied filters.
*
* @param array $filters Current filter list
*
* @return array
*/
protected function processDateFacets($filters)
{
$result = [];
foreach ($this->dateFacets as $current) {
$from = $to = '';
if (isset($filters[$current])) {
foreach ($filters[$current] as $filter) {
if (preg_match('/\\[\\d+ TO \\d+\\]/', $filter)) {
$range = explode(' TO ', trim($filter, '[]'));
$from = $range[0] == '*' ? '' : $range[0];
$to = $range[1] == '*' ? '' : $range[1];
break;
}
}
}
$result[$current] = [$from, $to];
$result[$current]['label'] = $this->searchObject->getParams()->getFacetLabel($current);
}
return $result;
}
示例13: getTerms
/**
* Get terms related to the query.
*
* @return array
*/
public function getTerms()
{
// Extract the first search term from the search object:
$search = $this->searchObject->getParams()->getQuery();
$lookfor = $search instanceof Query ? $search->getString() : '';
// Get terminology information:
$terms = $this->worldCatUtils->getRelatedTerms($lookfor, $this->vocab);
// Wipe out any empty or unexpected sections of the related terms array;
// this will make it easier to only display content in the template if
// we have something worth displaying.
if (is_array($terms)) {
$desiredKeys = ['exact', 'broader', 'narrower'];
foreach ($terms as $key => $value) {
if (empty($value) || !in_array($key, $desiredKeys)) {
unset($terms[$key]);
}
}
}
return $terms;
}
示例14: __invoke
/**
* Return the count of records when checkbox filter is activated.
*
* @param array $checkboxFilter Checkbox filter
* @param \VuFind\Search\Base\Results $results Search result set
*
* @return int Record count
*/
public function __invoke($checkboxFilter, $results)
{
$ret = 0;
list($field, $value) = $results->getParams()->parseFilter($checkboxFilter['filter']);
$facets = $results->getFacetList([$field => $value]);
if (isset($facets[$field])) {
foreach ($facets[$field]['list'] as $item) {
if ($item['value'] == $value || substr($value, -1) == '*' && preg_match('/^' . $value . '/', $item['value']) || $item['value'] == 'true' && $value == '1' || $item['value'] == 'false' && $value == '0') {
$ret += $item['count'];
}
}
} elseif ($field == 'online_boolean' && $value == '1') {
// Special case for online_boolean, which is translated to online_str_mv
// when deduplication is enabled.
// If we don't have a facet value for online_boolean it means we need to
// do an additional lookup for online_str_mv.
$results = clone $results;
$params = $results->getParams();
$options = $results->getOptions();
$searchConfig = $this->getView()->getHelperPluginManager()->getServiceLocator()->get('VuFind\\Config')->get($options->getSearchIni());
if (!empty($searchConfig->Records->sources)) {
$sources = explode(',', $searchConfig->Records->sources);
$sources = array_map(function ($s) {
return "\"{$s}\"";
}, $sources);
$params->addFilter('(online_str_mv:' . implode(' OR online_str_mv:', $sources) . ')');
} else {
$params->addFilter('online_str_mv:*');
}
$params->setLimit(0);
$params->resetFacetConfig();
$options->disableHighlighting();
$options->spellcheckEnabled(false);
$results->performAndProcessSearch();
return $results->getResultTotal();
}
return $ret;
}
示例15: init
/**
* Called at the end of the Search Params objects' initFromRequest() method.
* This method is responsible for setting search parameters needed by the
* recommendation module and for reading any existing search parameters that may
* be needed.
*
* @param \VuFind\Search\Base\Params $params Search parameter object
* @param \Zend\StdLib\Parameters $request Parameter object representing user
* request.
*
* @return void
*/
public function init($params, $request)
{
// See if we can determine the label for the current search type; first
// check for an override in the GET parameters, then look at the incoming
// params object....
$typeLabel = $request->get('typeLabel');
$type = $request->get('type');
if (empty($typeLabel) && !empty($type)) {
$typeLabel = $params->getOptions()->getLabelForBasicHandler($type);
}
// Extract a search query:
$lookfor = $request->get($this->requestParam);
if (empty($lookfor) && is_object($params)) {
$lookfor = $params->getQuery()->getAllTerms();
}
// Set up the parameters:
$this->results = $this->resultsManager->get($this->getSearchClassId());
$params = $this->results->getParams();
$params->setLimit($this->limit);
$params->setBasicSearch($lookfor, $params->getOptions()->getHandlerForLabel($typeLabel));
// Perform the search:
$this->results->performAndProcessSearch();
}