2025-07-27T11:24:11-04:00 DEBUG: VuFindSearch\Backend\Solr\Connector: Query fl=%2A%2Cscore&spellcheck=true&facet=true&facet.limit=30&facet.field=topic_facet&facet.field=instname_str&facet.field=reponame_str&facet.field=dc.publisher.program.fl_str_mv&facet.field=author_facet&facet.field=contributor_str_mv&facet.field=format&facet.field=language&facet.field=dc.subject.por.fl_str_mv&facet.field=dc.subject.eng.fl_str_mv&facet.field=dc.subject.cnpq.fl_str_mv&facet.field=publishDate&facet.field=callnumber-first&facet.field=genre_facet&facet.field=era_facet&facet.field=geographic_facet&facet.sort=count&facet.mincount=1&sort=score+desc&hl=true&hl.fl=%2A&hl.simple.pre=%7B%7B%7B%7BSTART_HILITE%7D%7D%7D%7D&hl.simple.post=%7B%7B%7B%7BEND_HILITE%7D%7D%7D%7D&spellcheck.dictionary=default&wt=json&json.nl=arrarr&rows=20&start=0&spellcheck.q=%28presentan+OR+%28%28presentananaaan+OR+presenteaaeacion%29+OR+%28presentear+OR+presentar%29%29%29+of+Guatemala&qf=title_short%5E750+title_full_unstemmed%5E600+title_full%5E400+title%5E500+title_alt%5E200+title_new%5E100+series%5E50+series2%5E30+author%5E300+author_fuller%5E150+contents%5E10+topic_unstemmed%5E550+topic%5E500+geographic%5E300+genre%5E300+allfields_unstemmed%5E10+fulltext_unstemmed%5E10+allfields+fulltext+description+isbn+issn+long_lat_display&qt=edismax&mm=0%25&q=%28presentan+OR+%28%28presentananaaan+OR+presenteaaeacion%29+OR+%28presentear+OR+presentar%29%29%29+of+Guatemala
2025-07-27T11:24:11-04:00 DEBUG: VuFindSearch\Backend\Solr\Connector: => GET http://localhost:8080/solr/biblio/select?fl=%2A%2Cscore&spellcheck=true&facet=true&facet.limit=30&facet.field=topic_facet&facet.field=instname_str&facet.field=reponame_str&facet.field=dc.publisher.program.fl_str_mv&facet.field=author_facet&facet.field=contributor_str_mv&facet.field=format&facet.field=language&facet.field=dc.subject.por.fl_str_mv&facet.field=dc.subject.eng.fl_str_mv&facet.field=dc.subject.cnpq.fl_str_mv&facet.field=publishDate&facet.field=callnumber-first&facet.field=genre_facet&facet.field=era_facet&facet.field=geographic_facet&facet.sort=count&facet.mincount=1&sort=score+desc&hl=true&hl.fl=%2A&hl.simple.pre=%7B%7B%7B%7BSTART_HILITE%7D%7D%7D%7D&hl.simple.post=%7B%7B%7B%7BEND_HILITE%7D%7D%7D%7D&spellcheck.dictionary=default&wt=json&json.nl=arrarr&rows=20&start=0&spellcheck.q=%28presentan+OR+%28%28presentananaaan+OR+presenteaaeacion%29+OR+%28presentear+OR+presentar%29%29%29+of+Guatemala&qf=title_short%5E750+title_full_unstemmed%5E600+title_full%5E400+title%5E500+title_alt%5E200+title_new%5E100+series%5E50+series2%5E30+author%5E300+author_fuller%5E150+contents%5E10+topic_unstemmed%5E550+topic%5E500+geographic%5E300+genre%5E300+allfields_unstemmed%5E10+fulltext_unstemmed%5E10+allfields+fulltext+description+isbn+issn+long_lat_display&qt=edismax&mm=0%25&q=%28presentan+OR+%28%28presentananaaan+OR+presenteaaeacion%29+OR+%28presentear+OR+presentar%29%29%29+of+Guatemala
2025-07-27T11:24:11-04:00 DEBUG: VuFindSearch\Backend\Solr\Connector: <= 200 OK
2025-07-27T11:24:11-04:00 DEBUG: Deserialized SOLR response
2025-07-27T11:24:11-04:00 DEBUG: VuFindSearch\Backend\Solr\Connector: Query fl=%2A%2Cscore&spellcheck=true&spellcheck.dictionary=basicSpell&wt=json&json.nl=arrarr&rows=0&start=0&spellcheck.q=%28presentan+OR+%28%28presentananaaan+OR+presenteaaeacion%29+OR+%28presentear+OR+presentar%29%29%29+of+Guatemala&qf=title_short%5E750+title_full_unstemmed%5E600+title_full%5E400+title%5E500+title_alt%5E200+title_new%5E100+series%5E50+series2%5E30+author%5E300+author_fuller%5E150+contents%5E10+topic_unstemmed%5E550+topic%5E500+geographic%5E300+genre%5E300+allfields_unstemmed%5E10+fulltext_unstemmed%5E10+allfields+fulltext+description+isbn+issn+long_lat_display&qt=edismax&mm=0%25&q=%28presentan+OR+%28%28presentananaaan+OR+presenteaaeacion%29+OR+%28presentear+OR+presentar%29%29%29+of+Guatemala
2025-07-27T11:24:11-04:00 DEBUG: VuFindSearch\Backend\Solr\Connector: => GET http://localhost:8080/solr/biblio/select?fl=%2A%2Cscore&spellcheck=true&spellcheck.dictionary=basicSpell&wt=json&json.nl=arrarr&rows=0&start=0&spellcheck.q=%28presentan+OR+%28%28presentananaaan+OR+presenteaaeacion%29+OR+%28presentear+OR+presentar%29%29%29+of+Guatemala&qf=title_short%5E750+title_full_unstemmed%5E600+title_full%5E400+title%5E500+title_alt%5E200+title_new%5E100+series%5E50+series2%5E30+author%5E300+author_fuller%5E150+contents%5E10+topic_unstemmed%5E550+topic%5E500+geographic%5E300+genre%5E300+allfields_unstemmed%5E10+fulltext_unstemmed%5E10+allfields+fulltext+description+isbn+issn+long_lat_display&qt=edismax&mm=0%25&q=%28presentan+OR+%28%28presentananaaan+OR+presenteaaeacion%29+OR+%28presentear+OR+presentar%29%29%29+of+Guatemala
Whoops! There was an error.
Whoops \ Exception \ ErrorException (E_WARNING)
Cannot modify header information - headers already sent by (output started at /home/lareferencia/vufind/vendor/zendframework/zend-log/src/Writer/Stream.php:116) Whoops\Exception\ErrorException thrown with message "Cannot modify header information - headers already sent by (output started at /home/lareferencia/vufind/vendor/zendframework/zend-log/src/Writer/Stream.php:116)" Stacktrace: #13 Whoops\Exception\ErrorException in /home/lareferencia/vufind/module/VuFind/src/VuFind/Cookie/CookieManager.php:149 #12 call_user_func_array in /home/lareferencia/vufind/module/VuFind/src/VuFind/Cookie/CookieManager.php:149 #11 VuFind\Cookie\CookieManager:proxySetCookie in /home/lareferencia/vufind/module/VuFind/src/VuFind/Cookie/CookieManager.php:166 #10 VuFind\Cookie\CookieManager:setGlobalCookie in /home/lareferencia/vufind/module/VuFind/src/VuFind/Cookie/CookieManager.php:195 #9 VuFind\Cookie\CookieManager:set in /home/lareferencia/vufind/module/VuFindTheme/src/VuFindTheme/Initializer.php:234 #8 VuFindTheme\Initializer:pickTheme in /home/lareferencia/vufind/module/VuFindTheme/src/VuFindTheme/Initializer.php:182 #7 VuFindTheme\Initializer:init in /home/lareferencia/vufind/module/VuFind/src/VuFind/Bootstrapper.php:387 #6 VuFind\Bootstrapper:VuFind\{closure} in /home/lareferencia/vufind/vendor/zendframework/zend-eventmanager/src/EventManager.php:322 #5 Zend\EventManager\EventManager:triggerListeners in /home/lareferencia/vufind/vendor/zendframework/zend-eventmanager/src/EventManager.php:171 #4 Zend\EventManager\EventManager:triggerEvent in /home/lareferencia/vufind/vendor/zendframework/zend-mvc/src/DispatchListener.php:132 #3 Zend\Mvc\DispatchListener:onDispatch in /home/lareferencia/vufind/vendor/zendframework/zend-eventmanager/src/EventManager.php:322 #2 Zend\EventManager\EventManager:triggerListeners in /home/lareferencia/vufind/vendor/zendframework/zend-eventmanager/src/EventManager.php:179 #1 Zend\EventManager\EventManager:triggerEventUntil in /home/lareferencia/vufind/vendor/zendframework/zend-mvc/src/Application.php:340 #0 Zend\Mvc\Application:run in /home/lareferencia/vufind/public/index.php:85
Stack frames (14)
13
Whoops
\
Exception
\
ErrorException
/
module
/
VuFind
/
src
/
VuFind
/
Cookie
/
CookieManager.php
149
12
call_user_func_array
/
module
/
VuFind
/
src
/
VuFind
/
Cookie
/
CookieManager.php
149
11
VuFind
\
Cookie
\
CookieManager
proxySetCookie
/
module
/
VuFind
/
src
/
VuFind
/
Cookie
/
CookieManager.php
166
10
VuFind
\
Cookie
\
CookieManager
setGlobalCookie
/
module
/
VuFind
/
src
/
VuFind
/
Cookie
/
CookieManager.php
195
9
VuFind
\
Cookie
\
CookieManager
set
/
module
/
VuFindTheme
/
src
/
VuFindTheme
/
Initializer.php
234
8
VuFindTheme
\
Initializer
pickTheme
/
module
/
VuFindTheme
/
src
/
VuFindTheme
/
Initializer.php
182
7
VuFindTheme
\
Initializer
init
/
module
/
VuFind
/
src
/
VuFind
/
Bootstrapper.php
387
6
VuFind
\
Bootstrapper
VuFind
\
{closure}
/
vendor
/
zendframework
/
zend-eventmanager
/
src
/
EventManager.php
322
5
Zend
\
EventManager
\
EventManager
triggerListeners
/
vendor
/
zendframework
/
zend-eventmanager
/
src
/
EventManager.php
171
4
Zend
\
EventManager
\
EventManager
triggerEvent
/
vendor
/
zendframework
/
zend-mvc
/
src
/
DispatchListener.php
132
3
Zend
\
Mvc
\
DispatchListener
onDispatch
/
vendor
/
zendframework
/
zend-eventmanager
/
src
/
EventManager.php
322
2
Zend
\
EventManager
\
EventManager
triggerListeners
/
vendor
/
zendframework
/
zend-eventmanager
/
src
/
EventManager.php
179
1
Zend
\
EventManager
\
EventManager
triggerEventUntil
/
vendor
/
zendframework
/
zend-mvc
/
src
/
Application.php
340
0
Zend
\
Mvc
\
Application
run
/
public
/
index.php
85
/
home
/
lareferencia
/
vufind
/
module
/
VuFind
/
src
/
VuFind
/
Cookie
/
CookieManager.php
     * Get the name of the cookie
     *
     * @return mixed
     */
    public function getSessionName()
    {
        return $this->sessionName;
    }
 
    /**
     * Support method for setGlobalCookie -- proxy PHP's setcookie() function
     * for compatibility with unit testing.
     *
     * @return bool
     */
    public function proxySetCookie()
    {
        // Special case: in test suite -- don't actually write headers!
        return defined('VUFIND_PHPUNIT_RUNNING')
            ? true : call_user_func_array('setcookie', func_get_args());
    }
 
    /**
     * Support method for set() -- set the actual cookie in PHP.
     *
     * @param string $key    Name of cookie to set
     * @param mixed  $value  Value to set
     * @param int    $expire Cookie expiration time
     *
     * @return bool
     */
    public function setGlobalCookie($key, $value, $expire)
    {
        // Simple case: flat value.
        if (!is_array($value)) {
            return $this->proxySetCookie(
                $key, $value, $expire, $this->path, $this->domain, $this->secure
            );
        }
 
/
home
/
lareferencia
/
vufind
/
module
/
VuFind
/
src
/
VuFind
/
Cookie
/
CookieManager.php
     * Get the name of the cookie
     *
     * @return mixed
     */
    public function getSessionName()
    {
        return $this->sessionName;
    }
 
    /**
     * Support method for setGlobalCookie -- proxy PHP's setcookie() function
     * for compatibility with unit testing.
     *
     * @return bool
     */
    public function proxySetCookie()
    {
        // Special case: in test suite -- don't actually write headers!
        return defined('VUFIND_PHPUNIT_RUNNING')
            ? true : call_user_func_array('setcookie', func_get_args());
    }
 
    /**
     * Support method for set() -- set the actual cookie in PHP.
     *
     * @param string $key    Name of cookie to set
     * @param mixed  $value  Value to set
     * @param int    $expire Cookie expiration time
     *
     * @return bool
     */
    public function setGlobalCookie($key, $value, $expire)
    {
        // Simple case: flat value.
        if (!is_array($value)) {
            return $this->proxySetCookie(
                $key, $value, $expire, $this->path, $this->domain, $this->secure
            );
        }
 
/
home
/
lareferencia
/
vufind
/
module
/
VuFind
/
src
/
VuFind
/
Cookie
/
CookieManager.php
        // Special case: in test suite -- don't actually write headers!
        return defined('VUFIND_PHPUNIT_RUNNING')
            ? true : call_user_func_array('setcookie', func_get_args());
    }
 
    /**
     * Support method for set() -- set the actual cookie in PHP.
     *
     * @param string $key    Name of cookie to set
     * @param mixed  $value  Value to set
     * @param int    $expire Cookie expiration time
     *
     * @return bool
     */
    public function setGlobalCookie($key, $value, $expire)
    {
        // Simple case: flat value.
        if (!is_array($value)) {
            return $this->proxySetCookie(
                $key, $value, $expire, $this->path, $this->domain, $this->secure
            );
        }
 
        // Complex case: array of values.
        $success = true;
        foreach ($value as $i => $curr) {
            $lastSuccess = $this->proxySetCookie(
                $key . '[' . $i . ']', $curr, $expire,
                $this->path, $this->domain, $this->secure
            );
            if (!$lastSuccess) {
                $success = false;
            }
        }
        return $success;
    }
 
    /**
     * Set a cookie.
     *
/
home
/
lareferencia
/
vufind
/
module
/
VuFind
/
src
/
VuFind
/
Cookie
/
CookieManager.php
            );
            if (!$lastSuccess) {
                $success = false;
            }
        }
        return $success;
    }
 
    /**
     * Set a cookie.
     *
     * @param string $key    Name of cookie to set
     * @param mixed  $value  Value to set
     * @param int    $expire Cookie expiration time
     *
     * @return bool
     */
    public function set($key, $value, $expire = 0)
    {
        if ($success = $this->setGlobalCookie($key, $value, $expire)) {
            $this->cookies[$key] = $value;
        }
        return $success;
    }
 
    /**
     * Clear a cookie.
     *
     * @param string $key Name of cookie to unset
     *
     * @return bool
     */
    public function clear($key)
    {
        $value = $this->get($key);
        if (is_array($value)) {
            $success = true;
            foreach (array_keys($value) as $i) {
                if (!$this->clear($key . '[' . $i . ']')) {
                    $success = false;
/
home
/
lareferencia
/
vufind
/
module
/
VuFindTheme
/
src
/
VuFindTheme
/
Initializer.php
    {
        // Load standard configuration options:
        $standardTheme = $this->config->theme;
        $mobileTheme = $this->mobile->enabled()
            ? $this->config->mobile_theme : false;
 
        // Find out if the user has a saved preference in the POST, URL or cookies:
        $selectedUI = $request->getPost()->get(
            'ui', $request->getQuery()->get(
                'ui', isset($request->getCookie()->ui)
                ? $request->getCookie()->ui : null
            )
        );
        if (empty($selectedUI)) {
            $selectedUI = ($mobileTheme && $this->mobile->detect())
                ? 'mobile' : 'standard';
        }
 
        // Save the current setting to a cookie so it persists:
        $this->cookieManager->set('ui', $selectedUI);
 
        // Do we have a valid mobile selection?
        if ($mobileTheme && $selectedUI == 'mobile') {
            return $mobileTheme;
        }
 
        // Do we have a non-standard selection?
        if ($selectedUI != 'standard'
            && isset($this->config->alternate_themes)
        ) {
            // Check the alternate theme settings for a match:
            $parts = explode(',', $this->config->alternate_themes);
            foreach ($parts as $part) {
                $subparts = explode(':', $part);
                if ((trim($subparts[0]) == trim($selectedUI))
                    && isset($subparts[1]) && !empty($subparts[1])
                ) {
                    return $subparts[1];
                }
            }
/
home
/
lareferencia
/
vufind
/
module
/
VuFindTheme
/
src
/
VuFindTheme
/
Initializer.php
 
        // Attach our own listener in place of the one we removed:
        $injectTemplateListener  = new InjectTemplateListener();
        $sharedEvents->attach(
            'Zend\Stdlib\DispatchableInterface', MvcEvent::EVENT_DISPATCH,
            [$injectTemplateListener, 'injectTemplate'], $injectTemplatePriority
        );
    }
 
    /**
     * Initialize the theme.  This needs to be triggered as part of the dispatch
     * event.
     *
     * @throws \Exception
     * @return void
     */
    public function init()
    {
        // Determine the current theme:
        $currentTheme = $this->pickTheme($this->event->getRequest());
 
        // Determine theme options:
        $this->sendThemeOptionsToView();
 
        // Make sure the current theme is set correctly in the tools object:
        try {
            $this->tools->setTheme($currentTheme);
        } catch (\Exception $error) {
            // If an illegal value is passed in, the setter may throw an exception.
            // We should ignore it for now and throw it after we have set up the
            // theme (the setter will use a safe value instead of the illegal one).
        }
 
        // Using the settings we initialized above, actually configure the themes; we
        // need to do this even if there is an error, since we need a theme in order
        // to display an error message!
        $this->setUpThemes(array_reverse($this->tools->getThemeInfo()));
 
        // If we encountered an error loading theme settings, fail now.
        if (isset($error)) {
/
home
/
lareferencia
/
vufind
/
module
/
VuFind
/
src
/
VuFind
/
Bootstrapper.php
     * @return void
     */
    protected function initTheme()
    {
        // Themes not needed in console mode:
        if (Console::isConsole()) {
            return;
        }
 
        // Attach template injection configuration to the route event:
        $this->events->attach(
            'route', ['VuFindTheme\Initializer', 'configureTemplateInjection']
        );
 
        // Attach remaining theme configuration to the dispatch event at high
        // priority (TODO: use priority constant once defined by framework):
        $config = $this->config->Site;
        $callback = function ($event) use ($config) {
            $theme = new \VuFindTheme\Initializer($config, $event);
            $theme->init();
        };
        $this->events->attach('dispatch.error', $callback, 9000);
        $this->events->attach('dispatch', $callback, 9000);
    }
 
    /**
     * Set up custom HTTP status based on exception information.
     *
     * @return void
     */
    protected function initExceptionBasedHttpStatuses()
    {
        // HTTP statuses not needed in console mode:
        if (Console::isConsole()) {
            return;
        }
 
        $callback = function ($e) {
            $exception = $e->getParam('exception');
            if ($exception instanceof \VuFind\Exception\HttpStatusInterface) {
/
home
/
lareferencia
/
vufind
/
vendor
/
zendframework
/
zend-eventmanager
/
src
/
EventManager.php
        }
 
        if ($this->sharedManager) {
            foreach ($this->sharedManager->getListeners($this->identifiers, $name) as $priority => $listeners) {
                $listOfListenersByPriority[$priority][] = $listeners;
            }
        }
 
        // Sort by priority in reverse order
        krsort($listOfListenersByPriority);
 
        // Initial value of stop propagation flag should be false
        $event->stopPropagation(false);
 
        // Execute listeners
        $responses = new ResponseCollection();
        foreach ($listOfListenersByPriority as $listOfListeners) {
            foreach ($listOfListeners as $listeners) {
                foreach ($listeners as $listener) {
                    $response = $listener($event);
                    $responses->push($response);
 
                    // If the event was asked to stop propagating, do so
                    if ($event->propagationIsStopped()) {
                        $responses->setStopped(true);
                        return $responses;
                    }
 
                    // If the result causes our validation callback to return true,
                    // stop propagation
                    if ($callback && $callback($response)) {
                        $responses->setStopped(true);
                        return $responses;
                    }
                }
            }
        }
 
        return $responses;
    }
/
home
/
lareferencia
/
vufind
/
vendor
/
zendframework
/
zend-eventmanager
/
src
/
EventManager.php
        $event = clone $this->eventPrototype;
        $event->setName($eventName);
 
        if ($target !== null) {
            $event->setTarget($target);
        }
 
        if ($argv) {
            $event->setParams($argv);
        }
 
        return $this->triggerListeners($event, $callback);
    }
 
    /**
     * @inheritDoc
     */
    public function triggerEvent(EventInterface $event)
    {
        return $this->triggerListeners($event);
    }
 
    /**
     * @inheritDoc
     */
    public function triggerEventUntil(callable $callback, EventInterface $event)
    {
        return $this->triggerListeners($event, $callback);
    }
 
    /**
     * @inheritDoc
     */
    public function attach($eventName, callable $listener, $priority = 1)
    {
        if (! is_string($eventName)) {
            throw new Exception\InvalidArgumentException(sprintf(
                '%s expects a string for the event; received %s',
                __METHOD__,
                (is_object($eventName) ? get_class($eventName) : gettype($eventName))
/
home
/
lareferencia
/
vufind
/
vendor
/
zendframework
/
zend-mvc
/
src
/
DispatchListener.php
        $request  = $e->getRequest();
        $response = $application->getResponse();
        $caughtException = null;
 
        try {
            $return = $controller->dispatch($request, $response);
        } catch (\Throwable $ex) {
            $caughtException = $ex;
        } catch (\Exception $ex) {  // @TODO clean up once PHP 7 requirement is enforced
            $caughtException = $ex;
        }
 
        if ($caughtException !== null) {
            $e->setName(MvcEvent::EVENT_DISPATCH_ERROR);
            $e->setError($application::ERROR_EXCEPTION);
            $e->setController($controllerName);
            $e->setControllerClass(get_class($controller));
            $e->setParam('exception', $caughtException);
 
            $return = $application->getEventManager()->triggerEvent($e)->last();
            if (! $return) {
                $return = $e->getResult();
            }
        }
 
        return $this->complete($return, $e);
    }
 
    /**
     * @param MvcEvent $e
     */
    public function reportMonitorEvent(MvcEvent $e)
    {
        $error     = $e->getError();
        $exception = $e->getParam('exception');
        if ($exception instanceof \Exception || $exception instanceof \Throwable) {  // @TODO clean up once PHP 7 requirement is enforced
            zend_monitor_custom_event_ex($error, $exception->getMessage(), 'Zend Framework Exception', ['code' => $exception->getCode(), 'trace' => $exception->getTraceAsString()]);
        }
    }
 
/
home
/
lareferencia
/
vufind
/
vendor
/
zendframework
/
zend-eventmanager
/
src
/
EventManager.php
        }
 
        if ($this->sharedManager) {
            foreach ($this->sharedManager->getListeners($this->identifiers, $name) as $priority => $listeners) {
                $listOfListenersByPriority[$priority][] = $listeners;
            }
        }
 
        // Sort by priority in reverse order
        krsort($listOfListenersByPriority);
 
        // Initial value of stop propagation flag should be false
        $event->stopPropagation(false);
 
        // Execute listeners
        $responses = new ResponseCollection();
        foreach ($listOfListenersByPriority as $listOfListeners) {
            foreach ($listOfListeners as $listeners) {
                foreach ($listeners as $listener) {
                    $response = $listener($event);
                    $responses->push($response);
 
                    // If the event was asked to stop propagating, do so
                    if ($event->propagationIsStopped()) {
                        $responses->setStopped(true);
                        return $responses;
                    }
 
                    // If the result causes our validation callback to return true,
                    // stop propagation
                    if ($callback && $callback($response)) {
                        $responses->setStopped(true);
                        return $responses;
                    }
                }
            }
        }
 
        return $responses;
    }
/
home
/
lareferencia
/
vufind
/
vendor
/
zendframework
/
zend-eventmanager
/
src
/
EventManager.php
            $event->setParams($argv);
        }
 
        return $this->triggerListeners($event, $callback);
    }
 
    /**
     * @inheritDoc
     */
    public function triggerEvent(EventInterface $event)
    {
        return $this->triggerListeners($event);
    }
 
    /**
     * @inheritDoc
     */
    public function triggerEventUntil(callable $callback, EventInterface $event)
    {
        return $this->triggerListeners($event, $callback);
    }
 
    /**
     * @inheritDoc
     */
    public function attach($eventName, callable $listener, $priority = 1)
    {
        if (! is_string($eventName)) {
            throw new Exception\InvalidArgumentException(sprintf(
                '%s expects a string for the event; received %s',
                __METHOD__,
                (is_object($eventName) ? get_class($eventName) : gettype($eventName))
            ));
        }
 
        $this->events[$eventName][(int) $priority][0][] = $listener;
        return $listener;
    }
 
    /**
/
home
/
lareferencia
/
vufind
/
vendor
/
zendframework
/
zend-mvc
/
src
/
Application.php
            $response = $result->last();
            if ($response instanceof ResponseInterface) {
                $event->setName(MvcEvent::EVENT_FINISH);
                $event->setTarget($this);
                $event->setResponse($response);
                $event->stopPropagation(false); // Clear before triggering
                $events->triggerEvent($event);
                $this->response = $response;
                return $this;
            }
        }
 
        if ($event->getError()) {
            return $this->completeRequest($event);
        }
 
        // Trigger dispatch event
        $event->setName(MvcEvent::EVENT_DISPATCH);
        $event->stopPropagation(false); // Clear before triggering
        $result = $events->triggerEventUntil($shortCircuit, $event);
 
        // Complete response
        $response = $result->last();
        if ($response instanceof ResponseInterface) {
            $event->setName(MvcEvent::EVENT_FINISH);
            $event->setTarget($this);
            $event->setResponse($response);
            $event->stopPropagation(false); // Clear before triggering
            $events->triggerEvent($event);
            $this->response = $response;
            return $this;
        }
 
        $response = $this->response;
        $event->setResponse($response);
        $this->completeRequest($event);
 
        return $this;
    }
 
/
home
/
lareferencia
/
vufind
/
public
/
index.php
if (file_exists('vendor/autoload.php')) {
    $loader = include 'vendor/autoload.php';
}
 
// Support for ZF2_PATH environment variable
if ($zf2Path = getenv('ZF2_PATH')) {
    if (isset($loader)) {
        $loader->add('Zend', $zf2Path . '/Zend');
    } else {
        include $zf2Path . '/Zend/Loader/AutoloaderFactory.php';
        AutoloaderFactory::factory();
    }
}
 
if (!class_exists('Zend\Loader\AutoloaderFactory')) {
    throw new RuntimeException('Unable to load ZF2.');
}
 
// Run the application!
Zend\Mvc\Application::init(require 'config/application.config.php')->run();
 
// Handle final profiling details, if necessary:
if ($xhprof) {
    $xhprofData = extension_loaded('xhprof') ? xhprof_disable() : tideways_disable();
    $xhprofRunId = uniqid();
    $suffix = 'vufind';
    $dir = ini_get('xhprof.output_dir');
    if (empty($dir)) {
        $dir = sys_get_temp_dir();
    }
    file_put_contents("$dir/$xhprofRunId.$suffix.xhprof", serialize($xhprofData));
    $url = "$xhprof?run=$xhprofRunId&source=$suffix";
    echo "<a href='$url'>Profiler output</a>";
}
 

Environment & details:

Key Value
lookfor (presentan OR ((presentananaaan OR presenteaaeacion) OR (presentear OR presentar))) of Guatemala
type AllFields
empty
empty
Key Value
VUFIND_SESSION 4sojibu1hpj656p2f8abhv6b86
ui standard
Key Value
__ZF Array ( [_REQUEST_ACCESS_TIME] => 1753629851.2118 [_VALID] => Array ( [Zend\Session\Validator\Id] => 4sojibu1hpj656p2f8abhv6b86 ) )
SessionState Zend\Stdlib\ArrayObject Object ( [storage:protected] => Array ( [cookiePath] => / ) [flag:protected] => 2 [iteratorClass:protected] => ArrayIterator [protectedProperties:protected] => Array ( [0] => storage [1] => flag [2] => iteratorClass [3] => protectedProperties ) )
Search Zend\Stdlib\ArrayObject Object ( [storage:protected] => Array ( [last] => /vufind/Search/Results?lookfor=%28%28%28presentanananeanea+OR+presentaanacion%29+OR+%28presentana+OR+present%29%29+OR+presentae%29+of+Guatemala&type=AllFields [params|Solr|hiddenFilters] => Array ( ) [params|Solr|limit] => 20 [params|Solr|sort] => relevance [params|Solr|view] => list ) [flag:protected] => 2 [iteratorClass:protected] => ArrayIterator [protectedProperties:protected] => Array ( [0] => storage [1] => flag [2] => iteratorClass [3] => protectedProperties ) )
FlashMessenger Zend\Stdlib\ArrayObject Object ( [storage:protected] => Array ( ) [flag:protected] => 2 [iteratorClass:protected] => ArrayIterator [protectedProperties:protected] => Array ( [0] => storage [1] => flag [2] => iteratorClass [3] => protectedProperties ) )
Key Value
REDIRECT_VUFIND_ENV development
REDIRECT_VUFIND_LOCAL_DIR /home/lareferencia/vufind/local
REDIRECT_STATUS 200
VUFIND_ENV development
VUFIND_LOCAL_DIR /home/lareferencia/vufind/local
HTTP_ACCEPT */*
HTTP_USER_AGENT Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HTTP_ACCEPT_ENCODING gzip, br, zstd, deflate
HTTP_HOST pricila.senacyt.gob.pa
HTTP_VIA 1.1 squid-proxy-5b5d847c96-d4hlf (squid/6.10)
HTTP_X_FORWARDED_FOR 10.3.204.158, 216.73.216.12
HTTP_CACHE_CONTROL max-age=0
HTTP_CONNECTION keep-alive
HTTP_COOKIE VUFIND_SESSION=4sojibu1hpj656p2f8abhv6b86; ui=standard
PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
SERVER_SIGNATURE <address>Apache/2.4.25 (Debian) Server at pricila.senacyt.gob.pa Port 80</address>
SERVER_SOFTWARE Apache/2.4.25 (Debian)
SERVER_NAME pricila.senacyt.gob.pa
SERVER_ADDR 10.88.50.5
SERVER_PORT 80
REMOTE_ADDR 10.88.50.12
DOCUMENT_ROOT /var/www/html
REQUEST_SCHEME http
CONTEXT_PREFIX /vufind
CONTEXT_DOCUMENT_ROOT /home/lareferencia/vufind/public
SERVER_ADMIN webmaster@localhost
SCRIPT_FILENAME /home/lareferencia/vufind/public/index.php
REMOTE_PORT 23713
REDIRECT_URL /vufind/Search/Results
REDIRECT_QUERY_STRING lookfor=%28presentan+OR+%28%28presentananaaan+OR+presenteaaeacion%29+OR+%28presentear+OR+presentar%29%29%29+of+Guatemala&type=AllFields
GATEWAY_INTERFACE CGI/1.1
SERVER_PROTOCOL HTTP/1.1
REQUEST_METHOD GET
QUERY_STRING lookfor=%28presentan+OR+%28%28presentananaaan+OR+presenteaaeacion%29+OR+%28presentear+OR+presentar%29%29%29+of+Guatemala&type=AllFields
REQUEST_URI /vufind/Search/Results?lookfor=%28presentan+OR+%28%28presentananaaan+OR+presenteaaeacion%29+OR+%28presentear+OR+presentar%29%29%29+of+Guatemala&type=AllFields
SCRIPT_NAME /vufind/index.php
PHP_SELF /vufind/index.php
REQUEST_TIME_FLOAT 1753629851.153
REQUEST_TIME 1753629851
empty
0. Whoops\Handler\PrettyPageHandler