{% extends "partials/page_head.html.twig" %}
{% block head_application -%}
<meta charset="utf-8" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>{{ errorcode|default(500) }} {{ error|default('GANTRY5_ENGINE_UNKNOWN_ERROR'|trans) }}</title>
{% do gantry.document.errorPage(true) -%}
{% do gantry.platform.finalize() -%}
{{ gantry.styles('head', true)|join("\n ")|raw }}
{{ gantry.scripts('head', true)|join("\n ")|raw }}
{%- endblock %}
Arguments
"An exception has been thrown during the rendering of a template ("ERROR: CSS Compilation on file 'hydrogen.scss' failed on fatal error: file_put_contents(/home/seamagaz/public_html/cache/gantry5/g5_hydrogen/scss/source/scssphp_0713034c43c82a89c69ecfa25ccd761337a685a0.parse.scsscache): failed to open stream: No such file or directory")."
$this->displayBlock('head_overrides', $context, $blocks);
$content = ob_get_clean();
$assetFunction($content, $location, $priority);
// line 50
echo "<head>
";
// line 51
echo twig_join_filter(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "document", [], "any", false, false, false, 51), "getHtml", [0 => "head_top"], "method", false, false, false, 51), "
");
echo "
";
// line 52
$this->displayBlock('head_meta', $context, $blocks);
// line 78
$this->displayBlock('head_title', $context, $blocks);
// line 82
echo "
";
// line 83
$this->displayBlock('head_application', $context, $blocks);
// line 87
echo "
";
// line 88
$this->displayBlock('head_ie_stylesheets', $context, $blocks);
// line 91
$this->displayBlock('head', $context, $blocks);
// line 92
$this->displayBlock('head_custom', $context, $blocks);
// line 97
echo twig_join_filter(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "document", [], "any", false, false, false, 97), "getHtml", [0 => "head_bottom"], "method", false, false, false, 97), "
");
echo "
</head>
";
}
// line 7
public function block_head_stylesheets($context, array $blocks = [])
{
Arguments
"head_application"
array:20 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
"faEnabled" => "1"
"faVersion" => "fa4"
]
array:10 [
"head_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_stylesheets"
]
"head_scripts" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_scripts"
]
"head_platform" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_platform"
]
"head_overrides" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_overrides"
]
"head_meta" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_meta"
]
"head_title" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_title"
]
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
"head_ie_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_ie_stylesheets"
]
"head" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head"
]
"head_custom" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_custom"
]
]
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:20 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
"faEnabled" => "1"
"faVersion" => "fa4"
]
array:10 [
"head_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_stylesheets"
]
"head_scripts" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_scripts"
]
"head_platform" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_platform"
]
"head_overrides" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_overrides"
]
"head_meta" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_meta"
]
"head_title" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_title"
]
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
"head_ie_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_ie_stylesheets"
]
"head" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head"
]
"head_custom" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_custom"
]
]
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:10 [
"head_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_stylesheets"
]
"head_scripts" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_scripts"
]
"head_platform" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_platform"
]
"head_overrides" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_overrides"
]
"head_meta" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_meta"
]
"head_title" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_title"
]
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
"head_ie_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_ie_stylesheets"
]
"head" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head"
]
"head_custom" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_custom"
]
]
$this->blocks = [
'head_title' => [$this, 'block_head_title'],
'head_application' => [$this, 'block_head_application'],
'head_platform' => [$this, 'block_head_platform'],
'head' => [$this, 'block_head'],
];
}
protected function doGetParent(array $context)
{
// line 1
return "@nucleus/page_head.html.twig";
}
protected function doDisplay(array $context, array $blocks = [])
{
$macros = $this->macros;
$this->parent = $this->loadTemplate("@nucleus/page_head.html.twig", "partials/page_head.html.twig", 1);
$this->parent->display($context, array_merge($this->blocks, $blocks));
}
// line 3
public function block_head_title($context, array $blocks = [])
{
$macros = $this->macros;
}
// line 6
public function block_head_application($context, array $blocks = [])
{
$macros = $this->macros;
// line 7
if (twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "platform", [], "any", false, false, false, 7), "checkVersion", [0 => 4], "method", false, false, false, 7)) {
echo " ";
// line 8
echo " <jdoc:include type=\"metas\" />
<jdoc:include type=\"styles\" />
<jdoc:include type=\"scripts\" />
";
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:4 [
"head_title" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_title"
]
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
"head_platform" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_platform"
]
"head" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head"
]
]
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:4 [
"head_title" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_title"
]
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
"head_platform" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_platform"
]
"head" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head"
]
]
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:4 [
"head_title" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_title"
]
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
"head_platform" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_platform"
]
"head" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head"
]
]
parent::__construct($env);
$this->source = $this->getSourceContext();
$this->blocks = [
'head_application' => [$this, 'block_head_application'],
];
}
protected function doGetParent(array $context)
{
// line 1
return "partials/page_head.html.twig";
}
protected function doDisplay(array $context, array $blocks = [])
{
$macros = $this->macros;
$this->parent = $this->loadTemplate("partials/page_head.html.twig", "partials/error_head.html.twig", 1);
$this->parent->display($context, array_merge($this->blocks, $blocks));
}
// line 3
public function block_head_application($context, array $blocks = [])
{
$macros = $this->macros;
// line 4
echo "<meta charset=\"utf-8\" />
<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />
<title>";
// line 6
echo twig_escape_filter($this->env, ((array_key_exists("errorcode", $context)) ? (_twig_default_filter(($context["errorcode"] ?? null), 500)) : (500)), "html", null, true);
echo " ";
echo twig_escape_filter($this->env, ((array_key_exists("error", $context)) ? (_twig_default_filter(($context["error"] ?? null), $this->extensions['Gantry\Component\Twig\TwigExtension']->transFilter("GANTRY5_ENGINE_UNKNOWN_ERROR"))) : ($this->extensions['Gantry\Component\Twig\TwigExtension']->transFilter("GANTRY5_ENGINE_UNKNOWN_ERROR"))), "html", null, true);
echo "</title>
";
// line 7
twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "document", [], "any", false, false, false, 7), "errorPage", [0 => true], "method", false, false, false, 7);
// line 8
twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "platform", [], "any", false, false, false, 8), "finalize", [], "method", false, false, false, 8);
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:1 [
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
]
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:1 [
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
]
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:1 [
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
]
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
{
if ($useBlocks && isset($blocks[$name])) {
$template = $blocks[$name][0];
$block = $blocks[$name][1];
} elseif (isset($this->blocks[$name])) {
$template = $this->blocks[$name][0];
$block = $this->blocks[$name][1];
} else {
$template = null;
$block = null;
}
// avoid RCEs when sandbox is enabled
if (null !== $template && !$template instanceof self) {
throw new \LogicException('A block must be a method on a \Twig\Template instance.');
}
if (null !== $template) {
try {
$template->$block($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($template->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
$e->guess();
throw $e;
}
} elseif (false !== $parent = $this->getParent($context)) {
$parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false, $templateContext ?? $this);
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:11 [
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
"page_offcanvas" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_offcanvas"
]
"page_layout" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_layout"
]
"page_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_top"
]
"page_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_bottom"
]
"body_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_top"
]
"body_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_bottom"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page"
]
"page_body" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_body"
]
]
Arguments
"page_head"
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:11 [
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
"page_offcanvas" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_offcanvas"
]
"page_layout" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_layout"
]
"page_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_top"
]
"page_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_bottom"
]
"body_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_top"
]
"body_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_bottom"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page"
]
"page_body" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_body"
]
]
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:11 [
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
"page_offcanvas" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_offcanvas"
]
"page_layout" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_layout"
]
"page_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_top"
]
"page_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_bottom"
]
"body_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_top"
]
"body_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_bottom"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page"
]
"page_body" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_body"
]
]
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:11 [
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
"page_offcanvas" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_offcanvas"
]
"page_layout" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_layout"
]
"page_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_top"
]
"page_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_bottom"
]
"body_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_top"
]
"body_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_bottom"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page"
]
"page_body" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_body"
]
]
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:3 [
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
]
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:3 [
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
]
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:3 [
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
]
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:2 [
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
]
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:2 [
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
]
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:2 [
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
]
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
Arguments
array:7 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
]
* directly (use Twig\Environment::load() instead).
*
* @internal
*/
public function __construct(Environment $env, Template $template)
{
$this->env = $env;
$this->template = $template;
}
/**
* Renders the template.
*
* @param array $context An array of parameters to pass to the template
*/
public function render(array $context = []): string
{
// using func_get_args() allows to not expose the blocks argument
// as it should only be used by internal code
return $this->template->render($context, \func_get_args()[1] ?? []);
}
/**
* Displays the template.
*
* @param array $context An array of parameters to pass to the template
*/
public function display(array $context = [])
{
// using func_get_args() allows to not expose the blocks argument
// as it should only be used by internal code
$this->template->display($context, \func_get_args()[1] ?? []);
}
/**
* Checks if a block is defined.
*
* @param string $name The block name
* @param array $context An array of parameters to pass to the template
*/
Arguments
array:7 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
]
[]
$key = $this->getLoader()->getCacheKey($name).$this->optionsHash;
return $this->templateClassPrefix.hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', $key).(null === $index ? '' : '___'.$index);
}
/**
* Renders a template.
*
* @param string|TemplateWrapper $name The template name
* @param array $context An array of parameters to pass to the template
*
* @return string The rendered template
*
* @throws LoaderError When the template cannot be found
* @throws SyntaxError When an error occurred during compilation
* @throws RuntimeError When an error occurred during rendering
*/
public function render($name, array $context = [])
{
return $this->load($name)->render($context);
}
/**
* Displays a template.
*
* @param string|TemplateWrapper $name The template name
* @param array $context An array of parameters to pass to the template
*
* @throws LoaderError When the template cannot be found
* @throws SyntaxError When an error occurred during compilation
* @throws RuntimeError When an error occurred during rendering
*/
public function display($name, array $context = [])
{
$this->load($name)->display($context);
}
/**
* Loads a template.
*
Arguments
array:7 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
]
$this->renderer = $this->extendTwig($twig, $loader);
}
return $this->renderer;
}
/**
* Render a template file by using given context.
*
* @param string $file
* @param array $context
* @return string
*/
public function render($file, array $context = [])
{
// Include Gantry specific things to the context.
$context = $this->getContext($context);
return $this->renderer()->render($file, $context);
}
/**
* Compile and render twig string.
*
* @param string $string
* @param array $context
* @return string
*/
public function compile($string, array $context = [])
{
$renderer = $this->renderer();
$template = $renderer->createTemplate($string);
// Include Gantry specific things to the context.
$context = $this->getContext($context);
return $template->render($context);
}
Arguments
"error.html.twig"
array:7 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
]
$joomla->document = $this;
/** @var Theme $theme */
$theme = $gantry['theme'];
$app = Factory::getApplication();
$context = array(
'errorcode' => isset($this->error) ? $this->error->getCode() : null,
'error' => isset($this->error) ? $this->error->getMessage() : null,
'debug' => $app->get('debug_lang', '0') == '1' || $app->get('debug', '0') == '1',
'backtrace' => $this->debug ? $this->renderBacktrace() : null
);
// Reset used outline configuration.
unset($gantry['configuration']);
// Render the page.
echo $theme
->setLayout('_error', true)
->render('error.html.twig', $context);
Arguments
"error.html.twig"
array:7 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
]
*
* @param string $directory The name of the template
* @param string $filename The actual filename
*
* @return string The contents of the template
*
* @since 1.7.0
*/
protected function _loadTemplate($directory, $filename)
{
$contents = '';
// Check to see if we have a valid template file
if (is_file($directory . '/' . $filename)) {
// Store the file path
$this->_file = $directory . '/' . $filename;
// Get the file content
ob_start();
require $directory . '/' . $filename;
$contents = ob_get_contents();
ob_end_clean();
}
return $contents;
}
/**
* Fetch the template, and initialise the params
*
* @param array $params Parameters to determine the template
*
* @return HtmlDocument instance of $this to allow chaining
*
* @since 1.7.0
*/
protected function _fetchTemplate($params = [])
{
// Check
$directory = $params['directory'] ?? 'templates';
Arguments
"/home/seamagaz/public_html/templates/g5_hydrogen/error.php"
}
}
}
// Load the language file for the template
$lang = CmsFactory::getLanguage();
// 1.5 or core then 1.6
$lang->load('tpl_' . $template, JPATH_BASE)
|| ($inherits !== '' && $lang->load('tpl_' . $inherits, JPATH_BASE))
|| $lang->load('tpl_' . $template, $directory . '/' . $template)
|| ($inherits !== '' && $lang->load('tpl_' . $inherits, $directory . '/' . $inherits));
// Assign the variables
$this->baseurl = Uri::base(true);
$this->params = $params['params'] ?? new Registry();
$this->template = $template;
// Load
$this->_template = $this->_loadTemplate($baseDir, $file);
return $this;
}
/**
* Parse a document template
*
* @return HtmlDocument instance of $this to allow chaining
*
* @since 1.7.0
*/
protected function _parseTemplate()
{
$matches = [];
if (preg_match_all('#<jdoc:include\ type="([^"]+)"(.*)\/>#iU', $this->_template, $matches)) {
$messages = [];
$template_tags_first = [];
$template_tags_last = [];
Arguments
"/home/seamagaz/public_html/templates/g5_hydrogen"
"error.php"
$name = $options['name'] ?? '';
$title = $options['title'] ?? '';
parent::$_buffer[$type][$name][$title] = $content;
return $this;
}
/**
* Parses the template and populates the buffer
*
* @param array $params Parameters for fetching the template
*
* @return HtmlDocument instance of $this to allow chaining
*
* @since 1.7.0
*/
public function parse($params = [])
{
return $this->_fetchTemplate($params)->_parseTemplate();
}
/**
* Outputs the template to the browser.
*
* @param boolean $caching If true, cache the output
* @param array $params Associative array of attributes
*
* @return string The rendered data
*
* @since 1.7.0
*/
public function render($caching = false, $params = [])
{
$this->_caching = $caching;
if (empty($this->_template)) {
$this->parse($params);
}
Arguments
array:7 [
"template" => "g5_hydrogen"
"directory" => "/home/seamagaz/public_html/templates"
"debug" => false
"csp_nonce" => null
"templateInherits" => ""
"params" => Joomla\Registry\Registry {#1085}
"file" => "error.php"
]
{
return $this->_fetchTemplate($params)->_parseTemplate();
}
/**
* Outputs the template to the browser.
*
* @param boolean $caching If true, cache the output
* @param array $params Associative array of attributes
*
* @return string The rendered data
*
* @since 1.7.0
*/
public function render($caching = false, $params = [])
{
$this->_caching = $caching;
if (empty($this->_template)) {
$this->parse($params);
}
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;
}
/**
* Count the modules in the given position
*
* @param string $positionName The position to use
* @param boolean $withContentOnly Count only a modules which actually has a content
*
* @return integer Number of modules found
*
Arguments
array:7 [
"template" => "g5_hydrogen"
"directory" => "/home/seamagaz/public_html/templates"
"debug" => false
"csp_nonce" => null
"templateInherits" => ""
"params" => Joomla\Registry\Registry {#1085}
"file" => "error.php"
]
if ($status < 400 || $status > 599) {
$status = 500;
}
$errorReporting = CmsFactory::getApplication()->get('error_reporting');
if ($errorReporting === "development" || $errorReporting === "maximum") {
$status .= ' ' . str_replace("\n", ' ', $this->_error->getMessage());
}
CmsFactory::getApplication()->setHeader('status', $status);
// Set variables
$this->debug = $params['debug'] ?? false;
$this->error = $this->_error;
$params['file'] = 'error.php';
return parent::render($cache, $params);
}
/**
* Render the backtrace
*
* @return string The contents of the backtrace
*
* @since 1.7.0
*/
public function renderBacktrace()
{
// If no error object is set return null
if (!isset($this->_error)) {
return;
}
// The back trace
$backtrace = $this->_error->getTrace();
// Add the position of the actual file
Arguments
false
array:7 [
"template" => "g5_hydrogen"
"directory" => "/home/seamagaz/public_html/templates"
"debug" => false
"csp_nonce" => null
"templateInherits" => ""
"params" => Joomla\Registry\Registry {#1085}
"file" => "error.php"
]
if (!empty($template->parent)) {
$wa->addTemplateRegistryFile($template->parent, $app->getClientId());
}
if (ob_get_contents()) {
ob_end_clean();
}
$this->getDocument()->setTitle(Text::_('Error') . ': ' . $error->getCode());
return $this->getDocument()->render(
false,
[
'template' => $template->template,
'directory' => JPATH_THEMES,
'debug' => JDEBUG,
'csp_nonce' => $app->get('csp_nonce'),
'templateInherits' => $template->parent,
'params' => $template->params,
]
);
}
}
Arguments
false
array:7 [
"template" => "g5_hydrogen"
"directory" => "/home/seamagaz/public_html/templates"
"debug" => false
"csp_nonce" => null
"templateInherits" => ""
"params" => Joomla\Registry\Registry {#1085}
"file" => "error.php"
]
* Lastly, if all else fails, we default onto the HTML format to at least render something
*/
if (Factory::$document) {
$format = Factory::$document->getType();
} else {
$format = $app->getInput()->getString('format', 'html');
}
try {
$renderer = AbstractRenderer::getRenderer($format);
} catch (\InvalidArgumentException $e) {
// Default to the HTML renderer
$renderer = AbstractRenderer::getRenderer('html');
}
// 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();
}
if ($isCli) {
echo $data;
} else {
/** @var CMSApplication $app */
// Do not allow cache
$app->allowCache(false);
$app->setBody($data);
}
// This return is needed to ensure the test suite does not trigger the non-Exception handling below
return;
} catch (\Throwable $errorRendererError) {
Arguments
Joomla\CMS\Router\Exception\RouteNotFoundException {#1169
#message: "Page not found"
#code: 404
#file: "/home/seamagaz/public_html/libraries/src/Router/Router.php"
#line: 155
}
}
}
// Always return false, this will tell PHP to handle the error internally
return false;
}
/**
* Handles exceptions: logs errors and renders error page.
*
* @param \Exception|\Throwable $error An Exception or Throwable (PHP 7+) object for which to render the error page.
*
* @return void
*
* @since 3.10.0
*/
public static function handleException(\Throwable $error)
{
static::logException($error);
static::render($error);
}
/**
* Render the error page based on an exception.
*
* @param \Throwable $error An Exception or Throwable (PHP 7+) object for which to render the error page.
*
* @return void
*
* @since 3.0
*/
public static function render(\Throwable $error)
{
try {
$app = Factory::getApplication();
// Flag if we are on cli
$isCli = $app->isClient('cli');
// If site is offline and it's a 404 error, just go to index (to see offline message, instead of 404)
Arguments
Joomla\CMS\Router\Exception\RouteNotFoundException {#1169
#message: "Page not found"
#code: 404
#file: "/home/seamagaz/public_html/libraries/src/Router/Router.php"
#line: 155
}
$this->compress();
// Trigger the onAfterCompress event.
$this->triggerEvent('onAfterCompress');
}
} catch (\Throwable $throwable) {
/** @var ErrorEvent $event */
$event = AbstractEvent::create(
'onError',
[
'subject' => $throwable,
'eventClass' => ErrorEvent::class,
'application' => $this,
]
);
// Trigger the onError event.
$this->triggerEvent('onError', $event);
ExceptionHandler::handleException($event->getError());
}
// Trigger the onBeforeRespond event.
$this->getDispatcher()->dispatch('onBeforeRespond');
// Send the application response.
$this->respond();
// Trigger the onAfterRespond event.
$this->getDispatcher()->dispatch('onAfterRespond');
}
/**
* Check if the user is required to reset their password.
*
* If the user is required to reset their password will be redirected to the page that manage the password reset.
*
* @param string $option The option that manage the password reset
* @param string $view The view that manage the password reset
* @param string $layout The layout of the view that manage the password reset
Arguments
Joomla\CMS\Router\Exception\RouteNotFoundException {#1169
#message: "Page not found"
#code: 404
#file: "/home/seamagaz/public_html/libraries/src/Router/Router.php"
#line: 155
}
$compiler->setImportPaths([[$this, 'findImport']]);
// Run the compiler.
$compiler->addVariables($this->getVariables(true));
$scss = '$output-bourbon-deprecation-warnings: false;' . "\n" . '@import "' . $in . '.scss"';
try {
$this->result = $compiler->compileString($scss);
$css = $this->result->getCss();
} catch (CompilerException $e) {
if (version_compare(static::$options['compatibility'], '5.5', '<')) {
static::$options['legacy'][$in] = true;
$this->warnings['__TITLE__'] = 'Please update your theme!';
$this->warnings[$in] = ['WARNING: ' . $e->getMessage()];
return $this->compileLegacyFile($in);
}
throw new \RuntimeException("ERROR: CSS Compilation on file '{$in}.scss' failed on error: {$e->getMessage()}", 500, $e);
} catch (\Exception $e) {
throw new \RuntimeException("ERROR: CSS Compilation on file '{$in}.scss' failed on fatal error: {$e->getMessage()}", 500, $e);
}
if (strpos($css, $scss) === 0) {
$css = '/* ' . $scss . ' */';
}
// Extract map from css and save it as separate file.
$pos = strrpos($css, '/*# sourceMappingURL=');
if ($pos !== false) {
$map = json_decode(urldecode(substr($css, $pos + 43, -3)), true);
/** @var Document $document */
$document = $gantry['document'];
foreach ($map['sources'] as &$source) {
$source = $document::url($source, false, -1);
}
unset($source);
$mapFile = JsonFile::instance($path . '.map');
$mapFile->save($map);
Arguments
"ERROR: CSS Compilation on file 'hydrogen.scss' failed on fatal error: file_put_contents(/home/seamagaz/public_html/cache/gantry5/g5_hydrogen/scss/source/scssphp_0713034c43c82a89c69ecfa25ccd761337a685a0.parse.scsscache): failed to open stream: No such file or directory"
/**
* Returns URL to CSS file.
*
* If file does not exist, it will be created by using CSS compiler.
*
* @param string $name
* @return string
*/
public function css($name)
{
if (!isset($this->cssCache[$name])) {
$compiler = $this->compiler();
if ($compiler->needsCompile($name, [$this, 'getCssVariables'])) {
if (\GANTRY_DEBUGGER) {
Debugger::startTimer("css-{$name}", "Compiling CSS: {$name}");
Debugger::addMessage("Compiling CSS: {$name}");
}
$compiler->compileFile($name);
if (\GANTRY_DEBUGGER) {
Debugger::stopTimer("css-{$name}");
}
}
$this->cssCache[$name] = $compiler->getCssUrl($name);
}
return $this->cssCache[$name];
}
/**
* @return array
*/
public function getCssVariables()
{
if ($this->preset) {
$variables = $this->presets()->flatten($this->preset . '.styles', '-');
} else {
Arguments
$styles = $this->getAssetsInLocation('styles', $location);
if (!$styles) {
return [];
}
$gantry = Gantry::instance();
/** @var Theme|null $theme */
$theme = isset($gantry['theme']) ? $gantry['theme'] : null;
/** @var Document $document */
$document = $gantry['document'];
foreach ($styles as $key => $style) {
if (isset($style['href'])) {
$url = $style['href'];
if ($theme && preg_match('|\.scss$|', $url)) {
// Compile SCSS files.
$url = $theme->css(Gantry::basename($url, '.scss'));
}
// Deal with streams and relative paths.
$url = $document::url($url, null, null, false);
$styles[$key]['href'] = $url;
}
}
return $styles;
}
/**
* @param string $location
* @return array
* @since 5.4.3
*/
public function getScripts($location = 'head')
{
$scripts = $this->getAssetsInLocation('scripts', $location);
Arguments
if (!empty($element['src'])) {
$success = static::addScript($element, $priority, $location);
} elseif (!empty($element['content'])) {
$success = static::addInlineScript($element, $priority, $location);
}
break;
}
return $success;
}
/**
* @param string $location
* @return array
*/
public static function getStyles($location = 'head')
{
static::getObject();
$styles = static::$stack[0]->getStyles($location);
$output = [];
foreach ($styles as $style) {
switch ($style[':type']) {
case 'file':
$attribs = '';
if ($style['media']) {
$attribs .= ' media="' . static::escape($style['media']) . '"';
}
$output[] = sprintf(
'<link rel="stylesheet" href="%s" type="%s"%s />',
static::escape($style['href']),
static::escape($style['type']),
$attribs
);
break;
case 'inline':
$attribs = '';
if ($style['type'] !== 'text/css') {
Arguments
* @return string
*/
public function siteUrl()
{
/** @var Document $document */
$document = $this['document'];
return $document::siteUrl();
}
/**
* @param string $location
* @return array
*/
public function styles($location = 'head')
{
/** @var Document $document */
$document = $this['document'];
return $document::getStyles($location);
}
/**
* @param string $location
* @return array
*/
public function scripts($location = 'head')
{
/** @var Document $document */
$document = $this['document'];
return $document::getScripts($location);
}
/**
* Load Javascript framework / extension in platform independent way.
*
* @param string $framework
* @return bool
*/
Arguments
/**
* @return bool
*/
public function admin()
{
/** @var CMSApplication $application */
$app = Factory::getApplication();
return $app->isClient('administrator');
}
/**
* @param string $location
* @param bool $force
* @return array
*/
public function styles($location = 'head', $force = false)
{
// Do not display head, Joomla will take care of it (most of the time).
return (!$force && $location === 'head') ? [] : parent::styles($location);
}
/**
* @param string $location
* @param bool $force
* @return array
*/
public function scripts($location = 'head', $force = false)
{
// Do not display head, Joomla will take care of it (most of the time).
return (!$force && $location === 'head') ? [] : parent::scripts($location);
}
/**
* @return array
*/
protected function loadGlobal()
{
$global = null;
Arguments
if ($ignoreStrictCheck || !$env->isStrictVariables()) {
return;
}
throw new RuntimeError(sprintf('Neither the property "%1$s" nor one of the methods "%1$s()", "get%1$s()"/"is%1$s()"/"has%1$s()" or "__call()" exist and have public access in class "%2$s".', $item, $class), $lineno, $source);
}
if ($isDefinedTest) {
return true;
}
if ($sandboxed) {
$env->getExtension(SandboxExtension::class)->checkMethodAllowed($object, $method, $lineno, $source);
}
// Some objects throw exceptions when they have __call, and the method we try
// to call is not supported. If ignoreStrictCheck is true, we should return null.
try {
$ret = $object->$method(...$arguments);
} catch (\BadMethodCallException $e) {
if ($call && ($ignoreStrictCheck || !$env->isStrictVariables())) {
return;
}
throw $e;
}
return $ret;
}
/**
* Returns the values from a single column in the input array.
*
* <pre>
* {% set items = [{ 'fruit' : 'apple'}, {'fruit' : 'orange' }] %}
*
* {% set fruits = items|column('fruit') %}
*
* {# fruits now contains ['apple', 'orange'] #}
* </pre>
Arguments
// line 3
public function block_head_application($context, array $blocks = [])
{
$macros = $this->macros;
// line 4
echo "<meta charset=\"utf-8\" />
<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />
<title>";
// line 6
echo twig_escape_filter($this->env, ((array_key_exists("errorcode", $context)) ? (_twig_default_filter(($context["errorcode"] ?? null), 500)) : (500)), "html", null, true);
echo " ";
echo twig_escape_filter($this->env, ((array_key_exists("error", $context)) ? (_twig_default_filter(($context["error"] ?? null), $this->extensions['Gantry\Component\Twig\TwigExtension']->transFilter("GANTRY5_ENGINE_UNKNOWN_ERROR"))) : ($this->extensions['Gantry\Component\Twig\TwigExtension']->transFilter("GANTRY5_ENGINE_UNKNOWN_ERROR"))), "html", null, true);
echo "</title>
";
// line 7
twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "document", [], "any", false, false, false, 7), "errorPage", [0 => true], "method", false, false, false, 7);
// line 8
twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "platform", [], "any", false, false, false, 8), "finalize", [], "method", false, false, false, 8);
// line 9
echo twig_join_filter(twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "styles", [0 => "head", 1 => true], "method", false, false, false, 9), "
");
echo "
";
// line 10
echo twig_join_filter(twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "scripts", [0 => "head", 1 => true], "method", false, false, false, 10), "
");
}
public function getTemplateName()
{
return "partials/error_head.html.twig";
}
public function isTraitable()
{
return false;
}
public function getDebugInfo()
{
Arguments
Twig\Environment {#1233}
Twig\Source {#2690}
Gantry\Framework\Gantry {#1082}
"styles"
array:2 [
0 => "head"
1 => true
]
"method"
false
false
false
9
{
if ($useBlocks && isset($blocks[$name])) {
$template = $blocks[$name][0];
$block = $blocks[$name][1];
} elseif (isset($this->blocks[$name])) {
$template = $this->blocks[$name][0];
$block = $this->blocks[$name][1];
} else {
$template = null;
$block = null;
}
// avoid RCEs when sandbox is enabled
if (null !== $template && !$template instanceof self) {
throw new \LogicException('A block must be a method on a \Twig\Template instance.');
}
if (null !== $template) {
try {
$template->$block($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($template->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
$e->guess();
throw $e;
}
} elseif (false !== $parent = $this->getParent($context)) {
$parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false, $templateContext ?? $this);
Arguments
array:20 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
"faEnabled" => "1"
"faVersion" => "fa4"
]
array:10 [
"head_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_stylesheets"
]
"head_scripts" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_scripts"
]
"head_platform" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_platform"
]
"head_overrides" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_overrides"
]
"head_meta" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_meta"
]
"head_title" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_title"
]
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
"head_ie_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_ie_stylesheets"
]
"head" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head"
]
"head_custom" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_custom"
]
]
$this->displayBlock('head_overrides', $context, $blocks);
$content = ob_get_clean();
$assetFunction($content, $location, $priority);
// line 50
echo "<head>
";
// line 51
echo twig_join_filter(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "document", [], "any", false, false, false, 51), "getHtml", [0 => "head_top"], "method", false, false, false, 51), "
");
echo "
";
// line 52
$this->displayBlock('head_meta', $context, $blocks);
// line 78
$this->displayBlock('head_title', $context, $blocks);
// line 82
echo "
";
// line 83
$this->displayBlock('head_application', $context, $blocks);
// line 87
echo "
";
// line 88
$this->displayBlock('head_ie_stylesheets', $context, $blocks);
// line 91
$this->displayBlock('head', $context, $blocks);
// line 92
$this->displayBlock('head_custom', $context, $blocks);
// line 97
echo twig_join_filter(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "document", [], "any", false, false, false, 97), "getHtml", [0 => "head_bottom"], "method", false, false, false, 97), "
");
echo "
</head>
";
}
// line 7
public function block_head_stylesheets($context, array $blocks = [])
{
Arguments
"head_application"
array:20 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
"faEnabled" => "1"
"faVersion" => "fa4"
]
array:10 [
"head_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_stylesheets"
]
"head_scripts" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_scripts"
]
"head_platform" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_platform"
]
"head_overrides" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_overrides"
]
"head_meta" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_meta"
]
"head_title" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_title"
]
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
"head_ie_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_ie_stylesheets"
]
"head" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head"
]
"head_custom" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_custom"
]
]
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:20 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
"faEnabled" => "1"
"faVersion" => "fa4"
]
array:10 [
"head_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_stylesheets"
]
"head_scripts" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_scripts"
]
"head_platform" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_platform"
]
"head_overrides" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_overrides"
]
"head_meta" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_meta"
]
"head_title" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_title"
]
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
"head_ie_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_ie_stylesheets"
]
"head" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head"
]
"head_custom" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_custom"
]
]
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:10 [
"head_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_stylesheets"
]
"head_scripts" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_scripts"
]
"head_platform" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_platform"
]
"head_overrides" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_overrides"
]
"head_meta" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_meta"
]
"head_title" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_title"
]
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
"head_ie_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_ie_stylesheets"
]
"head" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head"
]
"head_custom" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_custom"
]
]
$this->blocks = [
'head_title' => [$this, 'block_head_title'],
'head_application' => [$this, 'block_head_application'],
'head_platform' => [$this, 'block_head_platform'],
'head' => [$this, 'block_head'],
];
}
protected function doGetParent(array $context)
{
// line 1
return "@nucleus/page_head.html.twig";
}
protected function doDisplay(array $context, array $blocks = [])
{
$macros = $this->macros;
$this->parent = $this->loadTemplate("@nucleus/page_head.html.twig", "partials/page_head.html.twig", 1);
$this->parent->display($context, array_merge($this->blocks, $blocks));
}
// line 3
public function block_head_title($context, array $blocks = [])
{
$macros = $this->macros;
}
// line 6
public function block_head_application($context, array $blocks = [])
{
$macros = $this->macros;
// line 7
if (twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "platform", [], "any", false, false, false, 7), "checkVersion", [0 => 4], "method", false, false, false, 7)) {
echo " ";
// line 8
echo " <jdoc:include type=\"metas\" />
<jdoc:include type=\"styles\" />
<jdoc:include type=\"scripts\" />
";
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:4 [
"head_title" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_title"
]
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
"head_platform" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_platform"
]
"head" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head"
]
]
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:4 [
"head_title" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_title"
]
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
"head_platform" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_platform"
]
"head" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head"
]
]
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:4 [
"head_title" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_title"
]
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
"head_platform" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_platform"
]
"head" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head"
]
]
parent::__construct($env);
$this->source = $this->getSourceContext();
$this->blocks = [
'head_application' => [$this, 'block_head_application'],
];
}
protected function doGetParent(array $context)
{
// line 1
return "partials/page_head.html.twig";
}
protected function doDisplay(array $context, array $blocks = [])
{
$macros = $this->macros;
$this->parent = $this->loadTemplate("partials/page_head.html.twig", "partials/error_head.html.twig", 1);
$this->parent->display($context, array_merge($this->blocks, $blocks));
}
// line 3
public function block_head_application($context, array $blocks = [])
{
$macros = $this->macros;
// line 4
echo "<meta charset=\"utf-8\" />
<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />
<title>";
// line 6
echo twig_escape_filter($this->env, ((array_key_exists("errorcode", $context)) ? (_twig_default_filter(($context["errorcode"] ?? null), 500)) : (500)), "html", null, true);
echo " ";
echo twig_escape_filter($this->env, ((array_key_exists("error", $context)) ? (_twig_default_filter(($context["error"] ?? null), $this->extensions['Gantry\Component\Twig\TwigExtension']->transFilter("GANTRY5_ENGINE_UNKNOWN_ERROR"))) : ($this->extensions['Gantry\Component\Twig\TwigExtension']->transFilter("GANTRY5_ENGINE_UNKNOWN_ERROR"))), "html", null, true);
echo "</title>
";
// line 7
twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "document", [], "any", false, false, false, 7), "errorPage", [0 => true], "method", false, false, false, 7);
// line 8
twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "platform", [], "any", false, false, false, 8), "finalize", [], "method", false, false, false, 8);
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:1 [
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
]
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:1 [
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
]
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:1 [
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
]
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
{
if ($useBlocks && isset($blocks[$name])) {
$template = $blocks[$name][0];
$block = $blocks[$name][1];
} elseif (isset($this->blocks[$name])) {
$template = $this->blocks[$name][0];
$block = $this->blocks[$name][1];
} else {
$template = null;
$block = null;
}
// avoid RCEs when sandbox is enabled
if (null !== $template && !$template instanceof self) {
throw new \LogicException('A block must be a method on a \Twig\Template instance.');
}
if (null !== $template) {
try {
$template->$block($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($template->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
$e->guess();
throw $e;
}
} elseif (false !== $parent = $this->getParent($context)) {
$parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false, $templateContext ?? $this);
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:11 [
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
"page_offcanvas" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_offcanvas"
]
"page_layout" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_layout"
]
"page_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_top"
]
"page_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_bottom"
]
"body_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_top"
]
"body_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_bottom"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page"
]
"page_body" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_body"
]
]
Arguments
"page_head"
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:11 [
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
"page_offcanvas" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_offcanvas"
]
"page_layout" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_layout"
]
"page_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_top"
]
"page_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_bottom"
]
"body_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_top"
]
"body_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_bottom"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page"
]
"page_body" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_body"
]
]
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:11 [
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
"page_offcanvas" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_offcanvas"
]
"page_layout" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_layout"
]
"page_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_top"
]
"page_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_bottom"
]
"body_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_top"
]
"body_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_bottom"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page"
]
"page_body" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_body"
]
]
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:11 [
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
"page_offcanvas" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_offcanvas"
]
"page_layout" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_layout"
]
"page_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_top"
]
"page_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_bottom"
]
"body_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_top"
]
"body_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_bottom"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page"
]
"page_body" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_body"
]
]
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:3 [
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
]
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:3 [
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
]
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:3 [
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
]
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:2 [
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
]
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:2 [
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
]
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:2 [
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
]
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
Arguments
array:7 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
]
* directly (use Twig\Environment::load() instead).
*
* @internal
*/
public function __construct(Environment $env, Template $template)
{
$this->env = $env;
$this->template = $template;
}
/**
* Renders the template.
*
* @param array $context An array of parameters to pass to the template
*/
public function render(array $context = []): string
{
// using func_get_args() allows to not expose the blocks argument
// as it should only be used by internal code
return $this->template->render($context, \func_get_args()[1] ?? []);
}
/**
* Displays the template.
*
* @param array $context An array of parameters to pass to the template
*/
public function display(array $context = [])
{
// using func_get_args() allows to not expose the blocks argument
// as it should only be used by internal code
$this->template->display($context, \func_get_args()[1] ?? []);
}
/**
* Checks if a block is defined.
*
* @param string $name The block name
* @param array $context An array of parameters to pass to the template
*/
Arguments
array:7 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
]
[]
$key = $this->getLoader()->getCacheKey($name).$this->optionsHash;
return $this->templateClassPrefix.hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', $key).(null === $index ? '' : '___'.$index);
}
/**
* Renders a template.
*
* @param string|TemplateWrapper $name The template name
* @param array $context An array of parameters to pass to the template
*
* @return string The rendered template
*
* @throws LoaderError When the template cannot be found
* @throws SyntaxError When an error occurred during compilation
* @throws RuntimeError When an error occurred during rendering
*/
public function render($name, array $context = [])
{
return $this->load($name)->render($context);
}
/**
* Displays a template.
*
* @param string|TemplateWrapper $name The template name
* @param array $context An array of parameters to pass to the template
*
* @throws LoaderError When the template cannot be found
* @throws SyntaxError When an error occurred during compilation
* @throws RuntimeError When an error occurred during rendering
*/
public function display($name, array $context = [])
{
$this->load($name)->display($context);
}
/**
* Loads a template.
*
Arguments
array:7 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
]
$this->renderer = $this->extendTwig($twig, $loader);
}
return $this->renderer;
}
/**
* Render a template file by using given context.
*
* @param string $file
* @param array $context
* @return string
*/
public function render($file, array $context = [])
{
// Include Gantry specific things to the context.
$context = $this->getContext($context);
return $this->renderer()->render($file, $context);
}
/**
* Compile and render twig string.
*
* @param string $string
* @param array $context
* @return string
*/
public function compile($string, array $context = [])
{
$renderer = $this->renderer();
$template = $renderer->createTemplate($string);
// Include Gantry specific things to the context.
$context = $this->getContext($context);
return $template->render($context);
}
Arguments
"error.html.twig"
array:7 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
]
$joomla->document = $this;
/** @var Theme $theme */
$theme = $gantry['theme'];
$app = Factory::getApplication();
$context = array(
'errorcode' => isset($this->error) ? $this->error->getCode() : null,
'error' => isset($this->error) ? $this->error->getMessage() : null,
'debug' => $app->get('debug_lang', '0') == '1' || $app->get('debug', '0') == '1',
'backtrace' => $this->debug ? $this->renderBacktrace() : null
);
// Reset used outline configuration.
unset($gantry['configuration']);
// Render the page.
echo $theme
->setLayout('_error', true)
->render('error.html.twig', $context);
Arguments
"error.html.twig"
array:7 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
]
*
* @param string $directory The name of the template
* @param string $filename The actual filename
*
* @return string The contents of the template
*
* @since 1.7.0
*/
protected function _loadTemplate($directory, $filename)
{
$contents = '';
// Check to see if we have a valid template file
if (is_file($directory . '/' . $filename)) {
// Store the file path
$this->_file = $directory . '/' . $filename;
// Get the file content
ob_start();
require $directory . '/' . $filename;
$contents = ob_get_contents();
ob_end_clean();
}
return $contents;
}
/**
* Fetch the template, and initialise the params
*
* @param array $params Parameters to determine the template
*
* @return HtmlDocument instance of $this to allow chaining
*
* @since 1.7.0
*/
protected function _fetchTemplate($params = [])
{
// Check
$directory = $params['directory'] ?? 'templates';
Arguments
"/home/seamagaz/public_html/templates/g5_hydrogen/error.php"
}
}
}
// Load the language file for the template
$lang = CmsFactory::getLanguage();
// 1.5 or core then 1.6
$lang->load('tpl_' . $template, JPATH_BASE)
|| ($inherits !== '' && $lang->load('tpl_' . $inherits, JPATH_BASE))
|| $lang->load('tpl_' . $template, $directory . '/' . $template)
|| ($inherits !== '' && $lang->load('tpl_' . $inherits, $directory . '/' . $inherits));
// Assign the variables
$this->baseurl = Uri::base(true);
$this->params = $params['params'] ?? new Registry();
$this->template = $template;
// Load
$this->_template = $this->_loadTemplate($baseDir, $file);
return $this;
}
/**
* Parse a document template
*
* @return HtmlDocument instance of $this to allow chaining
*
* @since 1.7.0
*/
protected function _parseTemplate()
{
$matches = [];
if (preg_match_all('#<jdoc:include\ type="([^"]+)"(.*)\/>#iU', $this->_template, $matches)) {
$messages = [];
$template_tags_first = [];
$template_tags_last = [];
Arguments
"/home/seamagaz/public_html/templates/g5_hydrogen"
"error.php"
$name = $options['name'] ?? '';
$title = $options['title'] ?? '';
parent::$_buffer[$type][$name][$title] = $content;
return $this;
}
/**
* Parses the template and populates the buffer
*
* @param array $params Parameters for fetching the template
*
* @return HtmlDocument instance of $this to allow chaining
*
* @since 1.7.0
*/
public function parse($params = [])
{
return $this->_fetchTemplate($params)->_parseTemplate();
}
/**
* Outputs the template to the browser.
*
* @param boolean $caching If true, cache the output
* @param array $params Associative array of attributes
*
* @return string The rendered data
*
* @since 1.7.0
*/
public function render($caching = false, $params = [])
{
$this->_caching = $caching;
if (empty($this->_template)) {
$this->parse($params);
}
Arguments
array:7 [
"template" => "g5_hydrogen"
"directory" => "/home/seamagaz/public_html/templates"
"debug" => false
"csp_nonce" => null
"templateInherits" => ""
"params" => Joomla\Registry\Registry {#1085}
"file" => "error.php"
]
{
return $this->_fetchTemplate($params)->_parseTemplate();
}
/**
* Outputs the template to the browser.
*
* @param boolean $caching If true, cache the output
* @param array $params Associative array of attributes
*
* @return string The rendered data
*
* @since 1.7.0
*/
public function render($caching = false, $params = [])
{
$this->_caching = $caching;
if (empty($this->_template)) {
$this->parse($params);
}
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;
}
/**
* Count the modules in the given position
*
* @param string $positionName The position to use
* @param boolean $withContentOnly Count only a modules which actually has a content
*
* @return integer Number of modules found
*
Arguments
array:7 [
"template" => "g5_hydrogen"
"directory" => "/home/seamagaz/public_html/templates"
"debug" => false
"csp_nonce" => null
"templateInherits" => ""
"params" => Joomla\Registry\Registry {#1085}
"file" => "error.php"
]
if ($status < 400 || $status > 599) {
$status = 500;
}
$errorReporting = CmsFactory::getApplication()->get('error_reporting');
if ($errorReporting === "development" || $errorReporting === "maximum") {
$status .= ' ' . str_replace("\n", ' ', $this->_error->getMessage());
}
CmsFactory::getApplication()->setHeader('status', $status);
// Set variables
$this->debug = $params['debug'] ?? false;
$this->error = $this->_error;
$params['file'] = 'error.php';
return parent::render($cache, $params);
}
/**
* Render the backtrace
*
* @return string The contents of the backtrace
*
* @since 1.7.0
*/
public function renderBacktrace()
{
// If no error object is set return null
if (!isset($this->_error)) {
return;
}
// The back trace
$backtrace = $this->_error->getTrace();
// Add the position of the actual file
Arguments
false
array:7 [
"template" => "g5_hydrogen"
"directory" => "/home/seamagaz/public_html/templates"
"debug" => false
"csp_nonce" => null
"templateInherits" => ""
"params" => Joomla\Registry\Registry {#1085}
"file" => "error.php"
]
if (!empty($template->parent)) {
$wa->addTemplateRegistryFile($template->parent, $app->getClientId());
}
if (ob_get_contents()) {
ob_end_clean();
}
$this->getDocument()->setTitle(Text::_('Error') . ': ' . $error->getCode());
return $this->getDocument()->render(
false,
[
'template' => $template->template,
'directory' => JPATH_THEMES,
'debug' => JDEBUG,
'csp_nonce' => $app->get('csp_nonce'),
'templateInherits' => $template->parent,
'params' => $template->params,
]
);
}
}
Arguments
false
array:7 [
"template" => "g5_hydrogen"
"directory" => "/home/seamagaz/public_html/templates"
"debug" => false
"csp_nonce" => null
"templateInherits" => ""
"params" => Joomla\Registry\Registry {#1085}
"file" => "error.php"
]
* Lastly, if all else fails, we default onto the HTML format to at least render something
*/
if (Factory::$document) {
$format = Factory::$document->getType();
} else {
$format = $app->getInput()->getString('format', 'html');
}
try {
$renderer = AbstractRenderer::getRenderer($format);
} catch (\InvalidArgumentException $e) {
// Default to the HTML renderer
$renderer = AbstractRenderer::getRenderer('html');
}
// 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();
}
if ($isCli) {
echo $data;
} else {
/** @var CMSApplication $app */
// Do not allow cache
$app->allowCache(false);
$app->setBody($data);
}
// This return is needed to ensure the test suite does not trigger the non-Exception handling below
return;
} catch (\Throwable $errorRendererError) {
Arguments
Joomla\CMS\Router\Exception\RouteNotFoundException {#1169
#message: "Page not found"
#code: 404
#file: "/home/seamagaz/public_html/libraries/src/Router/Router.php"
#line: 155
}
}
}
// Always return false, this will tell PHP to handle the error internally
return false;
}
/**
* Handles exceptions: logs errors and renders error page.
*
* @param \Exception|\Throwable $error An Exception or Throwable (PHP 7+) object for which to render the error page.
*
* @return void
*
* @since 3.10.0
*/
public static function handleException(\Throwable $error)
{
static::logException($error);
static::render($error);
}
/**
* Render the error page based on an exception.
*
* @param \Throwable $error An Exception or Throwable (PHP 7+) object for which to render the error page.
*
* @return void
*
* @since 3.0
*/
public static function render(\Throwable $error)
{
try {
$app = Factory::getApplication();
// Flag if we are on cli
$isCli = $app->isClient('cli');
// If site is offline and it's a 404 error, just go to index (to see offline message, instead of 404)
Arguments
Joomla\CMS\Router\Exception\RouteNotFoundException {#1169
#message: "Page not found"
#code: 404
#file: "/home/seamagaz/public_html/libraries/src/Router/Router.php"
#line: 155
}
$this->compress();
// Trigger the onAfterCompress event.
$this->triggerEvent('onAfterCompress');
}
} catch (\Throwable $throwable) {
/** @var ErrorEvent $event */
$event = AbstractEvent::create(
'onError',
[
'subject' => $throwable,
'eventClass' => ErrorEvent::class,
'application' => $this,
]
);
// Trigger the onError event.
$this->triggerEvent('onError', $event);
ExceptionHandler::handleException($event->getError());
}
// Trigger the onBeforeRespond event.
$this->getDispatcher()->dispatch('onBeforeRespond');
// Send the application response.
$this->respond();
// Trigger the onAfterRespond event.
$this->getDispatcher()->dispatch('onAfterRespond');
}
/**
* Check if the user is required to reset their password.
*
* If the user is required to reset their password will be redirected to the page that manage the password reset.
*
* @param string $option The option that manage the password reset
* @param string $view The view that manage the password reset
* @param string $layout The layout of the view that manage the password reset
Arguments
Joomla\CMS\Router\Exception\RouteNotFoundException {#1169
#message: "Page not found"
#code: 404
#file: "/home/seamagaz/public_html/libraries/src/Router/Router.php"
#line: 155
}
/**
* Put in cache the result of $operation on $what,
* which is known as dependant from the content of $options
*
* @param string $operation
* @param mixed $what
* @param mixed $value
* @param array $options
*
* @return void
*/
public function setCache($operation, $what, $value, $options = [])
{
$fileCache = self::$cacheDir . self::cacheName($operation, $what, $options);
$c = ['value' => $value];
$c = serialize($c);
file_put_contents($fileCache, $c);
if (self::$forceRefresh === 'once') {
self::$refreshed[$fileCache] = true;
}
}
/**
* Get the cache name for the caching of $operation on $what,
* which is known as dependant from the content of $options
*
* @param string $operation
* @param mixed $what
* @param array $options
*
* @return string
*/
private static function cacheName($operation, $what, $options = [])
{
$t = [
'version' => self::CACHE_VERSION,
Arguments
"file_put_contents(/home/seamagaz/public_html/cache/gantry5/g5_hydrogen/scss/source/scssphp_0713034c43c82a89c69ecfa25ccd761337a685a0.parse.scsscache): failed to open stream: No such file or directory"
/**
* Put in cache the result of $operation on $what,
* which is known as dependant from the content of $options
*
* @param string $operation
* @param mixed $what
* @param mixed $value
* @param array $options
*
* @return void
*/
public function setCache($operation, $what, $value, $options = [])
{
$fileCache = self::$cacheDir . self::cacheName($operation, $what, $options);
$c = ['value' => $value];
$c = serialize($c);
file_put_contents($fileCache, $c);
if (self::$forceRefresh === 'once') {
self::$refreshed[$fileCache] = true;
}
}
/**
* Get the cache name for the caching of $operation on $what,
* which is known as dependant from the content of $options
*
* @param string $operation
* @param mixed $what
* @param array $options
*
* @return string
*/
private static function cacheName($operation, $what, $options = [])
{
$t = [
'version' => self::CACHE_VERSION,
Arguments
"/home/seamagaz/public_html/cache/gantry5/g5_hydrogen/scss/source/scssphp_0713034c43c82a89c69ecfa25ccd761337a685a0.parse.scsscache"
"a:1:{s:5:"value";O:21:"ScssPhp\ScssPhp\Block":10:{s:4:"type";N;s:6:"parent";N;s:10:"sourceName";s:7:"(stdin)";s:11:"sourceIndex";i:0;s:10:"sourceLine";i:1;s:12:"sourceColumn";i:0;s:9:"selectors";N;s:8:"comments";a:0:{}s:8:"children";a:2:{i:0;a:7:{i:0;s:6:"assign";i:1;a:2:{i:0;s:3:"var";i:1;s:35:"output-bourbon-deprecation-warnings";}i:2;a:2:{i:0;s:7:"keyword";i:1;s:5:"false";}i:3;a:0:{}i:-2;i:1;i:-3;i:0;i:-1;i:0;}i:1;a:5:{i:0;s:6:"import";i:1;a:3:{i:0;s:6:"string";i:1;s:1:""";i:2;a:1:{i:0;s:13:"hydrogen.scss";}}i:-2;i:2;i:-3;i:1;i:-1;i:0;}}s:10:"selfParent";N;}}"
$this->pushBlock(null);
$this->popBlock();
while ($this->parseChunk()) {
;
}
if ($this->count !== \strlen($this->buffer)) {
throw $this->parseError();
}
if (! empty($this->env->parent)) {
throw $this->parseError('unclosed block');
}
$this->restoreEncoding();
assert($this->env !== null);
if ($this->cache) {
$this->cache->setCache('parse', $cacheKey, $this->env, $parseOptions);
}
return $this->env;
}
/**
* Parse a value or value list
*
* @api
*
* @param string $buffer
* @param string|array $out
*
* @return bool
*/
public function parseValue($buffer, &$out)
{
$this->count = 0;
$this->env = null;
$this->inParens = false;
Arguments
"parse"
"(stdin):16c324a1928e3722a49d17397d8d0352"
ScssPhp\ScssPhp\Block {#3949}
array:1 [
"utf8" => true
]
$this->scope = null;
$this->storeEnv = null;
$this->shouldEvaluate = null;
$this->ignoreCallStackMessage = false;
$this->parsedFiles = [];
$this->importedFiles = [];
$this->resolvedImports = [];
if (!\is_null($path) && is_file($path)) {
$path = realpath($path) ?: $path;
$this->currentDirectory = dirname($path);
$this->rootDirectory = $this->currentDirectory;
} else {
$this->currentDirectory = null;
$this->rootDirectory = getcwd();
}
try {
$this->parser = $this->parserFactory($path);
$tree = $this->parser->parse($source);
$this->parser = null;
$this->formatter = new $this->configuredFormatter();
$this->rootBlock = null;
$this->rootEnv = $this->pushEnv($tree);
$warnCallback = function ($message, $deprecation) {
$this->logger->warn($message, $deprecation);
};
$previousWarnCallback = Warn::setCallback($warnCallback);
try {
$this->injectVariables($this->registeredVars);
$this->compileRoot($tree);
$this->popEnv();
} finally {
Warn::setCallback($previousWarnCallback);
}
$sourceMapGenerator = null;
Arguments
"""
$output-bourbon-deprecation-warnings: false;\n
@import "hydrogen.scss"
"""
if ($file->locked() === false) {
// File was already locked by another process, lets avoid compiling the same file twice.
return false;
}
$logfile = fopen('php://memory', 'rb+');
$logger = new StreamLogger($logfile, true);
$compiler = $this->getCompiler();
$compiler->setLogger($logger);
// Set the lookup paths.
$this->functions->setBasePath($path);
$compiler->setImportPaths([[$this, 'findImport']]);
// Run the compiler.
$compiler->addVariables($this->getVariables(true));
$scss = '$output-bourbon-deprecation-warnings: false;' . "\n" . '@import "' . $in . '.scss"';
try {
$this->result = $compiler->compileString($scss);
$css = $this->result->getCss();
} catch (CompilerException $e) {
if (version_compare(static::$options['compatibility'], '5.5', '<')) {
static::$options['legacy'][$in] = true;
$this->warnings['__TITLE__'] = 'Please update your theme!';
$this->warnings[$in] = ['WARNING: ' . $e->getMessage()];
return $this->compileLegacyFile($in);
}
throw new \RuntimeException("ERROR: CSS Compilation on file '{$in}.scss' failed on error: {$e->getMessage()}", 500, $e);
} catch (\Exception $e) {
throw new \RuntimeException("ERROR: CSS Compilation on file '{$in}.scss' failed on fatal error: {$e->getMessage()}", 500, $e);
}
if (strpos($css, $scss) === 0) {
$css = '/* ' . $scss . ' */';
}
// Extract map from css and save it as separate file.
$pos = strrpos($css, '/*# sourceMappingURL=');
Arguments
"""
$output-bourbon-deprecation-warnings: false;\n
@import "hydrogen.scss"
"""
/**
* Returns URL to CSS file.
*
* If file does not exist, it will be created by using CSS compiler.
*
* @param string $name
* @return string
*/
public function css($name)
{
if (!isset($this->cssCache[$name])) {
$compiler = $this->compiler();
if ($compiler->needsCompile($name, [$this, 'getCssVariables'])) {
if (\GANTRY_DEBUGGER) {
Debugger::startTimer("css-{$name}", "Compiling CSS: {$name}");
Debugger::addMessage("Compiling CSS: {$name}");
}
$compiler->compileFile($name);
if (\GANTRY_DEBUGGER) {
Debugger::stopTimer("css-{$name}");
}
}
$this->cssCache[$name] = $compiler->getCssUrl($name);
}
return $this->cssCache[$name];
}
/**
* @return array
*/
public function getCssVariables()
{
if ($this->preset) {
$variables = $this->presets()->flatten($this->preset . '.styles', '-');
} else {
Arguments
$styles = $this->getAssetsInLocation('styles', $location);
if (!$styles) {
return [];
}
$gantry = Gantry::instance();
/** @var Theme|null $theme */
$theme = isset($gantry['theme']) ? $gantry['theme'] : null;
/** @var Document $document */
$document = $gantry['document'];
foreach ($styles as $key => $style) {
if (isset($style['href'])) {
$url = $style['href'];
if ($theme && preg_match('|\.scss$|', $url)) {
// Compile SCSS files.
$url = $theme->css(Gantry::basename($url, '.scss'));
}
// Deal with streams and relative paths.
$url = $document::url($url, null, null, false);
$styles[$key]['href'] = $url;
}
}
return $styles;
}
/**
* @param string $location
* @return array
* @since 5.4.3
*/
public function getScripts($location = 'head')
{
$scripts = $this->getAssetsInLocation('scripts', $location);
Arguments
if (!empty($element['src'])) {
$success = static::addScript($element, $priority, $location);
} elseif (!empty($element['content'])) {
$success = static::addInlineScript($element, $priority, $location);
}
break;
}
return $success;
}
/**
* @param string $location
* @return array
*/
public static function getStyles($location = 'head')
{
static::getObject();
$styles = static::$stack[0]->getStyles($location);
$output = [];
foreach ($styles as $style) {
switch ($style[':type']) {
case 'file':
$attribs = '';
if ($style['media']) {
$attribs .= ' media="' . static::escape($style['media']) . '"';
}
$output[] = sprintf(
'<link rel="stylesheet" href="%s" type="%s"%s />',
static::escape($style['href']),
static::escape($style['type']),
$attribs
);
break;
case 'inline':
$attribs = '';
if ($style['type'] !== 'text/css') {
Arguments
* @return string
*/
public function siteUrl()
{
/** @var Document $document */
$document = $this['document'];
return $document::siteUrl();
}
/**
* @param string $location
* @return array
*/
public function styles($location = 'head')
{
/** @var Document $document */
$document = $this['document'];
return $document::getStyles($location);
}
/**
* @param string $location
* @return array
*/
public function scripts($location = 'head')
{
/** @var Document $document */
$document = $this['document'];
return $document::getScripts($location);
}
/**
* Load Javascript framework / extension in platform independent way.
*
* @param string $framework
* @return bool
*/
Arguments
/**
* @return bool
*/
public function admin()
{
/** @var CMSApplication $application */
$app = Factory::getApplication();
return $app->isClient('administrator');
}
/**
* @param string $location
* @param bool $force
* @return array
*/
public function styles($location = 'head', $force = false)
{
// Do not display head, Joomla will take care of it (most of the time).
return (!$force && $location === 'head') ? [] : parent::styles($location);
}
/**
* @param string $location
* @param bool $force
* @return array
*/
public function scripts($location = 'head', $force = false)
{
// Do not display head, Joomla will take care of it (most of the time).
return (!$force && $location === 'head') ? [] : parent::scripts($location);
}
/**
* @return array
*/
protected function loadGlobal()
{
$global = null;
Arguments
if ($ignoreStrictCheck || !$env->isStrictVariables()) {
return;
}
throw new RuntimeError(sprintf('Neither the property "%1$s" nor one of the methods "%1$s()", "get%1$s()"/"is%1$s()"/"has%1$s()" or "__call()" exist and have public access in class "%2$s".', $item, $class), $lineno, $source);
}
if ($isDefinedTest) {
return true;
}
if ($sandboxed) {
$env->getExtension(SandboxExtension::class)->checkMethodAllowed($object, $method, $lineno, $source);
}
// Some objects throw exceptions when they have __call, and the method we try
// to call is not supported. If ignoreStrictCheck is true, we should return null.
try {
$ret = $object->$method(...$arguments);
} catch (\BadMethodCallException $e) {
if ($call && ($ignoreStrictCheck || !$env->isStrictVariables())) {
return;
}
throw $e;
}
return $ret;
}
/**
* Returns the values from a single column in the input array.
*
* <pre>
* {% set items = [{ 'fruit' : 'apple'}, {'fruit' : 'orange' }] %}
*
* {% set fruits = items|column('fruit') %}
*
* {# fruits now contains ['apple', 'orange'] #}
* </pre>
Arguments
// line 3
public function block_head_application($context, array $blocks = [])
{
$macros = $this->macros;
// line 4
echo "<meta charset=\"utf-8\" />
<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />
<title>";
// line 6
echo twig_escape_filter($this->env, ((array_key_exists("errorcode", $context)) ? (_twig_default_filter(($context["errorcode"] ?? null), 500)) : (500)), "html", null, true);
echo " ";
echo twig_escape_filter($this->env, ((array_key_exists("error", $context)) ? (_twig_default_filter(($context["error"] ?? null), $this->extensions['Gantry\Component\Twig\TwigExtension']->transFilter("GANTRY5_ENGINE_UNKNOWN_ERROR"))) : ($this->extensions['Gantry\Component\Twig\TwigExtension']->transFilter("GANTRY5_ENGINE_UNKNOWN_ERROR"))), "html", null, true);
echo "</title>
";
// line 7
twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "document", [], "any", false, false, false, 7), "errorPage", [0 => true], "method", false, false, false, 7);
// line 8
twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "platform", [], "any", false, false, false, 8), "finalize", [], "method", false, false, false, 8);
// line 9
echo twig_join_filter(twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "styles", [0 => "head", 1 => true], "method", false, false, false, 9), "
");
echo "
";
// line 10
echo twig_join_filter(twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "scripts", [0 => "head", 1 => true], "method", false, false, false, 10), "
");
}
public function getTemplateName()
{
return "partials/error_head.html.twig";
}
public function isTraitable()
{
return false;
}
public function getDebugInfo()
{
Arguments
Twig\Environment {#1233}
Twig\Source {#2690}
Gantry\Framework\Gantry {#1082}
"styles"
array:2 [
0 => "head"
1 => true
]
"method"
false
false
false
9
{
if ($useBlocks && isset($blocks[$name])) {
$template = $blocks[$name][0];
$block = $blocks[$name][1];
} elseif (isset($this->blocks[$name])) {
$template = $this->blocks[$name][0];
$block = $this->blocks[$name][1];
} else {
$template = null;
$block = null;
}
// avoid RCEs when sandbox is enabled
if (null !== $template && !$template instanceof self) {
throw new \LogicException('A block must be a method on a \Twig\Template instance.');
}
if (null !== $template) {
try {
$template->$block($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($template->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
$e->guess();
throw $e;
}
} elseif (false !== $parent = $this->getParent($context)) {
$parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false, $templateContext ?? $this);
Arguments
array:20 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
"faEnabled" => "1"
"faVersion" => "fa4"
]
array:10 [
"head_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_stylesheets"
]
"head_scripts" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_scripts"
]
"head_platform" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_platform"
]
"head_overrides" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_overrides"
]
"head_meta" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_meta"
]
"head_title" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_title"
]
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
"head_ie_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_ie_stylesheets"
]
"head" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head"
]
"head_custom" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_custom"
]
]
$this->displayBlock('head_overrides', $context, $blocks);
$content = ob_get_clean();
$assetFunction($content, $location, $priority);
// line 50
echo "<head>
";
// line 51
echo twig_join_filter(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "document", [], "any", false, false, false, 51), "getHtml", [0 => "head_top"], "method", false, false, false, 51), "
");
echo "
";
// line 52
$this->displayBlock('head_meta', $context, $blocks);
// line 78
$this->displayBlock('head_title', $context, $blocks);
// line 82
echo "
";
// line 83
$this->displayBlock('head_application', $context, $blocks);
// line 87
echo "
";
// line 88
$this->displayBlock('head_ie_stylesheets', $context, $blocks);
// line 91
$this->displayBlock('head', $context, $blocks);
// line 92
$this->displayBlock('head_custom', $context, $blocks);
// line 97
echo twig_join_filter(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "document", [], "any", false, false, false, 97), "getHtml", [0 => "head_bottom"], "method", false, false, false, 97), "
");
echo "
</head>
";
}
// line 7
public function block_head_stylesheets($context, array $blocks = [])
{
Arguments
"head_application"
array:20 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
"faEnabled" => "1"
"faVersion" => "fa4"
]
array:10 [
"head_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_stylesheets"
]
"head_scripts" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_scripts"
]
"head_platform" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_platform"
]
"head_overrides" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_overrides"
]
"head_meta" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_meta"
]
"head_title" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_title"
]
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
"head_ie_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_ie_stylesheets"
]
"head" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head"
]
"head_custom" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_custom"
]
]
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:20 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
"faEnabled" => "1"
"faVersion" => "fa4"
]
array:10 [
"head_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_stylesheets"
]
"head_scripts" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_scripts"
]
"head_platform" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_platform"
]
"head_overrides" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_overrides"
]
"head_meta" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_meta"
]
"head_title" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_title"
]
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
"head_ie_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_ie_stylesheets"
]
"head" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head"
]
"head_custom" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_custom"
]
]
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:10 [
"head_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_stylesheets"
]
"head_scripts" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_scripts"
]
"head_platform" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_platform"
]
"head_overrides" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_overrides"
]
"head_meta" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_meta"
]
"head_title" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_title"
]
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
"head_ie_stylesheets" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_ie_stylesheets"
]
"head" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head"
]
"head_custom" => array:2 [
0 => __TwigTemplate_e4c22b0609268a00df4634cfb8c40d4ff394bd42911346f927128111779c2ee5 {#3970}
1 => "block_head_custom"
]
]
$this->blocks = [
'head_title' => [$this, 'block_head_title'],
'head_application' => [$this, 'block_head_application'],
'head_platform' => [$this, 'block_head_platform'],
'head' => [$this, 'block_head'],
];
}
protected function doGetParent(array $context)
{
// line 1
return "@nucleus/page_head.html.twig";
}
protected function doDisplay(array $context, array $blocks = [])
{
$macros = $this->macros;
$this->parent = $this->loadTemplate("@nucleus/page_head.html.twig", "partials/page_head.html.twig", 1);
$this->parent->display($context, array_merge($this->blocks, $blocks));
}
// line 3
public function block_head_title($context, array $blocks = [])
{
$macros = $this->macros;
}
// line 6
public function block_head_application($context, array $blocks = [])
{
$macros = $this->macros;
// line 7
if (twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "platform", [], "any", false, false, false, 7), "checkVersion", [0 => 4], "method", false, false, false, 7)) {
echo " ";
// line 8
echo " <jdoc:include type=\"metas\" />
<jdoc:include type=\"styles\" />
<jdoc:include type=\"scripts\" />
";
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:4 [
"head_title" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_title"
]
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
"head_platform" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_platform"
]
"head" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head"
]
]
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:4 [
"head_title" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_title"
]
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
"head_platform" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_platform"
]
"head" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head"
]
]
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:4 [
"head_title" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_title"
]
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
"head_platform" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head_platform"
]
"head" => array:2 [
0 => __TwigTemplate_3324099f450b9c872841432504a57fe0f2f2c28e953b092fa08d12e3f1d50e01 {#2783}
1 => "block_head"
]
]
parent::__construct($env);
$this->source = $this->getSourceContext();
$this->blocks = [
'head_application' => [$this, 'block_head_application'],
];
}
protected function doGetParent(array $context)
{
// line 1
return "partials/page_head.html.twig";
}
protected function doDisplay(array $context, array $blocks = [])
{
$macros = $this->macros;
$this->parent = $this->loadTemplate("partials/page_head.html.twig", "partials/error_head.html.twig", 1);
$this->parent->display($context, array_merge($this->blocks, $blocks));
}
// line 3
public function block_head_application($context, array $blocks = [])
{
$macros = $this->macros;
// line 4
echo "<meta charset=\"utf-8\" />
<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />
<title>";
// line 6
echo twig_escape_filter($this->env, ((array_key_exists("errorcode", $context)) ? (_twig_default_filter(($context["errorcode"] ?? null), 500)) : (500)), "html", null, true);
echo " ";
echo twig_escape_filter($this->env, ((array_key_exists("error", $context)) ? (_twig_default_filter(($context["error"] ?? null), $this->extensions['Gantry\Component\Twig\TwigExtension']->transFilter("GANTRY5_ENGINE_UNKNOWN_ERROR"))) : ($this->extensions['Gantry\Component\Twig\TwigExtension']->transFilter("GANTRY5_ENGINE_UNKNOWN_ERROR"))), "html", null, true);
echo "</title>
";
// line 7
twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "document", [], "any", false, false, false, 7), "errorPage", [0 => true], "method", false, false, false, 7);
// line 8
twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "platform", [], "any", false, false, false, 8), "finalize", [], "method", false, false, false, 8);
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:1 [
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
]
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:1 [
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
]
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:1 [
"head_application" => array:2 [
0 => __TwigTemplate_cbff9a01054c58114ce954c414ff340c551344b2151c087d522762efedd0350e {#2685}
1 => "block_head_application"
]
]
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
{
if ($useBlocks && isset($blocks[$name])) {
$template = $blocks[$name][0];
$block = $blocks[$name][1];
} elseif (isset($this->blocks[$name])) {
$template = $this->blocks[$name][0];
$block = $this->blocks[$name][1];
} else {
$template = null;
$block = null;
}
// avoid RCEs when sandbox is enabled
if (null !== $template && !$template instanceof self) {
throw new \LogicException('A block must be a method on a \Twig\Template instance.');
}
if (null !== $template) {
try {
$template->$block($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($template->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
$e->guess();
throw $e;
}
} elseif (false !== $parent = $this->getParent($context)) {
$parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false, $templateContext ?? $this);
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:11 [
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
"page_offcanvas" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_offcanvas"
]
"page_layout" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_layout"
]
"page_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_top"
]
"page_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_bottom"
]
"body_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_top"
]
"body_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_bottom"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page"
]
"page_body" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_body"
]
]
Arguments
"page_head"
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:11 [
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
"page_offcanvas" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_offcanvas"
]
"page_layout" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_layout"
]
"page_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_top"
]
"page_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_bottom"
]
"body_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_top"
]
"body_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_bottom"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page"
]
"page_body" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_body"
]
]
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:18 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
"segments" => array:5 [
0 => {#1265}
1 => {#1398}
2 => {#1406}
3 => {#1414}
4 => {#1436}
]
"content" => Twig\Markup {#2430}
"offcanvas" => {#1436}
"page_offcanvas" => """
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">\n
<div class="g-grid"> \n
\n
<div class="g-block size-100">\n
<div id="mobile-menu-3699-particle" class="g-content g-particle"> <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>\n
</div>\n
</div>\n
</div>\n
</div>
"""
"offcanvas_position" => "g-offcanvas-left"
"page_layout" => Twig\Markup {#2429}
"page_top" => Twig\Markup {#2976}
"page_bottom" => Twig\Markup {#2975}
"body_top" => Twig\Markup {#2974}
"body_bottom" => Twig\Markup {#2961}
]
array:11 [
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
"page_offcanvas" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_offcanvas"
]
"page_layout" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_layout"
]
"page_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_top"
]
"page_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_bottom"
]
"body_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_top"
]
"body_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_bottom"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page"
]
"page_body" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_body"
]
]
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:11 [
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
"page_offcanvas" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_offcanvas"
]
"page_layout" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_layout"
]
"page_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_top"
]
"page_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_bottom"
]
"body_top" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_top"
]
"body_bottom" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_body_bottom"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page"
]
"page_body" => array:2 [
0 => __TwigTemplate_b45630860c9387cc0f59249569a979099db209010c54bae9d0435156a8e689fe {#1252}
1 => "block_page_body"
]
]
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:3 [
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
]
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:3 [
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
]
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:3 [
"page_footer" => array:2 [
0 => __TwigTemplate_d1020f19423ea6a0283d2451b78cedb6c8b320c59496b782338d63f0f9604634 {#1250}
1 => "block_page_footer"
]
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
]
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:2 [
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
]
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:2 [
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
]
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
Arguments
array:8 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
"gantry" => Gantry\Framework\Gantry {#1082}
]
array:2 [
"page_head" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_e1592e5533006cb74c43510deecc3c99b0823e38f9a20196f81bd8c339371437 {#1248}
1 => "block_content"
]
]
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
Arguments
array:7 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
]
* directly (use Twig\Environment::load() instead).
*
* @internal
*/
public function __construct(Environment $env, Template $template)
{
$this->env = $env;
$this->template = $template;
}
/**
* Renders the template.
*
* @param array $context An array of parameters to pass to the template
*/
public function render(array $context = []): string
{
// using func_get_args() allows to not expose the blocks argument
// as it should only be used by internal code
return $this->template->render($context, \func_get_args()[1] ?? []);
}
/**
* Displays the template.
*
* @param array $context An array of parameters to pass to the template
*/
public function display(array $context = [])
{
// using func_get_args() allows to not expose the blocks argument
// as it should only be used by internal code
$this->template->display($context, \func_get_args()[1] ?? []);
}
/**
* Checks if a block is defined.
*
* @param string $name The block name
* @param array $context An array of parameters to pass to the template
*/
Arguments
array:7 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
]
[]
$key = $this->getLoader()->getCacheKey($name).$this->optionsHash;
return $this->templateClassPrefix.hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', $key).(null === $index ? '' : '___'.$index);
}
/**
* Renders a template.
*
* @param string|TemplateWrapper $name The template name
* @param array $context An array of parameters to pass to the template
*
* @return string The rendered template
*
* @throws LoaderError When the template cannot be found
* @throws SyntaxError When an error occurred during compilation
* @throws RuntimeError When an error occurred during rendering
*/
public function render($name, array $context = [])
{
return $this->load($name)->render($context);
}
/**
* Displays a template.
*
* @param string|TemplateWrapper $name The template name
* @param array $context An array of parameters to pass to the template
*
* @throws LoaderError When the template cannot be found
* @throws SyntaxError When an error occurred during compilation
* @throws RuntimeError When an error occurred during rendering
*/
public function display($name, array $context = [])
{
$this->load($name)->display($context);
}
/**
* Loads a template.
*
Arguments
array:7 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
]
$this->renderer = $this->extendTwig($twig, $loader);
}
return $this->renderer;
}
/**
* Render a template file by using given context.
*
* @param string $file
* @param array $context
* @return string
*/
public function render($file, array $context = [])
{
// Include Gantry specific things to the context.
$context = $this->getContext($context);
return $this->renderer()->render($file, $context);
}
/**
* Compile and render twig string.
*
* @param string $string
* @param array $context
* @return string
*/
public function compile($string, array $context = [])
{
$renderer = $this->renderer();
$template = $renderer->createTemplate($string);
// Include Gantry specific things to the context.
$context = $this->getContext($context);
return $template->render($context);
}
Arguments
"error.html.twig"
array:7 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
]
$joomla->document = $this;
/** @var Theme $theme */
$theme = $gantry['theme'];
$app = Factory::getApplication();
$context = array(
'errorcode' => isset($this->error) ? $this->error->getCode() : null,
'error' => isset($this->error) ? $this->error->getMessage() : null,
'debug' => $app->get('debug_lang', '0') == '1' || $app->get('debug', '0') == '1',
'backtrace' => $this->debug ? $this->renderBacktrace() : null
);
// Reset used outline configuration.
unset($gantry['configuration']);
// Render the page.
echo $theme
->setLayout('_error', true)
->render('error.html.twig', $context);
Arguments
"error.html.twig"
array:7 [
"errorcode" => 404
"error" => "Page not found"
"debug" => false
"backtrace" => null
"theme" => GantryTheme {#1220}
"site" => Gantry\Framework\Site {#1211}
"joomla" => Gantry\Framework\Platform {#1218}
]
*
* @param string $directory The name of the template
* @param string $filename The actual filename
*
* @return string The contents of the template
*
* @since 1.7.0
*/
protected function _loadTemplate($directory, $filename)
{
$contents = '';
// Check to see if we have a valid template file
if (is_file($directory . '/' . $filename)) {
// Store the file path
$this->_file = $directory . '/' . $filename;
// Get the file content
ob_start();
require $directory . '/' . $filename;
$contents = ob_get_contents();
ob_end_clean();
}
return $contents;
}
/**
* Fetch the template, and initialise the params
*
* @param array $params Parameters to determine the template
*
* @return HtmlDocument instance of $this to allow chaining
*
* @since 1.7.0
*/
protected function _fetchTemplate($params = [])
{
// Check
$directory = $params['directory'] ?? 'templates';
Arguments
"/home/seamagaz/public_html/templates/g5_hydrogen/error.php"
}
}
}
// Load the language file for the template
$lang = CmsFactory::getLanguage();
// 1.5 or core then 1.6
$lang->load('tpl_' . $template, JPATH_BASE)
|| ($inherits !== '' && $lang->load('tpl_' . $inherits, JPATH_BASE))
|| $lang->load('tpl_' . $template, $directory . '/' . $template)
|| ($inherits !== '' && $lang->load('tpl_' . $inherits, $directory . '/' . $inherits));
// Assign the variables
$this->baseurl = Uri::base(true);
$this->params = $params['params'] ?? new Registry();
$this->template = $template;
// Load
$this->_template = $this->_loadTemplate($baseDir, $file);
return $this;
}
/**
* Parse a document template
*
* @return HtmlDocument instance of $this to allow chaining
*
* @since 1.7.0
*/
protected function _parseTemplate()
{
$matches = [];
if (preg_match_all('#<jdoc:include\ type="([^"]+)"(.*)\/>#iU', $this->_template, $matches)) {
$messages = [];
$template_tags_first = [];
$template_tags_last = [];
Arguments
"/home/seamagaz/public_html/templates/g5_hydrogen"
"error.php"
$name = $options['name'] ?? '';
$title = $options['title'] ?? '';
parent::$_buffer[$type][$name][$title] = $content;
return $this;
}
/**
* Parses the template and populates the buffer
*
* @param array $params Parameters for fetching the template
*
* @return HtmlDocument instance of $this to allow chaining
*
* @since 1.7.0
*/
public function parse($params = [])
{
return $this->_fetchTemplate($params)->_parseTemplate();
}
/**
* Outputs the template to the browser.
*
* @param boolean $caching If true, cache the output
* @param array $params Associative array of attributes
*
* @return string The rendered data
*
* @since 1.7.0
*/
public function render($caching = false, $params = [])
{
$this->_caching = $caching;
if (empty($this->_template)) {
$this->parse($params);
}
Arguments
array:7 [
"template" => "g5_hydrogen"
"directory" => "/home/seamagaz/public_html/templates"
"debug" => false
"csp_nonce" => null
"templateInherits" => ""
"params" => Joomla\Registry\Registry {#1085}
"file" => "error.php"
]
{
return $this->_fetchTemplate($params)->_parseTemplate();
}
/**
* Outputs the template to the browser.
*
* @param boolean $caching If true, cache the output
* @param array $params Associative array of attributes
*
* @return string The rendered data
*
* @since 1.7.0
*/
public function render($caching = false, $params = [])
{
$this->_caching = $caching;
if (empty($this->_template)) {
$this->parse($params);
}
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;
}
/**
* Count the modules in the given position
*
* @param string $positionName The position to use
* @param boolean $withContentOnly Count only a modules which actually has a content
*
* @return integer Number of modules found
*
Arguments
array:7 [
"template" => "g5_hydrogen"
"directory" => "/home/seamagaz/public_html/templates"
"debug" => false
"csp_nonce" => null
"templateInherits" => ""
"params" => Joomla\Registry\Registry {#1085}
"file" => "error.php"
]
if ($status < 400 || $status > 599) {
$status = 500;
}
$errorReporting = CmsFactory::getApplication()->get('error_reporting');
if ($errorReporting === "development" || $errorReporting === "maximum") {
$status .= ' ' . str_replace("\n", ' ', $this->_error->getMessage());
}
CmsFactory::getApplication()->setHeader('status', $status);
// Set variables
$this->debug = $params['debug'] ?? false;
$this->error = $this->_error;
$params['file'] = 'error.php';
return parent::render($cache, $params);
}
/**
* Render the backtrace
*
* @return string The contents of the backtrace
*
* @since 1.7.0
*/
public function renderBacktrace()
{
// If no error object is set return null
if (!isset($this->_error)) {
return;
}
// The back trace
$backtrace = $this->_error->getTrace();
// Add the position of the actual file
Arguments
false
array:7 [
"template" => "g5_hydrogen"
"directory" => "/home/seamagaz/public_html/templates"
"debug" => false
"csp_nonce" => null
"templateInherits" => ""
"params" => Joomla\Registry\Registry {#1085}
"file" => "error.php"
]
if (!empty($template->parent)) {
$wa->addTemplateRegistryFile($template->parent, $app->getClientId());
}
if (ob_get_contents()) {
ob_end_clean();
}
$this->getDocument()->setTitle(Text::_('Error') . ': ' . $error->getCode());
return $this->getDocument()->render(
false,
[
'template' => $template->template,
'directory' => JPATH_THEMES,
'debug' => JDEBUG,
'csp_nonce' => $app->get('csp_nonce'),
'templateInherits' => $template->parent,
'params' => $template->params,
]
);
}
}
Arguments
false
array:7 [
"template" => "g5_hydrogen"
"directory" => "/home/seamagaz/public_html/templates"
"debug" => false
"csp_nonce" => null
"templateInherits" => ""
"params" => Joomla\Registry\Registry {#1085}
"file" => "error.php"
]
* Lastly, if all else fails, we default onto the HTML format to at least render something
*/
if (Factory::$document) {
$format = Factory::$document->getType();
} else {
$format = $app->getInput()->getString('format', 'html');
}
try {
$renderer = AbstractRenderer::getRenderer($format);
} catch (\InvalidArgumentException $e) {
// Default to the HTML renderer
$renderer = AbstractRenderer::getRenderer('html');
}
// 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();
}
if ($isCli) {
echo $data;
} else {
/** @var CMSApplication $app */
// Do not allow cache
$app->allowCache(false);
$app->setBody($data);
}
// This return is needed to ensure the test suite does not trigger the non-Exception handling below
return;
} catch (\Throwable $errorRendererError) {
Arguments
Joomla\CMS\Router\Exception\RouteNotFoundException {#1169
#message: "Page not found"
#code: 404
#file: "/home/seamagaz/public_html/libraries/src/Router/Router.php"
#line: 155
}
}
}
// Always return false, this will tell PHP to handle the error internally
return false;
}
/**
* Handles exceptions: logs errors and renders error page.
*
* @param \Exception|\Throwable $error An Exception or Throwable (PHP 7+) object for which to render the error page.
*
* @return void
*
* @since 3.10.0
*/
public static function handleException(\Throwable $error)
{
static::logException($error);
static::render($error);
}
/**
* Render the error page based on an exception.
*
* @param \Throwable $error An Exception or Throwable (PHP 7+) object for which to render the error page.
*
* @return void
*
* @since 3.0
*/
public static function render(\Throwable $error)
{
try {
$app = Factory::getApplication();
// Flag if we are on cli
$isCli = $app->isClient('cli');
// If site is offline and it's a 404 error, just go to index (to see offline message, instead of 404)
Arguments
Joomla\CMS\Router\Exception\RouteNotFoundException {#1169
#message: "Page not found"
#code: 404
#file: "/home/seamagaz/public_html/libraries/src/Router/Router.php"
#line: 155
}
$this->compress();
// Trigger the onAfterCompress event.
$this->triggerEvent('onAfterCompress');
}
} catch (\Throwable $throwable) {
/** @var ErrorEvent $event */
$event = AbstractEvent::create(
'onError',
[
'subject' => $throwable,
'eventClass' => ErrorEvent::class,
'application' => $this,
]
);
// Trigger the onError event.
$this->triggerEvent('onError', $event);
ExceptionHandler::handleException($event->getError());
}
// Trigger the onBeforeRespond event.
$this->getDispatcher()->dispatch('onBeforeRespond');
// Send the application response.
$this->respond();
// Trigger the onAfterRespond event.
$this->getDispatcher()->dispatch('onAfterRespond');
}
/**
* Check if the user is required to reset their password.
*
* If the user is required to reset their password will be redirected to the page that manage the password reset.
*
* @param string $option The option that manage the password reset
* @param string $view The view that manage the password reset
* @param string $layout The layout of the view that manage the password reset
Arguments
Joomla\CMS\Router\Exception\RouteNotFoundException {#1169
#message: "Page not found"
#code: 404
#file: "/home/seamagaz/public_html/libraries/src/Router/Router.php"
#line: 155
}
* @return array
*
* @since 1.5
* @throws \Exception
*/
public function parse(&$uri, $setVars = false)
{
// Do the preprocess stage of the URL parse process
$this->processParseRules($uri, self::PROCESS_BEFORE);
// Do the main stage of the URL parse process
$this->processParseRules($uri);
// Do the postprocess stage of the URL parse process
$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));
return $this->getVars();
}
return $uri->getQuery(true);
}
/**
* Function to convert an internal URI to a route
*
* @param string|array|Uri $url The internal URL or an associative array
*
* @return Uri The absolute search engine friendly URL object
*
* @since 1.5
*/
Arguments
/**
* Route the application.
*
* Routing is the process of examining the request environment to determine which
* component should receive the request. The component optional parameters
* are then set in the request object to be processed when the application is being
* dispatched.
*
* @return void
*
* @since 3.2
*/
protected function route()
{
// 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
&& $active->type === 'alias'
&& $active->getParams()->get('alias_redirect')
&& \in_array($this->input->getMethod(), ['GET', 'HEAD'], true)
) {
$item = $this->getMenu()->getItem($active->getParams()->get('aliasoptions'));
if ($item !== null) {
$oldUri = clone Uri::getInstance();
if ($oldUri->getVar('Itemid') == $active->id) {
$oldUri->setVar('Itemid', $item->id);
}
$base = Uri::base(true);
$oldPath = StringHelper::strtolower(substr($oldUri->getPath(), \strlen($base) + 1));
Arguments
Joomla\CMS\Uri\Uri {#1066}
true
$this->triggerEvent('onAfterDispatch');
}
/**
* Method to run the Web application routines.
*
* @return void
*
* @since 3.2
*/
protected function doExecute()
{
// Initialise the application
$this->initialiseApp();
// 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()) {
/*
* Check if the user is required to reset their password
*
* Before $this->route(); "option" and "view" can't be safely read using:
* $this->input->getCmd('option'); or $this->input->getCmd('view');
* ex: due of the sef urls
*/
$this->checkUserRequireReset('com_users', 'profile', 'edit', 'com_users/profile.save,com_users/profile.apply,com_users/user.logout');
}
// Dispatch the application
$this->dispatch();
// Mark afterDispatch in the profiler.
JDEBUG ? $this->profiler->mark('afterDispatch') : null;
throw new \RuntimeException('Invalid input, aborting application.');
}
}
/**
* Execute the application.
*
* @return void
*
* @since 3.2
*/
public function execute()
{
try {
$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();
}
// If gzip compression is enabled in configuration and the server is compliant, compress the output.
if ($this->get('gzip') && !ini_get('zlib.output_compression') && ini_get('output_handler') !== 'ob_gzhandler') {
$this->compress();
// Trigger the onAfterCompress event.
$this->triggerEvent('onAfterCompress');
}
} catch (\Throwable $throwable) {
/** @var ErrorEvent $event */
$event = AbstractEvent::create(
'onError',
[
'subject' => $throwable,
*
* In addition to aliasing "common" service keys, we also create aliases for the PHP classes to ensure autowiring objects
* is supported. This includes aliases for aliased class names, and the keys for aliased class names should be considered
* deprecated to be removed when the class name alias is removed as well.
*/
$container->alias('session.web', 'session.web.site')
->alias('session', 'session.web.site')
->alias('JSession', 'session.web.site')
->alias(\Joomla\CMS\Session\Session::class, 'session.web.site')
->alias(\Joomla\Session\Session::class, 'session.web.site')
->alias(\Joomla\Session\SessionInterface::class, 'session.web.site');
// Instantiate the application.
$app = $container->get(\Joomla\CMS\Application\SiteApplication::class);
// Set the application as global app
\Joomla\CMS\Factory::$application = $app;
// Execute the application.
$app->execute();
define('JOOMLA_MINIMUM_PHP', '7.2.5');
if (version_compare(PHP_VERSION, JOOMLA_MINIMUM_PHP, '<')) {
die(
str_replace(
'{{phpversion}}',
JOOMLA_MINIMUM_PHP,
file_get_contents(dirname(__FILE__) . '/templates/system/incompatible.html')
)
);
}
/**
* Constant that is checked in included files to prevent direct access.
* 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';
Arguments
"/home/seamagaz/public_html/includes/app.php"