}
}
}
// Need to filter the default value as well
$template->template = InputFilter::getInstance()->clean($template->template, 'cmd');
// Fallback template
if (!empty($template->parent)) {
if (!is_file(JPATH_THEMES . '/' . $template->template . '/index.php')) {
if (!is_file(JPATH_THEMES . '/' . $template->parent . '/index.php')) {
public function render(\Throwable $error): string
{
$app = Factory::getApplication();
// Get the current template from the application
$template = $app->getTemplate(true);
// Push the error object into the document
$this->getDocument()->setError($error);
// Add registry file for the template asset
// 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 file
require_once dirname(__FILE__) . '/includes/app.php';
}
}
}
// Need to filter the default value as well
$template->template = InputFilter::getInstance()->clean($template->template, 'cmd');
// Fallback template
if (!empty($template->parent)) {
if (!is_file(JPATH_THEMES . '/' . $template->template . '/index.php')) {
if (!is_file(JPATH_THEMES . '/' . $template->parent . '/index.php')) {
* @return object|null
*/
public static function getTemplate()
{
$joomla = Factory::getApplication();
$template = $joomla->getTemplate(true);
// get site template
if ($joomla->isClient('administrator')) {
$view = $joomla->input->getCmd('view') === 'style';
$option = $joomla->input->getCmd('option') === 'com_templates';
* @param Application $app
* @param Config $config
*/
public static function initTheme(Application $app, Config $config)
{
$template = static::getTemplate();
// is template active?
if (!empty($template->params['yootheme'])) {
static::loadConfiguration($template, $app, $config);
Event::emit('theme.init');
$resolver = new ParameterResolver($this);
$function = Reflection::getFunction($callable);
$parameters = $resolver->resolve($function, $parameters);
}
return $callable(...$parameters);
}
/**
* Wraps the callback with optional parameter resolving.
*
...$params
): void {
$this->dispatcher->addListener(
$event,
fn(...$arguments) => $container->call(
$method[0] === '@' ? $class . $method : [$class, $method],
$arguments,
),
...$params,
);
}
if (version_compare(JVERSION, '4.0', '>=')) {
return $this->joomla
->getDispatcher()
->addListener(
$event,
fn($event) => $listener($this->prepareArguments($event)),
$priority,
);
}
if (empty($this->listeners[$event])) {
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'];
}
}
$this->input->def($key, $value);
}
// Trigger the onAfterRoute event.
PluginHelper::importPlugin('system');
$this->triggerEvent('onAfterRoute');
$Itemid = $this->input->getInt('Itemid', null);
$this->authorise($Itemid);
}
// 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 file
require_once dirname(__FILE__) . '/includes/app.php';
[2/2]
Error
|
---|
Error: Attempt to assign property "template" on null at /homepages/23/d223146153/htdocs/new/libraries/src/Application/SiteApplication.php:498 at Joomla\CMS\Application\SiteApplication->getTemplate() (/homepages/23/d223146153/htdocs/new/libraries/src/Error/Renderer/HtmlRenderer.php:50) at Joomla\CMS\Error\Renderer\HtmlRenderer->render() (/homepages/23/d223146153/htdocs/new/libraries/src/Exception/ExceptionHandler.php:126) at Joomla\CMS\Exception\ExceptionHandler::render() (/homepages/23/d223146153/htdocs/new/libraries/src/Exception/ExceptionHandler.php:72) at Joomla\CMS\Exception\ExceptionHandler::handleException() (/homepages/23/d223146153/htdocs/new/libraries/src/Application/CMSApplication.php:322) at Joomla\CMS\Application\CMSApplication->execute() (/homepages/23/d223146153/htdocs/new/includes/app.php:61) at require_once('/homepages/23/d223146153/htdocs/new/includes/app.php') (/homepages/23/d223146153/htdocs/new/index.php:32) |
[1/2]
Error
|
---|
Error: Attempt to assign property "template" on null at /homepages/23/d223146153/htdocs/new/libraries/src/Application/SiteApplication.php:498 at Joomla\CMS\Application\SiteApplication->getTemplate() (/homepages/23/d223146153/htdocs/new/templates/yootheme/packages/theme-joomla/src/ThemeLoader.php:102) at YOOtheme\Theme\Joomla\ThemeLoader::getTemplate() (/homepages/23/d223146153/htdocs/new/templates/yootheme/packages/theme-joomla/src/ThemeLoader.php:39) at YOOtheme\Theme\Joomla\ThemeLoader::initTheme() (/homepages/23/d223146153/htdocs/new/templates/yootheme/packages/container/src/Container.php:262) at YOOtheme\Container->call() (/homepages/23/d223146153/htdocs/new/templates/yootheme/packages/application/src/Application/EventLoader.php:59) at YOOtheme\Application\EventLoader->YOOtheme\Application\{closure}() (/homepages/23/d223146153/htdocs/new/templates/yootheme/packages/platform-joomla/src/Dispatcher.php:51) at YOOtheme\Joomla\Dispatcher->YOOtheme\Joomla\{closure}() (/homepages/23/d223146153/htdocs/new/libraries/vendor/joomla/event/src/Dispatcher.php:486) at Joomla\Event\Dispatcher->dispatch() (/homepages/23/d223146153/htdocs/new/libraries/src/Application/EventAware.php:111) at Joomla\CMS\Application\WebApplication->triggerEvent() (/homepages/23/d223146153/htdocs/new/libraries/src/Application/SiteApplication.php:790) at Joomla\CMS\Application\SiteApplication->route() (/homepages/23/d223146153/htdocs/new/libraries/src/Application/SiteApplication.php:232) at Joomla\CMS\Application\SiteApplication->doExecute() (/homepages/23/d223146153/htdocs/new/libraries/src/Application/CMSApplication.php:293) at Joomla\CMS\Application\CMSApplication->execute() (/homepages/23/d223146153/htdocs/new/includes/app.php:61) at require_once('/homepages/23/d223146153/htdocs/new/includes/app.php') (/homepages/23/d223146153/htdocs/new/index.php:32) |