headTitle($this->translate('Advanced Search')); // Disable top search box -- this page has a special layout. $this->layout()->searchbox = false; // Set up breadcrumbs: $searchCrumb = $this->searchMemory()->getLastSearchLink($this->transEsc('Search')) ?: $this->transEsc('Search'); $this->layout()->breadcrumbs = "
  • $searchCrumb
  • "; $this->layout()->breadcrumbs .= '
  • ' . $this->transEsc('Advanced') . '
  • '; // Set up saved search details: if (isset($this->saved) && is_object($this->saved)) { $searchDetails = $this->saved->getParams()->getQuery(); if ($searchDetails instanceof \VuFindSearch\Query\Query) { // Not an advanced query -- ignore it. $searchDetails = $groups = false; } else { $groups = $searchDetails->getQueries(); } $hasDefaultsApplied = $this->saved->getParams()->hasDefaultsApplied(); $checkboxFilters = array_filter( $this->saved->getParams()->getCheckboxFacets(), function ($current) { return $current['selected']; } ); $searchFilters = $this->saved->getParams()->getFilterList(true); $hiddenFilters = $this->saved->getParams()->getHiddenFilters(); } else { $hasDefaultsApplied = $searchDetails = $checkboxFilters = $searchFilters = $groups = false; $hiddenFilters = $this->searchTabs()->getHiddenFilters($this->searchClassId, true); } // Step 1: Load the javascript $this->headScript()->appendFile( $this->advancedSearchJsOverride ?? 'advanced_search.js' ); // Step 2: Build the page $this->headScript()->appendScript( $this->partial( $this->buildPageOverride ?? 'search/advanced/build_page.phtml', ['options' => $this->options, 'searchDetails' => $searchDetails] ) ); // Collect previous search queries $setSearchGroups = []; $setGroupCount = 0; $setQueries = []; if (isset($searchDetails) && is_object($searchDetails)) { foreach ($searchDetails->getQueries() as $group => $searchGroup) { $setSearchGroups[$group] = $searchGroup->isNegated() ? 'NOT' : $searchGroup->getOperator(); if ($setGroupCount < $group) { $setGroupCount = $group; } if (!isset($setQueries[$group])) { $setQueries[$group] = []; } foreach ($searchGroup->getQueries() as $search) { $setQueries[$group][] = $search; } } } // Set up help topics $helpTopics = $this->helpTopics ?? [ 'advsearch' => 'Help with Advanced Search', 'search' => 'Help with Search Operators', ]; ?> flashmessages()?>
    $filter): ?>
    searchMemory()->getLastSort($this->searchClassId); ?>

    transEsc('Advanced Search')?>

    formOverride)): ?> formOverride ?>
    extraAdvancedControls)): ?>
    extraAdvancedControls ?>

    transEsc('adv_search_filters')?>

    $data): ?>
    transEsc($field)?>
    $value): ?>

    transEsc('Search Tips')?>

    inlineScript(\Laminas\View\Helper\HeadScript::SCRIPT, $script, 'SET');