コード例 #1
0
ファイル: Piwik.php プロジェクト: jlehmus/NDL-VuFind2
 /**
  * Get Custom Variables for Search Results
  *
  * @param VuFind\Search\Base\Results $results Search results
  *
  * @return array Associative array of custom variables
  */
 protected function getSearchCustomVars($results)
 {
     if (!$this->customVars) {
         return [];
     }
     $vars = parent::getSearchCustomVars($results);
     $facetType = null;
     $facets = [];
     $facetTypes = [];
     $params = $results->getParams();
     if ($params->getSearchType() == 'basic') {
         $vars['SearchHandler'] = $results->getParams()->getQuery()->getHandler();
     }
     $currentType = $vars['SearchType'];
     $backendId = method_exists($results, 'getBackendId') ? $results->getBackendId() : '';
     if ($backendId === 'MetaLib') {
         unset($vars['Facets']);
         unset($vars['FacetTypes']);
         unset($vars['View']);
         unset($vars['Limit']);
         unset($vars['Sort']);
         $vars['SearchType'] = 'MetaLib';
         if ($currentType == 'advanced') {
             $vars['SearchType'] = 'MetaLibAdvanced';
         }
         return $vars;
     } else {
         if ($backendId == 'Primo') {
             unset($vars['View']);
             $vars['SearchType'] = 'PCI';
             if ($currentType == 'advanced') {
                 $vars['SearchType'] = 'PCIAdvanced';
             }
         }
     }
     foreach ($params->getFilterList() as $filterType => $filters) {
         $facetType = null;
         foreach ($filters as $filter) {
             if (!$facetType) {
                 $facetTypes[] = $filter['field'];
             }
             $parts = $filter['value'];
             if ($backendId === 'Solr') {
                 $parts = explode('/', $parts);
                 $parts = array_slice($parts, 1, -1);
                 $facetLevels = [];
                 for ($i = 0; $i < count($parts); $i++) {
                     $facetLevel = "{$i}/";
                     for ($j = 0; $j <= $i; $j++) {
                         $facetLevel .= $parts[$j] . '/';
                     }
                     $facetLevels[] = $this->translator->translate($facetLevel);
                 }
                 $facetStr = implode(' > ', $facetLevels);
             } else {
                 $facetStr = $parts;
             }
             $facets[] = $filter['field'] . '|' . $facetStr;
         }
     }
     $vars['Facets'] = implode("\t", $facets);
     $vars['FacetTypes'] = implode("\t", $facetTypes);
     return $vars;
 }