* http://www.CollectiveAccess.org
 *
 * ----------------------------------------------------------------------
 */
$qr_results = $this->getVar('result');
$va_block_info = $this->getVar('blockInfo');
$vs_block = $this->getVar('block');
$vn_start = (int) $this->getVar('start');
// offset to seek to before outputting results
$vn_hits_per_block = (int) $this->getVar('itemsPerPage');
$vn_items_per_column = (int) $this->getVar('itemsPerColumn');
$vb_has_more = (bool) $this->getVar('hasMore');
$vs_search = (string) $this->getVar('search');
$vn_init_with_start = (int) $this->getVar('initializeWithStart');
$o_config = $this->getVar("config");
$o_browse_config = caGetBrowseConfig();
$va_browse_types = array_keys($o_browse_config->get("browseTypes"));
if ($qr_results->numHits() > 0) {
    if (!$this->request->isAjax()) {
        ?>
			<small class="pull-right">
<?php 
        if (in_array($vs_block, $va_browse_types)) {
            ?>
				<span class='multisearchFullResults'><?php 
            print caNavLink($this->request, '<span class="glyphicon glyphicon-list"></span> ' . _t('Full results'), '', '', 'Search', '{{{block}}}', array('search' => $vs_search));
            ?>
</span> | 
<?php 
        }
        ?>
Example #2
0
/**
 * 
 *
 * @return array 
 */
function caGetBrowseTypes()
{
    $o_browse_config = caGetBrowseConfig();
    return $o_browse_config->getAssoc('browseTypes');
}
Example #3
0
 /**
  *
  */
 public function __call($ps_function, $pa_args)
 {
     $o_config = caGetBrowseConfig();
     $o_search_config = caGetSearchConfig();
     $pa_options = array_shift($pa_args);
     $vb_is_advanced = (bool) $this->request->getParameter('_advanced', pInteger);
     $vs_find_type = $vb_is_advanced ? $this->ops_find_type . '_advanced' : $this->ops_find_type;
     $this->view->setVar("config", $o_config);
     $ps_function = strtolower($ps_function);
     $ps_type = $this->request->getActionExtra();
     $this->view->setVar("browse_type", $ps_function);
     if (!($va_browse_info = caGetInfoForBrowseType($ps_function))) {
         // invalid browse type – throw error
         die("Invalid browse type {$ps_function}");
     }
     $vs_class = $va_browse_info['table'];
     $va_types = caGetOption('restrictToTypes', $va_browse_info, array(), array('castTo' => 'array'));
     $this->opo_result_context = new ResultContext($this->request, $va_browse_info['table'], $vs_find_type);
     $this->opo_result_context->setAsLastFind();
     MetaTagManager::setWindowTitle($this->request->config->get("app_display_name") . ": " . _t("Search %1", $va_browse_info["displayName"]) . ": " . $this->opo_result_context->getSearchExpression());
     if ($vb_is_advanced) {
         $this->opo_result_context->setSearchExpression(caGetQueryStringForHTMLFormInput($this->opo_result_context));
     }
     $this->view->setVar('browseInfo', $va_browse_info);
     $this->view->setVar('options', caGetOption('options', $va_browse_info, array(), array('castTo' => 'array')));
     $ps_view = caGetOption('view', $pa_options, $this->request->getParameter('view', pString));
     $va_views = caGetOption('views', $va_browse_info, array(), array('castTo' => 'array'));
     if (!is_array($va_views) || sizeof($va_views) == 0) {
         $va_views = array('list' => array(), 'images' => array(), 'timeline' => array(), 'map' => array(), 'timelineData' => array(), 'pdf' => array());
     } else {
         $va_views['pdf'] = array();
     }
     if (!in_array($ps_view, array_keys($va_views))) {
         $ps_view = array_shift(array_keys($va_views));
     }
     $vs_format = $ps_view == 'timelineData' ? 'json' : 'html';
     #caAddPageCSSClasses(array($vs_class, $ps_function, $ps_view));
     caAddPageCSSClasses(array($vs_class, $ps_function));
     $this->view->setVar('isNav', (bool) $this->request->getParameter('isNav', pInteger));
     // flag for browses that originate from nav bar
     $t_instance = $this->getAppDatamodel()->getInstanceByTableName($vs_class, true);
     $vn_type_id = $t_instance->getTypeIDForCode($ps_type);
     $this->view->setVar('t_instance', $t_instance);
     $this->view->setVar('table', $va_browse_info['table']);
     $this->view->setVar('primaryKey', $t_instance->primaryKey());
     $this->view->setVar('browse', $o_browse = caGetBrowseInstance($vs_class));
     $this->view->setVar('views', caGetOption('views', $va_browse_info, array(), array('castTo' => 'array')));
     $this->view->setVar('view', $ps_view);
     $this->view->setVar('viewIcons', $o_config->getAssoc("views"));
     //
     // Load existing browse if key is specified
     //
     if ($ps_cache_key = $this->request->getParameter('key', pString)) {
         $o_browse->reload($ps_cache_key);
     }
     if (is_array($va_types) && sizeof($va_types)) {
         $o_browse->setTypeRestrictions($va_types);
     }
     //
     // Clear criteria if required
     //
     if ($vs_remove_criterion = $this->request->getParameter('removeCriterion', pString)) {
         $o_browse->removeCriteria($vs_remove_criterion, array($this->request->getParameter('removeID', pString)));
     }
     if ((bool) $this->request->getParameter('clear', pInteger)) {
         $o_browse->removeAllCriteria();
     }
     if ($this->request->getParameter('getFacet', pInteger)) {
         $vs_facet = $this->request->getParameter('facet', pString);
         $this->view->setVar('facet_name', $vs_facet);
         $this->view->setVar('key', $o_browse->getBrowseID());
         $va_facet_info = $o_browse->getInfoForFacet($vs_facet);
         $this->view->setVar('facet_info', $va_facet_info);
         # --- pull in different views based on format for facet - alphabetical, list, hierarchy
         switch ($va_facet_info["group_mode"]) {
             case "alphabetical":
             case "list":
             default:
                 $this->view->setVar('facet_content', $o_browse->getFacetContent($vs_facet, array("checkAccess" => $this->opa_access_values)));
                 $this->render("Browse/list_facet_html.php");
                 break;
             case "hierarchical":
                 $this->render("Browse/hierarchy_facet_html.php");
                 break;
         }
         return;
     }
     //
     // Add criteria and execute
     //
     $vs_search_expression = $this->opo_result_context->getSearchExpression();
     if ($vs_facet = $this->request->getParameter('facet', pString)) {
         $o_browse->addCriteria($vs_facet, array($this->request->getParameter('id', pString)));
     } else {
         if ($o_browse->numCriteria() == 0) {
             $o_browse->addCriteria("_search", array($vs_search_expression . ($o_search_config->get('matchOnStem') && !preg_match('!\\*$!', $vs_search_expression) && preg_match('![\\w]+$!', $vs_search_expression) ? '*' : '')));
         }
     }
     //
     // Sorting
     //
     $vb_sort_changed = false;
     $o_block_result_context = null;
     if (!($ps_sort = $this->request->getParameter("sort", pString))) {
         // inherit sort setting from multisearch? (used when linking to full results from multisearch result)
         if ($this->request->getParameter("source", pString) === 'multisearch') {
             $o_block_result_context = new ResultContext($this->request, $va_browse_info['table'], 'multisearch', $ps_function);
             if ($ps_sort !== $o_block_result_context->getCurrentSort() && $o_block_result_context->getCurrentSort()) {
                 $ps_sort = $o_block_result_context->getCurrentSort();
                 $vb_sort_changed = true;
             }
         }
         if (!$ps_sort && !($ps_sort = $this->opo_result_context->getCurrentSort())) {
             if (is_array($va_sorts = caGetOption('sortBy', $va_browse_info, null))) {
                 $ps_sort = array_shift(array_keys($va_sorts));
                 $vb_sort_changed = true;
             }
         }
     } else {
         $vb_sort_changed = true;
     }
     if ($vb_sort_changed) {
         # --- set the default sortDirection if available
         $va_sort_direction = caGetOption('sortDirection', $va_browse_info, null);
         if ($ps_sort_direction = $va_sort_direction[$ps_sort]) {
             $this->opo_result_context->setCurrentSortDirection($ps_sort_direction);
         }
     }
     if (!($ps_sort_direction = $this->request->getParameter("direction", pString))) {
         if (!($ps_sort_direction = $this->opo_result_context->getCurrentSortDirection())) {
             $ps_sort_direction = 'asc';
         }
     }
     $this->opo_result_context->setCurrentSort($ps_sort);
     $this->opo_result_context->setCurrentSortDirection($ps_sort_direction);
     $va_sort_by = caGetOption('sortBy', $va_browse_info, null);
     $this->view->setVar('sortBy', is_array($va_sort_by) ? $va_sort_by : null);
     $this->view->setVar('sortBySelect', $vs_sort_by_select = is_array($va_sort_by) ? caHTMLSelect("sort", $va_sort_by, array('id' => "sort"), array("value" => $ps_sort)) : '');
     $this->view->setVar('sortControl', $vs_sort_by_select ? _t('Sort with %1', $vs_sort_by_select) : '');
     $this->view->setVar('sort', $ps_sort);
     $this->view->setVar('sort_direction', $ps_sort_direction);
     $va_options = array('checkAccess' => $this->opa_access_values);
     if ($va_restrict_to_fields = caGetOption('restrictSearchToFields', $va_browse_info, null)) {
         $va_options['restrictSearchToFields'] = $va_restrict_to_fields;
     }
     if (caGetOption('dontShowChildren', $va_browse_info, false)) {
         $o_browse->addResultFilter('ca_objects.parent_id', 'is', 'null');
     }
     $o_browse->execute($va_options);
     //
     // Facets
     //
     if ($vs_facet_group = caGetOption('facetGroup', $va_browse_info, null)) {
         $o_browse->setFacetGroup($vs_facet_group);
     }
     $va_available_facet_list = caGetOption('availableFacets', $va_browse_info, null);
     $va_facets = $o_browse->getInfoForAvailableFacets();
     if (is_array($va_available_facet_list) && sizeof($va_available_facet_list)) {
         foreach ($va_facets as $vs_facet_name => $va_facet_info) {
             if (!in_array($vs_facet_name, $va_available_facet_list)) {
                 unset($va_facets[$vs_facet_name]);
             }
         }
     }
     foreach ($va_facets as $vs_facet_name => $va_facet_info) {
         $va_facets[$vs_facet_name]['content'] = $o_browse->getFacetContent($vs_facet_name, array("checkAccess" => $this->opa_access_values));
     }
     $this->view->setVar('facets', $va_facets);
     $this->view->setVar('key', $vs_key = $o_browse->getBrowseID());
     $this->request->session->setVar($ps_function . '_last_browse_id', $vs_key);
     //
     // Current criteria
     //
     $va_criteria = $o_browse->getCriteriaWithLabels();
     if (isset($va_criteria['_search']) && isset($va_criteria['_search']['*'])) {
         unset($va_criteria['_search']);
     }
     $va_criteria_for_display = array();
     foreach ($va_criteria as $vs_facet_name => $va_criterion) {
         $va_facet_info = $o_browse->getInfoForFacet($vs_facet_name);
         foreach ($va_criterion as $vn_criterion_id => $vs_criterion) {
             $va_criteria_for_display[] = array('facet' => $va_facet_info['label_singular'], 'facet_name' => $vs_facet_name, 'value' => $vs_criterion, 'id' => $vn_criterion_id);
         }
     }
     $this->view->setVar('criteria', $va_criteria_for_display);
     //
     // Results
     //
     $qr_res = $o_browse->getResults(array('sort' => $va_sort_by[$ps_sort], 'sort_direction' => $ps_sort_direction));
     $this->view->setVar('result', $qr_res);
     if (!($pn_hits_per_block = $this->request->getParameter("n", pString))) {
         if (!($pn_hits_per_block = $this->opo_result_context->getItemsPerPage())) {
             $pn_hits_per_block = $o_config->get("defaultHitsPerBlock");
         }
     }
     $this->opo_result_context->getItemsPerPage($pn_hits_per_block);
     $this->view->setVar('hits_per_block', $pn_hits_per_block);
     $this->view->setVar('start', $vn_start = $this->request->getParameter('s', pInteger));
     $this->opo_result_context->setParameter('key', $vs_key);
     if (($vn_key_start = $vn_start - 500) < 0) {
         $vn_key_start = 0;
     }
     $qr_res->seek($vn_key_start);
     $this->opo_result_context->setResultList($qr_res->getPrimaryKeyValues(1000));
     if ($o_block_result_context) {
         $o_block_result_context->setResultList($qr_res->getPrimaryKeyValues(1000));
         $o_block_result_context->saveContext();
     }
     $qr_res->seek($vn_start);
     $this->opo_result_context->saveContext();
     if ($vn_type_id) {
         if ($this->render("Browse/{$vs_class}_{$vs_type}_{$ps_view}_{$vs_format}.php")) {
             return;
         }
     }
     switch ($ps_view) {
         case 'pdf':
             $this->_genExport($qr_res, $this->request->getParameter("export_format", pString), $vs_search_expression, $vs_search_expression);
             break;
         case 'timelineData':
             $this->view->setVar('view', 'timeline');
             $this->render("Browse/browse_results_timelineData_json.php");
             break;
         default:
             $this->render("Browse/browse_results_html.php");
             break;
     }
 }
Example #4
0
 /**
  *
  */
 public function __call($ps_function, $pa_args)
 {
     $o_config = caGetBrowseConfig();
     $this->view->setVar("config", $o_config);
     $ps_function = strtolower($ps_function);
     $ps_type = $this->request->getActionExtra();
     if (!($va_browse_info = caGetInfoForBrowseType($ps_function))) {
         // invalid browse type – throw error
         die("Invalid browse type");
     }
     MetaTagManager::setWindowTitle($this->request->config->get("app_display_name") . ": " . _t("Browse %1", $va_browse_info["displayName"]));
     $this->view->setVar("browse_type", $ps_function);
     $vs_class = $va_browse_info['table'];
     $va_types = caGetOption('restrictToTypes', $va_browse_info, array(), array('castTo' => 'array'));
     $this->opo_result_context = new ResultContext($this->request, $va_browse_info['table'], $this->ops_find_type);
     // Don't set last find when loading facet, as some other controllers use this action and setting
     // last find will disrupt ResultContext navigation by setting it to "browse" when in fact a search (or some other
     // context) is still in effect.
     if (!$this->request->getParameter('getFacet', pInteger)) {
         $this->opo_result_context->setAsLastFind();
     }
     $this->view->setVar('browseInfo', $va_browse_info);
     $this->view->setVar('paging', in_array(strtolower($va_browse_info['paging']), array('continous', 'nextprevious', 'letter')) ? strtolower($va_browse_info['paging']) : 'continous');
     $this->view->setVar('name', $va_browse_info['displayName']);
     $this->view->setVar('options', caGetOption('options', $va_browse_info, array(), array('castTo' => 'array')));
     $ps_view = $this->request->getParameter('view', pString);
     $va_views = caGetOption('views', $va_browse_info, array(), array('castTo' => 'array'));
     if (!is_array($va_views) || sizeof($va_views) == 0) {
         $va_views = array('list' => array(), 'images' => array(), 'timeline' => array(), 'map' => array(), 'timelineData' => array(), 'pdf' => array());
     } else {
         $va_views['pdf'] = array();
         $va_views['timelineData'] = array();
     }
     if (!in_array($ps_view, array_keys($va_views))) {
         $ps_view = array_shift(array_keys($va_views));
     }
     $vs_format = $ps_view == 'timelineData' ? 'json' : 'html';
     caAddPageCSSClasses(array($vs_class, $ps_function));
     $this->view->setVar('isNav', $vb_is_nav = (bool) $this->request->getParameter('isNav', pInteger));
     // flag for browses that originate from nav bar
     $t_instance = $this->getAppDatamodel()->getInstanceByTableName($vs_class, true);
     $vn_type_id = $t_instance->getTypeIDForCode($ps_type);
     $this->view->setVar('t_instance', $t_instance);
     $this->view->setVar('table', $va_browse_info['table']);
     $this->view->setVar('primaryKey', $t_instance->primaryKey());
     $this->view->setVar('browse', $o_browse = caGetBrowseInstance($vs_class));
     $this->view->setVar('views', caGetOption('views', $va_browse_info, array(), array('castTo' => 'array')));
     $this->view->setVar('view', $ps_view);
     $this->view->setVar('viewIcons', $o_config->getAssoc("views"));
     //
     // Load existing browse if key is specified
     //
     if ($ps_cache_key = $this->request->getParameter('key', pString)) {
         $o_browse->reload($ps_cache_key);
     }
     if (is_array($va_types) && sizeof($va_types)) {
         $o_browse->setTypeRestrictions($va_types, array('dontExpandHierarchically' => caGetOption('dontExpandTypesHierarchically', $va_browse_info, false)));
     }
     //
     // Clear criteria if required
     //
     if ($vs_remove_criterion = $this->request->getParameter('removeCriterion', pString)) {
         $o_browse->removeCriteria($vs_remove_criterion, array($this->request->getParameter('removeID', pString)));
     }
     if ((bool) $this->request->getParameter('clear', pInteger)) {
         $o_browse->removeAllCriteria();
     }
     //
     // Return facet content
     //
     if ($this->request->getParameter('getFacet', pInteger)) {
         $vs_facet = $this->request->getParameter('facet', pString);
         $vn_s = $vb_is_nav ? $this->request->getParameter('s', pInteger) : 0;
         // start menu-based browse menu facet data at page boundary; all others get the full facet
         $this->view->setVar('start', $vn_s);
         $this->view->setVar('limit', $vn_limit = $vb_is_nav ? 500 : null);
         // break facet into pages for menu-based browse menu
         $this->view->setVar('facet_name', $vs_facet);
         $this->view->setVar('key', $o_browse->getBrowseID());
         $this->view->setVar('facet_info', $va_facet_info = $o_browse->getInfoForFacet($vs_facet));
         # --- pull in different views based on format for facet - alphabetical, list, hierarchy
         switch ($va_facet_info["group_mode"]) {
             case "alphabetical":
             case "list":
             default:
                 $this->view->setVar('facet_content', $o_browse->getFacet($vs_facet, array("checkAccess" => $this->opa_access_values, 'start' => $vn_s, 'limit' => $vn_limit)));
                 $this->render("Browse/list_facet_html.php");
                 break;
             case "hierarchical":
                 $this->render("Browse/hierarchy_facet_html.php");
                 break;
         }
         return;
     }
     //
     // Add criteria and execute
     //
     // Get any preset-criteria
     $va_base_criteria = caGetOption('baseCriteria', $va_browse_info, null);
     if ($vs_facet = $this->request->getParameter('facet', pString)) {
         $o_browse->addCriteria($vs_facet, array($this->request->getParameter('id', pString)));
     } else {
         if ($o_browse->numCriteria() == 0) {
             if (is_array($va_base_criteria)) {
                 foreach ($va_base_criteria as $vs_facet => $vs_value) {
                     $o_browse->addCriteria($vs_facet, $vs_value);
                 }
             } else {
                 $o_browse->addCriteria("_search", array("*"));
             }
         }
     }
     //
     // Sorting
     //
     $vb_sort_changed = false;
     if (!($ps_sort = $this->request->getParameter("sort", pString))) {
         if (!($ps_sort = $this->opo_result_context->getCurrentSort())) {
             if (is_array($va_sorts = caGetOption('sortBy', $va_browse_info, null))) {
                 $ps_sort = array_shift(array_keys($va_sorts));
                 $vb_sort_changed = true;
             }
         }
     } else {
         $vb_sort_changed = true;
     }
     if ($vb_sort_changed) {
         # --- set the default sortDirection if available
         $va_sort_direction = caGetOption('sortDirection', $va_browse_info, null);
         if ($ps_sort_direction = $va_sort_direction[$ps_sort]) {
             $this->opo_result_context->setCurrentSortDirection($ps_sort_direction);
         }
     }
     if (!($ps_sort_direction = $this->request->getParameter("direction", pString))) {
         if (!($ps_sort_direction = $this->opo_result_context->getCurrentSortDirection())) {
             $ps_sort_direction = 'asc';
         }
     }
     $this->opo_result_context->setCurrentSort($ps_sort);
     $this->opo_result_context->setCurrentSortDirection($ps_sort_direction);
     $va_sort_by = caGetOption('sortBy', $va_browse_info, null);
     $this->view->setVar('sortBy', is_array($va_sort_by) ? $va_sort_by : null);
     $this->view->setVar('sortBySelect', $vs_sort_by_select = is_array($va_sort_by) ? caHTMLSelect("sort", $va_sort_by, array('id' => "sort"), array("value" => $ps_sort)) : '');
     $this->view->setVar('sortControl', $vs_sort_by_select ? _t('Sort with %1', $vs_sort_by_select) : '');
     $this->view->setVar('sort', $ps_sort);
     $this->view->setVar('sort_direction', $ps_sort_direction);
     if (caGetOption('dontShowChildren', $va_browse_info, false)) {
         $o_browse->addResultFilter('ca_objects.parent_id', 'is', 'null');
     }
     //
     // Current criteria
     //
     $va_criteria = $o_browse->getCriteriaWithLabels();
     if (isset($va_criteria['_search']) && isset($va_criteria['_search']['*'])) {
         unset($va_criteria['_search']);
     }
     $o_browse->execute(array('checkAccess' => $this->opa_access_values, 'showAllForNoCriteriaBrowse' => true));
     //
     // Facets
     //
     if ($vs_facet_group = caGetOption('facetGroup', $va_browse_info, null)) {
         $o_browse->setFacetGroup($vs_facet_group);
     }
     $va_available_facet_list = caGetOption('availableFacets', $va_browse_info, null);
     $va_facets = $o_browse->getInfoForAvailableFacets();
     foreach ($va_facets as $vs_facet_name => $va_facet_info) {
         if (isset($va_base_criteria[$vs_facet_name])) {
             continue;
         }
         // skip base criteria
         $va_facets[$vs_facet_name]['content'] = $o_browse->getFacet($vs_facet_name, array("checkAccess" => $this->opa_access_values, 'checkAvailabilityOnly' => caGetOption('deferred_load', $va_facet_info, false, array('castTo' => 'bool'))));
     }
     $this->view->setVar('facets', $va_facets);
     $this->view->setVar('key', $vs_key = $o_browse->getBrowseID());
     $this->request->session->setVar($ps_function . '_last_browse_id', $vs_key);
     // remove base criteria from display list
     if (is_array($va_base_criteria)) {
         foreach ($va_base_criteria as $vs_base_facet => $vs_criteria_value) {
             unset($va_criteria[$vs_base_facet]);
         }
     }
     $va_criteria_for_display = array();
     foreach ($va_criteria as $vs_facet_name => $va_criterion) {
         $va_facet_info = $o_browse->getInfoForFacet($vs_facet_name);
         foreach ($va_criterion as $vn_criterion_id => $vs_criterion) {
             $va_criteria_for_display[] = array('facet' => $va_facet_info['label_singular'], 'facet_name' => $vs_facet_name, 'value' => $vs_criterion, 'id' => $vn_criterion_id);
         }
     }
     $this->view->setVar('criteria', $va_criteria_for_display);
     //
     // Results
     //
     $qr_res = $o_browse->getResults(array('sort' => $va_sort_by[$ps_sort], 'sort_direction' => $ps_sort_direction));
     if ($vs_letter_bar_field = caGetOption('showLetterBarFrom', $va_browse_info, null)) {
         // generate letter bar
         $va_letters = array();
         while ($qr_res->nextHit()) {
             $va_letters[caRemoveAccents(mb_strtolower(mb_substr($qr_res->get($vs_letter_bar_field), 0, 1)))]++;
         }
         $this->view->setVar('letterBar', $va_letters);
         $qr_res->seek(0);
     }
     $this->view->setVar('showLetterBar', (bool) $vs_letter_bar_field);
     if ($vs_letter_bar_field && ($vs_l = mb_strtolower($this->request->getParameter('l', pString)))) {
         $va_filtered_ids = array();
         while ($qr_res->nextHit()) {
             if (caRemoveAccents(mb_strtolower(mb_substr($qr_res->get($vs_letter_bar_field), 0, 1))) == $vs_l) {
                 $va_filtered_ids[] = $qr_res->getPrimaryKey();
             }
         }
         if (sizeof($va_filtered_ids) > 0) {
             $qr_res = caMakeSearchResult($vs_class, $va_filtered_ids);
         }
     }
     $this->view->setVar('letter', $vs_l);
     $this->view->setVar('result', $qr_res);
     if (!($pn_hits_per_block = $this->request->getParameter("n", pString))) {
         if (!($pn_hits_per_block = $this->opo_result_context->getItemsPerPage())) {
             $pn_hits_per_block = $o_config->get("defaultHitsPerBlock");
         }
     }
     $this->opo_result_context->getItemsPerPage($pn_hits_per_block);
     $this->view->setVar('hits_per_block', $pn_hits_per_block);
     $this->view->setVar('start', $vn_start = $this->request->getParameter('s', pInteger));
     $this->opo_result_context->setParameter('key', $vs_key);
     if (!$this->request->isAjax()) {
         if (($vn_key_start = $vn_start - 500) < 0) {
             $vn_key_start = 0;
         }
         $qr_res->seek($vn_key_start);
         $this->opo_result_context->setResultList($qr_res->getPrimaryKeyValues(500));
         $qr_res->seek($vn_start);
     }
     $this->opo_result_context->saveContext();
     if ($ps_type) {
         if ($this->render("Browse/{$vs_class}_{$ps_type}_{$ps_view}_{$vs_format}.php")) {
             return;
         }
     }
     switch ($ps_view) {
         case 'pdf':
             $this->_genExport($qr_res, $this->request->getParameter("export_format", pString), $vs_search_expression, $this->getCriteriaForDisplay($o_browse));
             break;
         case 'timelineData':
             $this->view->setVar('view', 'timeline');
             $this->render("Browse/browse_results_timelineData_json.php");
             break;
         default:
             $this->opo_result_context->setCurrentView($ps_view);
             $this->render("Browse/browse_results_html.php");
             break;
     }
 }