/** * @param BeforeCompileHeadEvent $event */ public function handleBody($event): void { $document = $event->getDocument(); if (!$document instanceof HtmlDocument) { return; } $resolver = new ParameterResolver($this); $function = Reflection::getFunction($callable); $parameters = $resolver->resolve($function, $parameters); } return $callable(...$parameters); } /** * Wraps the callback with optional parameter resolving. * $this->dispatcher->addListener( $event, fn(...$arguments) => $isStatic && !ParameterResolver::needsResolving($listener) ? $listener(...$arguments) : $container->call($listener, $arguments), ...$params, ); }} if ($event->isStopped()) { return $event; } $listener($event); } } return $event; } $event = new $className($eventName, $args); } else { throw new \InvalidArgumentException('The arguments must either be an event or an array'); } $result = $dispatcher->dispatch($eventName, $event); // @todo - There are still test cases where the result isn't defined, temporarily leave the isset check in place return !isset($result['result']) || \is_null($result['result']) ? [] : $result['result']; }} $asset->onAttachCallback($this->_doc); } } // Trigger the onBeforeCompileHead event $app->triggerEvent('onBeforeCompileHead'); // Add Script Options as inline asset $scriptOptions = $this->_doc->getScriptOptions(); if ($scriptOptions) { $cbuffer[$hash] = $tmpdata; $cache->store($cbuffer, 'cbuffer_' . $type); } else { $this->setBuffer($renderer->render($name, $attribs, null), $type, $name, $title); } return parent::$_buffer[$type][$name][$title]; } $replace = []; $with = []; foreach ($this->_template_tags as $jdoc => $args) { $replace[] = $jdoc; $with[] = $this->getBuffer($args['type'], $args['name'], $args['attribs']); } return str_replace($replace, $with, $this->_template); }} if (\array_key_exists('csp_nonce', $params) && $params['csp_nonce'] !== null) { $this->cspNonce = $params['csp_nonce']; } $data = $this->_renderTemplate(); parent::render($caching, $params); return $data; } $this->debug = $params['debug'] ?? false; $this->error = $this->_error; $params['file'] = 'error.php'; return parent::render($cache, $params); } /** * Render the backtrace * ob_end_clean(); } $this->getDocument()->setTitle(Text::_('Error') . ': ' . $error->getCode()); return $this->getDocument()->render( false, [ 'template' => $template->template, 'directory' => JPATH_THEMES, 'debug' => JDEBUG, // Reset the document object in the factory, this gives us a clean slate and lets everything render properly Factory::$document = $renderer->getDocument(); Factory::getApplication()->loadDocument(Factory::$document); $data = $renderer->render($error); // If nothing was rendered, just use the message from the Exception if (empty($data)) { $data = $error->getMessage(); } * @since 3.10.0 */ public static function handleException(\Throwable $error) { static::logException($error); static::render($error); } /** * Render the error page based on an exception. * ); // Trigger the onError event. $this->triggerEvent('onError', $event); ExceptionHandler::handleException($event->getError()); } // Trigger the onBeforeRespond event. $this->getDispatcher()->dispatch('onBeforeRespond');// Set the application as global app\Joomla\CMS\Factory::$application = $app;// Execute the application.$app->execute(); * define() is used rather than "const" to not error for PHP 5.2 and lower */define('_JEXEC', 1);// Run the application - All executable code should be triggered through this filerequire_once dirname(__FILE__) . '/includes/app.php'; $this->processParseRules($uri, self::PROCESS_AFTER); // Check if all parts of the URL have been parsed. // Otherwise we have an invalid URL if (\strlen($uri->getPath()) > 0) { throw new RouteNotFoundException(Text::_('JERROR_PAGE_NOT_FOUND')); } if ($setVars) { $this->setVars($uri->getQuery(true)); // Get the full request URI. $uri = clone Uri::getInstance(); // It is not possible to inject the SiteRouter as it requires a SiteApplication // and we would end in an infinite loop $result = $this->getContainer()->get(SiteRouter::class)->parse($uri, true); $active = $this->getMenu()->getActive(); if ( $active !== null // Mark afterInitialise in the profiler. JDEBUG ? $this->profiler->mark('afterInitialise') : null; // Route the application $this->route(); // Mark afterRoute in the profiler. JDEBUG ? $this->profiler->mark('afterRoute') : null; if (!$this->isHandlingMultiFactorAuthentication()) { $this->sanityCheckSystemVariables(); $this->setupLogging(); $this->createExtensionNamespaceMap(); // Perform application routines. $this->doExecute(); // If we have an application document object, render it. if ($this->document instanceof \Joomla\CMS\Document\Document) { // Render the application output. $this->render();// Set the application as global app\Joomla\CMS\Factory::$application = $app;// Execute the application.$app->execute(); * define() is used rather than "const" to not error for PHP 5.2 and lower */define('_JEXEC', 1);// Run the application - All executable code should be triggered through this filerequire_once dirname(__FILE__) . '/includes/app.php';|
[2/2]
UndefinedMethodError
|
|---|
Symfony\Component\ErrorHandler\Error\UndefinedMethodError:
Attempted to call an undefined method named "getDocument" of class "Joomla\Event\Event".
Did you mean to call "getArgument"?
at /home/endo-plus/web/endo-plus.ru/public_html/templates/yootheme/packages/theme-joomla/src/Listener/LoadConsent.php:44
at YOOtheme\Theme\Joomla\Listener\LoadConsent->handleBody()
(/home/endo-plus/web/endo-plus.ru/public_html/templates/yootheme/packages/container/src/Container.php:229)
at YOOtheme\Container->call()
(/home/endo-plus/web/endo-plus.ru/public_html/templates/yootheme/packages/application/src/Application/EventLoader.php:66)
at YOOtheme\Application\EventLoader->YOOtheme\Application\{closure}()
(/home/endo-plus/web/endo-plus.ru/public_html/libraries/vendor/joomla/event/src/Dispatcher.php:486)
at Joomla\Event\Dispatcher->dispatch()
(/home/endo-plus/web/endo-plus.ru/public_html/libraries/src/Application/EventAware.php:111)
at Joomla\CMS\Application\WebApplication->triggerEvent()
(/home/endo-plus/web/endo-plus.ru/public_html/libraries/src/Document/Renderer/Html/MetasRenderer.php:61)
at Joomla\CMS\Document\Renderer\Html\MetasRenderer->render()
(/home/endo-plus/web/endo-plus.ru/public_html/libraries/src/Document/HtmlDocument.php:565)
at Joomla\CMS\Document\HtmlDocument->getBuffer()
(/home/endo-plus/web/endo-plus.ru/public_html/libraries/src/Document/HtmlDocument.php:833)
at Joomla\CMS\Document\HtmlDocument->_renderTemplate()
(/home/endo-plus/web/endo-plus.ru/public_html/libraries/src/Document/HtmlDocument.php:637)
at Joomla\CMS\Document\HtmlDocument->render()
(/home/endo-plus/web/endo-plus.ru/public_html/libraries/src/Document/ErrorDocument.php:139)
at Joomla\CMS\Document\ErrorDocument->render()
(/home/endo-plus/web/endo-plus.ru/public_html/libraries/src/Error/Renderer/HtmlRenderer.php:70)
at Joomla\CMS\Error\Renderer\HtmlRenderer->render()
(/home/endo-plus/web/endo-plus.ru/public_html/libraries/src/Exception/ExceptionHandler.php:126)
at Joomla\CMS\Exception\ExceptionHandler::render()
(/home/endo-plus/web/endo-plus.ru/public_html/libraries/src/Exception/ExceptionHandler.php:72)
at Joomla\CMS\Exception\ExceptionHandler::handleException()
(/home/endo-plus/web/endo-plus.ru/public_html/libraries/src/Application/CMSApplication.php:322)
at Joomla\CMS\Application\CMSApplication->execute()
(/home/endo-plus/web/endo-plus.ru/public_html/includes/app.php:61)
at require_once('/home/endo-plus/web/endo-plus.ru/public_html/includes/app.php')
(/home/endo-plus/web/endo-plus.ru/public_html/index.php:32)
|
|
[1/2]
RouteNotFoundException
|
|---|
Joomla\CMS\Router\Exception\RouteNotFoundException:
Страница не найдена
at /home/endo-plus/web/endo-plus.ru/public_html/libraries/src/Router/Router.php:155
at Joomla\CMS\Router\Router->parse()
(/home/endo-plus/web/endo-plus.ru/public_html/libraries/src/Application/SiteApplication.php:746)
at Joomla\CMS\Application\SiteApplication->route()
(/home/endo-plus/web/endo-plus.ru/public_html/libraries/src/Application/SiteApplication.php:232)
at Joomla\CMS\Application\SiteApplication->doExecute()
(/home/endo-plus/web/endo-plus.ru/public_html/libraries/src/Application/CMSApplication.php:293)
at Joomla\CMS\Application\CMSApplication->execute()
(/home/endo-plus/web/endo-plus.ru/public_html/includes/app.php:61)
at require_once('/home/endo-plus/web/endo-plus.ru/public_html/includes/app.php')
(/home/endo-plus/web/endo-plus.ru/public_html/index.php:32)
|