{% try %}
{% set menu = gantry.menu.instance(particle) %}
{% catch %}
<div class="alert alert-error">{{ e.getMessage }}</div>
{% endtry %}
{% macro getCustomWidth(item, menu, mode, dropdown_type, start_level) -%}
{%- if (item.width|default('auto') != 'auto') and not (dropdown_type == 'fullwidth' and item.level > start_level) -%}
{%- if mode == 'item' %} style="position: relative;"
{%- elseif mode == 'submenu' %} style="width:{{ item.width }};" data-g-item-width="{{ item.width }}"
{%- endif %}
{%- endif %}
{%- endmacro %}
{% macro displayParticle(item, context) %}
{% try %}
{% set in_particle = (context.in_particle ?? 0) + 1 %}
{% if in_particle > 5 %}
{% throw 500 'Particle loop detected' %}
{% endif %}
{% set context = context|merge({ particle: item.options.particle, in_particle: in_particle}) %}
{% set classes = item.options.block.class %}
<div class="menu-item-particle{{ classes ? ' ' ~ classes }}">
{% include ['particles/' ~ item.particle ~ '.html.twig', '@particles/' ~ item.particle ~ '.html.twig']
ignore missing with context only %}
</div>
{% catch %}
<div class="alert alert-error">{{ e.getMessage }}</div>
{% endtry %}
{% endmacro %}
{% macro displayTitle(item) %}
{% if not item.icon_only or not (item.image or item.icon) %}
<span class="g-menu-item-title">{{ item.title }}</span>
{% if item.subtitle %}
<span class="g-menu-item-subtitle">{{ item.subtitle }}</span>
{% endif %}
{% endif %}
{% endmacro %}
Arguments
"An exception has been thrown during the rendering of a template ("MySQL server has gone away")."
{
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 (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
Arguments
array:10 [
"segment" => {#944}
"enabled" => 1
"particle" => array:10 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
]
"prepare_layout" => true
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
"in_particle" => 1
"id" => "menu-2250"
]
[]
echo " ";
$context["particle"] = $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "config", []), "getJoined", [0 => ("particles." . $this->getAttribute(($context["segment"] ?? null), "subtype", [])), 1 => $this->getAttribute(($context["segment"] ?? null), "attributes", [])], "method");
// line 15
echo " ";
}
// line 16
echo " ";
}
// line 17
echo "
";
// line 18
ob_start();
// line 19
echo " ";
if ((($context["enabled"] ?? null) && ((null === $this->getAttribute($this->getAttribute(($context["segment"] ?? null), "attributes", []), "enabled", [])) || $this->getAttribute($this->getAttribute(($context["segment"] ?? null), "attributes", []), "enabled", [])))) {
// line 20
echo " ";
$this->loadTemplate([0 => (("particles/" . $this->getAttribute(($context["segment"] ?? null), "subtype", [])) . ".html.twig"), 1 => (("@particles/" . $this->getAttribute( // line 21
($context["segment"] ?? null), "subtype", [])) . ".html.twig"), 2 => "@nucleus/content/missing.html.twig"], "@nucleus/content/particle.html.twig", 20)->display($context);
// line 23
echo " ";
}
// line 24
echo " ";
$context["html"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
// line 25
echo " ";
$context["html"] = twig_trim_filter(($context["html"] ?? null));
// line 26
echo "
";
// line 27
$context["classes"] = twig_trim_filter(((( !($context["inContent"] ?? null)) ? ("g-content g-particle ") : ("g-particle ")) . twig_join_filter($this->getAttribute(($context["segment"] ?? null), "classes", []), " ")));
// line 28
if (($context["html"] ?? null)) {
// line 29
if ($this->getAttribute(($context["gantry"] ?? null), "debug", [])) {
echo "<!-- START PARTICLE ";
echo twig_escape_filter($this->env, ($context["id"] ?? null), "html", null, true);
Arguments
array:10 [
"segment" => {#944}
"enabled" => 1
"particle" => array:10 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
]
"prepare_layout" => true
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
"in_particle" => 1
"id" => "menu-2250"
]
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} 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:10 [
"segment" => {#944}
"enabled" => 1
"particle" => array:10 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
]
"prepare_layout" => true
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
"in_particle" => 1
"id" => "menu-2250"
]
[]
{
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 (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
Arguments
array:8 [
"segment" => {#944}
"enabled" => 1
"particle" => array:10 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
]
"prepare_layout" => true
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
]
[]
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 (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} 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 {
Arguments
array:7 [
"segment" => {#944}
"enabled" => 1
"particle" => array:10 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
]
"prepare_layout" => true
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
]
* @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
*
* @return string The rendered template
*/
public function render($context = [])
{
// 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_num_args() > 1 ? func_get_arg(1) : []);
}
/**
* Displays the template.
*
* @param array $context An array of parameters to pass to the template
*/
public function display($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_num_args() > 1 ? func_get_arg(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 [
"segment" => {#944}
"enabled" => 1
"particle" => array:10 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
]
"prepare_layout" => true
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
]
[]
@trigger_error(sprintf('The %s method is deprecated since version 1.22 and will be removed in Twig 2.0.', __METHOD__), \E_USER_DEPRECATED);
return $this->templateClassPrefix;
}
/**
* 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 [
"segment" => {#944}
"enabled" => 1
"particle" => array:10 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
]
"prepare_layout" => true
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
]
$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
"@nucleus/content/particle.html.twig"
array:7 [
"segment" => {#944}
"enabled" => 1
"particle" => array:10 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
]
"prepare_layout" => true
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
]
$file = PhpFile::instance($filename);
if ($file->exists()) {
try {
return ContentBlock::fromArray((array) $file->content());
} catch (\Exception $e) {
// Invalid cache, continue to rendering.
if (\GANTRY_DEBUGGER) {
Debugger::addMessage(sprintf('Failed to load %s %s cache', $item->type, $item->id), 'debug');
}
}
}
}
// Create new document context for assets.
$context = $this->getContext(['segment' => $item, 'enabled' => 1, 'particle' => $particle] + $options);
/** @var Document $document */
$document = $gantry['document'];
$document::push();
$html = trim($this->render("@nucleus/content/{$item->type}.html.twig", $context));
$content = $document::pop()->setContent($html);
if (isset($file)) {
// Save HTML and assets into the cache.
if (\GANTRY_DEBUGGER) {
Debugger::addMessage(sprintf('Caching %s %s', $item->type, $item->id), 'debug');
}
$file->save($content->toArray());
}
return $content;
}
}
Arguments
"@nucleus/content/particle.html.twig"
array:7 [
"segment" => {#944}
"enabled" => 1
"particle" => array:10 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
]
"prepare_layout" => true
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
]
}
}
}
}
}
/**
* Renders individual content block, like particle or position.
*
* Function is used to pre-render content.
*
* @param object|array $item
* @param array $options
* @return string|null
*/
public function renderContent($item, $options = [])
{
$gantry = static::gantry();
$content = $this->getContent($item, $options);
/** @var Document $document */
$document = $gantry['document'];
$document->addBlock($content);
$html = $content->toString();
return false === strpos($html, '@@DEFERRED@@') ? $html : null;
}
/**
* Renders individual content block, like particle or position.
*
* Function is used to pre-render content.
*
* @param object|array $item
* @param array $options
* @return ContentBlock|ContentBlockInterface
* @since 5.4.3
*/
Arguments
{#944}
array:1 [
"prepare_layout" => true
]
$fixed &= !empty($child->attributes->fixed);
}
$this->prepareLayout($item->children, $fixed, $temporary);
}
// TODO: remove hard coded types.
switch ($item->type) {
case 'system':
break;
case 'atom':
case 'particle':
case 'position':
case 'spacer':
if (\GANTRY_DEBUGGER) {
Debugger::startTimer($item->id, "Rendering {$item->id}");
}
$item->content = $this->renderContent($item, ['prepare_layout' => true]);
// Note that content can also be null (postpone rendering).
if ($item->content === '') {
unset($items[$i]);
}
if (\GANTRY_DEBUGGER) {
Debugger::stopTimer($item->id);
}
break;
default:
if ($sticky) {
$item->attributes->sticky = 1;
break;
}
if (empty($item->children)) {
unset($items[$i]);
break;
Arguments
{#944}
array:1 [
"prepare_layout" => true
]
* @param array $items
* @param bool $temporary
* @param bool $sticky
* @internal
*/
protected function prepareLayout(array &$items, $temporary = false, $sticky = false)
{
foreach ($items as $i => &$item) {
// Non-numeric items are meta-data which should be ignored.
if (((string)(int) $i !== (string) $i) || !is_object($item)) {
continue;
}
if (!empty($item->children)) {
$fixed = true;
foreach ($item->children as $child) {
$fixed &= !empty($child->attributes->fixed);
}
$this->prepareLayout($item->children, $fixed, $temporary);
}
// TODO: remove hard coded types.
switch ($item->type) {
case 'system':
break;
case 'atom':
case 'particle':
case 'position':
case 'spacer':
if (\GANTRY_DEBUGGER) {
Debugger::startTimer($item->id, "Rendering {$item->id}");
}
$item->content = $this->renderContent($item, ['prepare_layout' => true]);
// Note that content can also be null (postpone rendering).
if ($item->content === '') {
unset($items[$i]);
}
Arguments
array:1 [
0 => {#944}
]
0
0
* @param array $items
* @param bool $temporary
* @param bool $sticky
* @internal
*/
protected function prepareLayout(array &$items, $temporary = false, $sticky = false)
{
foreach ($items as $i => &$item) {
// Non-numeric items are meta-data which should be ignored.
if (((string)(int) $i !== (string) $i) || !is_object($item)) {
continue;
}
if (!empty($item->children)) {
$fixed = true;
foreach ($item->children as $child) {
$fixed &= !empty($child->attributes->fixed);
}
$this->prepareLayout($item->children, $fixed, $temporary);
}
// TODO: remove hard coded types.
switch ($item->type) {
case 'system':
break;
case 'atom':
case 'particle':
case 'position':
case 'spacer':
if (\GANTRY_DEBUGGER) {
Debugger::startTimer($item->id, "Rendering {$item->id}");
}
$item->content = $this->renderContent($item, ['prepare_layout' => true]);
// Note that content can also be null (postpone rendering).
if ($item->content === '') {
unset($items[$i]);
}
Arguments
array:1 [
0 => {#946}
]
0
0
* @param array $items
* @param bool $temporary
* @param bool $sticky
* @internal
*/
protected function prepareLayout(array &$items, $temporary = false, $sticky = false)
{
foreach ($items as $i => &$item) {
// Non-numeric items are meta-data which should be ignored.
if (((string)(int) $i !== (string) $i) || !is_object($item)) {
continue;
}
if (!empty($item->children)) {
$fixed = true;
foreach ($item->children as $child) {
$fixed &= !empty($child->attributes->fixed);
}
$this->prepareLayout($item->children, $fixed, $temporary);
}
// TODO: remove hard coded types.
switch ($item->type) {
case 'system':
break;
case 'atom':
case 'particle':
case 'position':
case 'spacer':
if (\GANTRY_DEBUGGER) {
Debugger::startTimer($item->id, "Rendering {$item->id}");
}
$item->content = $this->renderContent($item, ['prepare_layout' => true]);
// Note that content can also be null (postpone rendering).
if ($item->content === '') {
unset($items[$i]);
}
Arguments
array:1 [
0 => {#942}
]
0
false
Debugger::stopTimer('atoms');
}
}
}
/**
* Returns all non-empty segments from the layout.
*
* @return array
*/
public function segments()
{
if (!isset($this->segments)) {
$this->segments = $this->loadLayout()->toArray();
if (\GANTRY_DEBUGGER) {
Debugger::startTimer('segments', 'Preparing layout');
}
$this->prepareLayout($this->segments);
if (\GANTRY_DEBUGGER) {
Debugger::stopTimer('segments');
}
}
return $this->segments;
}
/**
* Prepare layout for rendering. Initializes all CSS/JS in particles.
*/
public function prepare()
{
$this->segments();
}
/**
* Returns details of the theme.
*
Arguments
if ($ignoreStrictCheck || !$this->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()" or "__call()" exist and have public access in class "%2$s".', $item, $class), -1, $this->getSourceContext());
}
if ($isDefinedTest) {
return true;
}
if ($this->env->hasExtension('\Twig\Extension\SandboxExtension')) {
$this->env->getExtension('\Twig\Extension\SandboxExtension')->checkMethodAllowed($object, $method);
}
// 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 {
if (!$arguments) {
$ret = $object->$method();
} else {
$ret = \call_user_func_array([$object, $method], $arguments);
}
} catch (\BadMethodCallException $e) {
if ($call && ($ignoreStrictCheck || !$this->env->isStrictVariables())) {
return;
}
throw $e;
}
// @deprecated in 1.28
if ($object instanceof \Twig_TemplateInterface) {
$self = $object->getTemplateName() === $this->getTemplateName();
$message = sprintf('Calling "%s" on template "%s" from template "%s" is deprecated since version 1.28 and won\'t be supported anymore in 2.0.', $item, $object->getTemplateName(), $this->getTemplateName());
if ('renderBlock' === $method || 'displayBlock' === $method) {
$message .= sprintf(' Use block("%s"%s) instead).', $arguments[0], $self ? '' : ', template');
} elseif ('hasBlock' === $method) {
$message .= sprintf(' Use "block("%s"%s) is defined" instead).', $arguments[0], $self ? '' : ', template');
} elseif ('render' === $method || 'display' === $method) {
$message .= sprintf(' Use include("%s") instead).', $object->getTemplateName());
'page_bottom' => [$this, 'block_page_bottom'],
'body_top' => [$this, 'block_body_top'],
'body_bottom' => [$this, 'block_body_bottom'],
'page_head' => [$this, 'block_page_head'],
'page_footer' => [$this, 'block_page_footer'],
'page' => [$this, 'block_page'],
'page_body' => [$this, 'block_page_body'],
];
}
protected function doDisplay(array $context, array $blocks = [])
{
// line 1
$this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "debugger", []), "startTimer", [0 => "render", 1 => "Rendering page"], "method");
// line 2
$this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "theme", []), "setLayout", [], "method");
// line 3
$this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "theme", []), "loadAtoms", [], "method");
// line 4
$context["segments"] = $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "theme", []), "segments", [], "method");
// line 6
ob_start();
// line 7
echo " ";
if ($this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "theme", []), "hasContent", [], "method")) {
// line 8
echo " ";
$this->displayBlock('content', $context, $blocks);
// line 10
echo " ";
}
$context["content"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
// line 13
$context["offcanvas"] = null;
// line 14
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(($context["segments"] ?? null));
foreach ($context['_seq'] as $context["_key"] => $context["segment"]) {
// line 15
echo " ";
Arguments
GantryTheme {#783}
"segments"
[]
"method"
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} 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" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
]
array:11 [
"content" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_content"
]
"page_offcanvas" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page_offcanvas"
]
"page_layout" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page_layout"
]
"page_top" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page_top"
]
"page_bottom" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page_bottom"
]
"body_top" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_body_top"
]
"body_bottom" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_body_bottom"
]
"page_head" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_page_head"
]
"page_footer" => array:2 [
0 => __TwigTemplate_89ba2da846ceafe4dd030deb530892963a60a954ab3a562ee08d769d566f394d {#840}
1 => "block_page_footer"
]
"page" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page"
]
"page_body" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
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 (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
Arguments
array:8 [
"errorcode" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
]
array:11 [
"content" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_content"
]
"page_offcanvas" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page_offcanvas"
]
"page_layout" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page_layout"
]
"page_top" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page_top"
]
"page_bottom" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page_bottom"
]
"body_top" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_body_top"
]
"body_bottom" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_body_bottom"
]
"page_head" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_page_head"
]
"page_footer" => array:2 [
0 => __TwigTemplate_89ba2da846ceafe4dd030deb530892963a60a954ab3a562ee08d769d566f394d {#840}
1 => "block_page_footer"
]
"page" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page"
]
"page_body" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page_body"
]
]
{
public function __construct(Environment $env)
{
parent::__construct($env);
$this->blocks = [
'page_footer' => [$this, 'block_page_footer'],
];
}
protected function doGetParent(array $context)
{
// line 1
return "@nucleus/page.html.twig";
}
protected function doDisplay(array $context, array $blocks = [])
{
$this->parent = $this->loadTemplate("@nucleus/page.html.twig", "partials/page.html.twig", 1);
$this->parent->display($context, array_merge($this->blocks, $blocks));
}
// line 3
public function block_page_footer($context, array $blocks = [])
{
// line 4
echo " ";
$this->displayParentBlock("page_footer", $context, $blocks);
echo "
<jdoc:include type=\"modules\" name=\"debug\" />
";
}
public function getTemplateName()
{
return "partials/page.html.twig";
}
public function isTraitable()
{
Arguments
array:8 [
"errorcode" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
]
array:3 [
"page_footer" => array:2 [
0 => __TwigTemplate_89ba2da846ceafe4dd030deb530892963a60a954ab3a562ee08d769d566f394d {#840}
1 => "block_page_footer"
]
"page_head" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_content"
]
]
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} 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" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
]
array:3 [
"page_footer" => array:2 [
0 => __TwigTemplate_89ba2da846ceafe4dd030deb530892963a60a954ab3a562ee08d769d566f394d {#840}
1 => "block_page_footer"
]
"page_head" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
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 (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
Arguments
array:8 [
"errorcode" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
]
array:3 [
"page_footer" => array:2 [
0 => __TwigTemplate_89ba2da846ceafe4dd030deb530892963a60a954ab3a562ee08d769d566f394d {#840}
1 => "block_page_footer"
]
"page_head" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_content"
]
]
public function __construct(Environment $env)
{
parent::__construct($env);
$this->blocks = [
'page_head' => [$this, 'block_page_head'],
'content' => [$this, 'block_content'],
];
}
protected function doGetParent(array $context)
{
// line 1
return "partials/page.html.twig";
}
protected function doDisplay(array $context, array $blocks = [])
{
$this->parent = $this->loadTemplate("partials/page.html.twig", "error.html.twig", 1);
$this->parent->display($context, array_merge($this->blocks, $blocks));
}
// line 3
public function block_page_head($context, array $blocks = [])
{
// line 4
$this->loadTemplate("partials/error_head.html.twig", "error.html.twig", 4)->display($context);
}
// line 7
public function block_content($context, array $blocks = [])
{
// line 8
echo " <h1>";
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), "Unknown Error")) : ("Unknown Error")), "html", null, true);
echo "</h1>
";
// line 9
Arguments
array:8 [
"errorcode" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
]
array:2 [
"page_head" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_content"
]
]
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} 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" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
]
array:2 [
"page_head" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
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 (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
Arguments
array:8 [
"errorcode" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
]
array:2 [
"page_head" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
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 (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} 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 {
Arguments
array:7 [
"errorcode" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
]
* @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
*
* @return string The rendered template
*/
public function render($context = [])
{
// 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_num_args() > 1 ? func_get_arg(1) : []);
}
/**
* Displays the template.
*
* @param array $context An array of parameters to pass to the template
*/
public function display($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_num_args() > 1 ? func_get_arg(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" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
]
[]
@trigger_error(sprintf('The %s method is deprecated since version 1.22 and will be removed in Twig 2.0.', __METHOD__), \E_USER_DEPRECATED);
return $this->templateClassPrefix;
}
/**
* 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" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
]
$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" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
]
$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" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
]
*
* @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/canobit/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/canobit/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/canobit/public_html/templates"
"debug" => true
"csp_nonce" => null
"templateInherits" => ""
"params" => Joomla\Registry\Registry {#768}
"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/canobit/public_html/templates"
"debug" => true
"csp_nonce" => null
"templateInherits" => ""
"params" => Joomla\Registry\Registry {#768}
"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/canobit/public_html/templates"
"debug" => true
"csp_nonce" => null
"templateInherits" => ""
"params" => Joomla\Registry\Registry {#768}
"file" => "error.php"
]
// Push the error object into the document
$this->getDocument()->setError($error);
// Add registry file for the template asset
$wa = $this->getDocument()->getWebAssetManager()->getRegistry();
$wa->addTemplateRegistryFile($template->template, $app->getClientId());
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/canobit/public_html/templates"
"debug" => true
"csp_nonce" => null
"templateInherits" => ""
"params" => Joomla\Registry\Registry {#768}
"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
mysqli_sql_exception {#860
#message: "MySQL server has gone away"
#code: 2006
#file: "/home/canobit/public_html/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php"
#line: 470
#sqlstate: "HY000"
}
}
}
// 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
mysqli_sql_exception {#860
#message: "MySQL server has gone away"
#code: 2006
#file: "/home/canobit/public_html/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php"
#line: 470
#sqlstate: "HY000"
}
$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
mysqli_sql_exception {#860
#message: "MySQL server has gone away"
#code: 2006
#file: "/home/canobit/public_html/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php"
#line: 470
#sqlstate: "HY000"
}
*/
protected $typesKeyMapping;
/**
* Constructor.
*
* @param \mysqli $connection The database connection resource
* @param string $query The query this statement will process
*
* @since 2.0.0
* @throws PrepareStatementFailureException
*/
public function __construct(\mysqli $connection, string $query)
{
$this->connection = $connection;
$this->query = $query;
$query = $this->prepareParameterKeyMapping($query);
$this->statement = $connection->prepare($query);
if (!$this->statement)
{
throw new PrepareStatementFailureException($this->connection->error, $this->connection->errno);
}
}
/**
* Replace named parameters with numbered parameters
*
* @param string $sql The SQL statement to prepare.
*
* @return string The processed SQL statement.
*
* @since 2.0.0
*/
public function prepareParameterKeyMapping($sql)
{
$escaped = false;
$startPos = 0;
Arguments
"MySQL server has gone away"
*/
protected $typesKeyMapping;
/**
* Constructor.
*
* @param \mysqli $connection The database connection resource
* @param string $query The query this statement will process
*
* @since 2.0.0
* @throws PrepareStatementFailureException
*/
public function __construct(\mysqli $connection, string $query)
{
$this->connection = $connection;
$this->query = $query;
$query = $this->prepareParameterKeyMapping($query);
$this->statement = $connection->prepare($query);
if (!$this->statement)
{
throw new PrepareStatementFailureException($this->connection->error, $this->connection->errno);
}
}
/**
* Replace named parameters with numbered parameters
*
* @param string $sql The SQL statement to prepare.
*
* @return string The processed SQL statement.
*
* @since 2.0.0
*/
public function prepareParameterKeyMapping($sql)
{
$escaped = false;
$startPos = 0;
Arguments
"""
SELECT `a`.`menutype`,`a`.`title`\n
FROM `master_menu_types` AS `a`\n
WHERE `a`.`client_id` = 0
"""
{
$cursor->free_result();
}
return true;
}
/**
* Prepares a SQL statement for execution
*
* @param string $query The SQL query to be prepared.
*
* @return StatementInterface
*
* @since 2.0.0
* @throws PrepareStatementFailureException
*/
protected function prepareStatement(string $query): StatementInterface
{
return new MysqliStatement($this->connection, $query);
}
/**
* Unlocks tables in the database.
*
* @return $this
*
* @since 1.0
* @throws \RuntimeException
*/
public function unlockTables()
{
$this->executeUnpreparedQuery('UNLOCK TABLES');
return $this;
}
/**
* Does the database server claim to have support for UTF-8 Multibyte (utf8mb4) collation?
*
Arguments
mysqli {#199}
"""
SELECT `a`.`menutype`,`a`.`title`\n
FROM `master_menu_types` AS `a`\n
WHERE `a`.`client_id` = 0
"""
QueryInterface::class
);
}
// Check for values set on the query object and use those if there is a zero value passed here
if ($limit === 0 && $query->limit > 0)
{
$limit = $query->limit;
}
if ($offset === 0 && $query->offset > 0)
{
$offset = $query->offset;
}
$query->setLimit($limit, $offset);
$sql = $this->replacePrefix((string) $query);
$this->statement = $this->prepareStatement($sql);
$this->sql = $query;
$this->limit = (int) max(0, $limit);
$this->offset = (int) max(0, $offset);
return $this;
}
/**
* Set the connection to use UTF-8 character encoding.
*
* @return boolean True on success.
*
* @since 1.0
*/
abstract public function setUtf();
/**
* Method to truncate a table.
*
Arguments
"""
SELECT `a`.`menutype`,`a`.`title`\n
FROM `master_menu_types` AS `a`\n
WHERE `a`.`client_id` = 0
"""
/**
* Return list of menus.
*
* @return array
* @throws \RuntimeException
*/
public function getMenuOptions()
{
static $items;
if ($items === null) {
$db = Factory::getDbo();
$query = $db->getQuery(true)
->select($db->quoteName('a.menutype'))
->select($db->quoteName('a.title'))
->from($db->quoteName('#__menu_types', 'a'))
->where($db->quoteName('a.client_id') . ' = 0');
$db->setQuery($query);
$items = $db->loadAssocList('menutype');
$items = array_map(static function($val) { return $val['title']; }, $items);
natsort($items);
}
return $items;
}
/**
* Get menu ids.
*
* @return int[]
*/
public function getMenuIds()
{
$db = Factory::getDbo();
$query = $db->getQuery(true)
->select('a.id')
->from('#__menu_types AS a');
Arguments
Joomla\Database\Mysqli\MysqliQuery {#1114}
if (!empty($params['admin'])) {
$menuType = MenuHelper::getMenuType($params['menu']);
$config = $this->config();
$this->id = $menuType->id;
$config->set('settings.title', $menuType->title);
$config->set('settings.description', $menuType->description);
}
}
/**
* Return list of menus.
*
* @return array
* @throws \RuntimeException
*/
public function getMenus()
{
return array_keys($this->getMenuOptions());
}
/**
* Return list of menus.
*
* @return array
* @throws \RuntimeException
*/
public function getMenuOptions()
{
static $items;
if ($items === null) {
$db = Factory::getDbo();
$query = $db->getQuery(true)
->select($db->quoteName('a.menutype'))
->select($db->quoteName('a.title'))
->from($db->quoteName('#__menu_types', 'a'))
->where($db->quoteName('a.client_id') . ' = 0');
/**
* Returns true if the platform implements an Active menu.
*
* @return bool
*/
public function hasActiveMenu()
{
return false;
}
/**
* @param array $params
* @param Config $menu
* @return AbstractMenu
*/
public function instance(array $params = [], Config $menu = null)
{
$params += $this->defaults;
$menus = $this->getMenus();
if (!$menus) {
throw new \RuntimeException('Site does not have menus', 404);
}
if (empty($params['menu'])) {
$params['menu'] = $this->getDefaultMenuName();
if (!$params['menu'] && !empty($params['admin'])) {
// In admin just select the first menu if there isn't default menu to be selected.
$params['menu'] = reset($menus);
};
} elseif ($params['menu'] === '-active-') {
$params['menu'] = $this->getActiveMenuName();
}
if (!$params['menu']) {
throw new \RuntimeException('No menu selected', 404);
}
if (!\in_array($params['menu'], $menus, true)) {
throw new \RuntimeException('Menu not found', 404);
}
}
throw new RuntimeError(sprintf('Neither the property "%1$s" nor one of the methods "%1$s()", "get%1$s()"/"is%1$s()" or "__call()" exist and have public access in class "%2$s".', $item, $class), -1, $this->getSourceContext());
}
if ($isDefinedTest) {
return true;
}
if ($this->env->hasExtension('\Twig\Extension\SandboxExtension')) {
$this->env->getExtension('\Twig\Extension\SandboxExtension')->checkMethodAllowed($object, $method);
}
// 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 {
if (!$arguments) {
$ret = $object->$method();
} else {
$ret = \call_user_func_array([$object, $method], $arguments);
}
} catch (\BadMethodCallException $e) {
if ($call && ($ignoreStrictCheck || !$this->env->isStrictVariables())) {
return;
}
throw $e;
}
// @deprecated in 1.28
if ($object instanceof \Twig_TemplateInterface) {
$self = $object->getTemplateName() === $this->getTemplateName();
$message = sprintf('Calling "%s" on template "%s" from template "%s" is deprecated since version 1.28 and won\'t be supported anymore in 2.0.', $item, $object->getTemplateName(), $this->getTemplateName());
if ('renderBlock' === $method || 'displayBlock' === $method) {
$message .= sprintf(' Use block("%s"%s) instead).', $arguments[0], $self ? '' : ', template');
} elseif ('hasBlock' === $method) {
$message .= sprintf(' Use "block("%s"%s) is defined" instead).', $arguments[0], $self ? '' : ', template');
} elseif ('render' === $method || 'display' === $method) {
$message .= sprintf(' Use include("%s") instead).', $object->getTemplateName());
}
@trigger_error($message, \E_USER_DEPRECATED);
Arguments
array:13 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
"showAllChildren" => true
"highlightAlias" => true
"highlightParentAlias" => true
]
/* @particles/menu.html.twig */
class __TwigTemplate_1077746f4424922da7493277a28f2b064a1c899c5e6aa773b8968eacab5ae62a extends \Twig\Template
{
public function __construct(Environment $env)
{
parent::__construct($env);
$this->parent = false;
$this->blocks = [
];
}
protected function doDisplay(array $context, array $blocks = [])
{
// line 1
try { // line 2
echo " ";
$context["menu"] = $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "menu", []), "instance", [0 => ($context["particle"] ?? null)], "method");
} catch (\Exception $e) {
if ($context['gantry']->debug()) throw $e;
if (\GANTRY_DEBUGGER) \Gantry\Debugger::addException($e);
$context['e'] = $e;
// line 4
echo " <div class=\"alert alert-error\">";
echo twig_escape_filter($this->env, $this->getAttribute(($context["e"] ?? null), "getMessage", []), "html", null, true);
echo "</div>
";
}
// line 6
echo "
";
// line 14
echo "
";
// line 32
echo "
";
// line 41
Arguments
Gantry\Framework\Menu {#991}
"instance"
array:1 [
0 => array:10 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
]
]
"method"
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} 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:10 [
"segment" => {#944}
"enabled" => 1
"particle" => array:10 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
]
"prepare_layout" => true
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
"in_particle" => 1
"id" => "menu-2250"
]
[]
{
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 (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
Arguments
array:10 [
"segment" => {#944}
"enabled" => 1
"particle" => array:10 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
]
"prepare_layout" => true
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
"in_particle" => 1
"id" => "menu-2250"
]
[]
echo " ";
$context["particle"] = $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "config", []), "getJoined", [0 => ("particles." . $this->getAttribute(($context["segment"] ?? null), "subtype", [])), 1 => $this->getAttribute(($context["segment"] ?? null), "attributes", [])], "method");
// line 15
echo " ";
}
// line 16
echo " ";
}
// line 17
echo "
";
// line 18
ob_start();
// line 19
echo " ";
if ((($context["enabled"] ?? null) && ((null === $this->getAttribute($this->getAttribute(($context["segment"] ?? null), "attributes", []), "enabled", [])) || $this->getAttribute($this->getAttribute(($context["segment"] ?? null), "attributes", []), "enabled", [])))) {
// line 20
echo " ";
$this->loadTemplate([0 => (("particles/" . $this->getAttribute(($context["segment"] ?? null), "subtype", [])) . ".html.twig"), 1 => (("@particles/" . $this->getAttribute( // line 21
($context["segment"] ?? null), "subtype", [])) . ".html.twig"), 2 => "@nucleus/content/missing.html.twig"], "@nucleus/content/particle.html.twig", 20)->display($context);
// line 23
echo " ";
}
// line 24
echo " ";
$context["html"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
// line 25
echo " ";
$context["html"] = twig_trim_filter(($context["html"] ?? null));
// line 26
echo "
";
// line 27
$context["classes"] = twig_trim_filter(((( !($context["inContent"] ?? null)) ? ("g-content g-particle ") : ("g-particle ")) . twig_join_filter($this->getAttribute(($context["segment"] ?? null), "classes", []), " ")));
// line 28
if (($context["html"] ?? null)) {
// line 29
if ($this->getAttribute(($context["gantry"] ?? null), "debug", [])) {
echo "<!-- START PARTICLE ";
echo twig_escape_filter($this->env, ($context["id"] ?? null), "html", null, true);
Arguments
array:10 [
"segment" => {#944}
"enabled" => 1
"particle" => array:10 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
]
"prepare_layout" => true
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
"in_particle" => 1
"id" => "menu-2250"
]
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} 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:10 [
"segment" => {#944}
"enabled" => 1
"particle" => array:10 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
]
"prepare_layout" => true
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
"in_particle" => 1
"id" => "menu-2250"
]
[]
{
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 (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
Arguments
array:8 [
"segment" => {#944}
"enabled" => 1
"particle" => array:10 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
]
"prepare_layout" => true
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
]
[]
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 (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} 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 {
Arguments
array:7 [
"segment" => {#944}
"enabled" => 1
"particle" => array:10 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
]
"prepare_layout" => true
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
]
* @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
*
* @return string The rendered template
*/
public function render($context = [])
{
// 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_num_args() > 1 ? func_get_arg(1) : []);
}
/**
* Displays the template.
*
* @param array $context An array of parameters to pass to the template
*/
public function display($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_num_args() > 1 ? func_get_arg(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 [
"segment" => {#944}
"enabled" => 1
"particle" => array:10 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
]
"prepare_layout" => true
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
]
[]
@trigger_error(sprintf('The %s method is deprecated since version 1.22 and will be removed in Twig 2.0.', __METHOD__), \E_USER_DEPRECATED);
return $this->templateClassPrefix;
}
/**
* 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 [
"segment" => {#944}
"enabled" => 1
"particle" => array:10 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
]
"prepare_layout" => true
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
]
$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
"@nucleus/content/particle.html.twig"
array:7 [
"segment" => {#944}
"enabled" => 1
"particle" => array:10 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
]
"prepare_layout" => true
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
]
$file = PhpFile::instance($filename);
if ($file->exists()) {
try {
return ContentBlock::fromArray((array) $file->content());
} catch (\Exception $e) {
// Invalid cache, continue to rendering.
if (\GANTRY_DEBUGGER) {
Debugger::addMessage(sprintf('Failed to load %s %s cache', $item->type, $item->id), 'debug');
}
}
}
}
// Create new document context for assets.
$context = $this->getContext(['segment' => $item, 'enabled' => 1, 'particle' => $particle] + $options);
/** @var Document $document */
$document = $gantry['document'];
$document::push();
$html = trim($this->render("@nucleus/content/{$item->type}.html.twig", $context));
$content = $document::pop()->setContent($html);
if (isset($file)) {
// Save HTML and assets into the cache.
if (\GANTRY_DEBUGGER) {
Debugger::addMessage(sprintf('Caching %s %s', $item->type, $item->id), 'debug');
}
$file->save($content->toArray());
}
return $content;
}
}
Arguments
"@nucleus/content/particle.html.twig"
array:7 [
"segment" => {#944}
"enabled" => 1
"particle" => array:10 [
"caching" => array:1 [
"type" => "menu"
]
"enabled" => 1
"menu" => ""
"base" => "/"
"startLevel" => 1
"maxLevels" => 0
"renderTitles" => 0
"hoverExpand" => 1
"mobileTarget" => 0
"forceTarget" => 0
]
"prepare_layout" => true
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
]
}
}
}
}
}
/**
* Renders individual content block, like particle or position.
*
* Function is used to pre-render content.
*
* @param object|array $item
* @param array $options
* @return string|null
*/
public function renderContent($item, $options = [])
{
$gantry = static::gantry();
$content = $this->getContent($item, $options);
/** @var Document $document */
$document = $gantry['document'];
$document->addBlock($content);
$html = $content->toString();
return false === strpos($html, '@@DEFERRED@@') ? $html : null;
}
/**
* Renders individual content block, like particle or position.
*
* Function is used to pre-render content.
*
* @param object|array $item
* @param array $options
* @return ContentBlock|ContentBlockInterface
* @since 5.4.3
*/
Arguments
{#944}
array:1 [
"prepare_layout" => true
]
$fixed &= !empty($child->attributes->fixed);
}
$this->prepareLayout($item->children, $fixed, $temporary);
}
// TODO: remove hard coded types.
switch ($item->type) {
case 'system':
break;
case 'atom':
case 'particle':
case 'position':
case 'spacer':
if (\GANTRY_DEBUGGER) {
Debugger::startTimer($item->id, "Rendering {$item->id}");
}
$item->content = $this->renderContent($item, ['prepare_layout' => true]);
// Note that content can also be null (postpone rendering).
if ($item->content === '') {
unset($items[$i]);
}
if (\GANTRY_DEBUGGER) {
Debugger::stopTimer($item->id);
}
break;
default:
if ($sticky) {
$item->attributes->sticky = 1;
break;
}
if (empty($item->children)) {
unset($items[$i]);
break;
Arguments
{#944}
array:1 [
"prepare_layout" => true
]
* @param array $items
* @param bool $temporary
* @param bool $sticky
* @internal
*/
protected function prepareLayout(array &$items, $temporary = false, $sticky = false)
{
foreach ($items as $i => &$item) {
// Non-numeric items are meta-data which should be ignored.
if (((string)(int) $i !== (string) $i) || !is_object($item)) {
continue;
}
if (!empty($item->children)) {
$fixed = true;
foreach ($item->children as $child) {
$fixed &= !empty($child->attributes->fixed);
}
$this->prepareLayout($item->children, $fixed, $temporary);
}
// TODO: remove hard coded types.
switch ($item->type) {
case 'system':
break;
case 'atom':
case 'particle':
case 'position':
case 'spacer':
if (\GANTRY_DEBUGGER) {
Debugger::startTimer($item->id, "Rendering {$item->id}");
}
$item->content = $this->renderContent($item, ['prepare_layout' => true]);
// Note that content can also be null (postpone rendering).
if ($item->content === '') {
unset($items[$i]);
}
Arguments
array:1 [
0 => {#944}
]
0
0
* @param array $items
* @param bool $temporary
* @param bool $sticky
* @internal
*/
protected function prepareLayout(array &$items, $temporary = false, $sticky = false)
{
foreach ($items as $i => &$item) {
// Non-numeric items are meta-data which should be ignored.
if (((string)(int) $i !== (string) $i) || !is_object($item)) {
continue;
}
if (!empty($item->children)) {
$fixed = true;
foreach ($item->children as $child) {
$fixed &= !empty($child->attributes->fixed);
}
$this->prepareLayout($item->children, $fixed, $temporary);
}
// TODO: remove hard coded types.
switch ($item->type) {
case 'system':
break;
case 'atom':
case 'particle':
case 'position':
case 'spacer':
if (\GANTRY_DEBUGGER) {
Debugger::startTimer($item->id, "Rendering {$item->id}");
}
$item->content = $this->renderContent($item, ['prepare_layout' => true]);
// Note that content can also be null (postpone rendering).
if ($item->content === '') {
unset($items[$i]);
}
Arguments
array:1 [
0 => {#946}
]
0
0
* @param array $items
* @param bool $temporary
* @param bool $sticky
* @internal
*/
protected function prepareLayout(array &$items, $temporary = false, $sticky = false)
{
foreach ($items as $i => &$item) {
// Non-numeric items are meta-data which should be ignored.
if (((string)(int) $i !== (string) $i) || !is_object($item)) {
continue;
}
if (!empty($item->children)) {
$fixed = true;
foreach ($item->children as $child) {
$fixed &= !empty($child->attributes->fixed);
}
$this->prepareLayout($item->children, $fixed, $temporary);
}
// TODO: remove hard coded types.
switch ($item->type) {
case 'system':
break;
case 'atom':
case 'particle':
case 'position':
case 'spacer':
if (\GANTRY_DEBUGGER) {
Debugger::startTimer($item->id, "Rendering {$item->id}");
}
$item->content = $this->renderContent($item, ['prepare_layout' => true]);
// Note that content can also be null (postpone rendering).
if ($item->content === '') {
unset($items[$i]);
}
Arguments
array:1 [
0 => {#942}
]
0
false
Debugger::stopTimer('atoms');
}
}
}
/**
* Returns all non-empty segments from the layout.
*
* @return array
*/
public function segments()
{
if (!isset($this->segments)) {
$this->segments = $this->loadLayout()->toArray();
if (\GANTRY_DEBUGGER) {
Debugger::startTimer('segments', 'Preparing layout');
}
$this->prepareLayout($this->segments);
if (\GANTRY_DEBUGGER) {
Debugger::stopTimer('segments');
}
}
return $this->segments;
}
/**
* Prepare layout for rendering. Initializes all CSS/JS in particles.
*/
public function prepare()
{
$this->segments();
}
/**
* Returns details of the theme.
*
Arguments
if ($ignoreStrictCheck || !$this->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()" or "__call()" exist and have public access in class "%2$s".', $item, $class), -1, $this->getSourceContext());
}
if ($isDefinedTest) {
return true;
}
if ($this->env->hasExtension('\Twig\Extension\SandboxExtension')) {
$this->env->getExtension('\Twig\Extension\SandboxExtension')->checkMethodAllowed($object, $method);
}
// 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 {
if (!$arguments) {
$ret = $object->$method();
} else {
$ret = \call_user_func_array([$object, $method], $arguments);
}
} catch (\BadMethodCallException $e) {
if ($call && ($ignoreStrictCheck || !$this->env->isStrictVariables())) {
return;
}
throw $e;
}
// @deprecated in 1.28
if ($object instanceof \Twig_TemplateInterface) {
$self = $object->getTemplateName() === $this->getTemplateName();
$message = sprintf('Calling "%s" on template "%s" from template "%s" is deprecated since version 1.28 and won\'t be supported anymore in 2.0.', $item, $object->getTemplateName(), $this->getTemplateName());
if ('renderBlock' === $method || 'displayBlock' === $method) {
$message .= sprintf(' Use block("%s"%s) instead).', $arguments[0], $self ? '' : ', template');
} elseif ('hasBlock' === $method) {
$message .= sprintf(' Use "block("%s"%s) is defined" instead).', $arguments[0], $self ? '' : ', template');
} elseif ('render' === $method || 'display' === $method) {
$message .= sprintf(' Use include("%s") instead).', $object->getTemplateName());
'page_bottom' => [$this, 'block_page_bottom'],
'body_top' => [$this, 'block_body_top'],
'body_bottom' => [$this, 'block_body_bottom'],
'page_head' => [$this, 'block_page_head'],
'page_footer' => [$this, 'block_page_footer'],
'page' => [$this, 'block_page'],
'page_body' => [$this, 'block_page_body'],
];
}
protected function doDisplay(array $context, array $blocks = [])
{
// line 1
$this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "debugger", []), "startTimer", [0 => "render", 1 => "Rendering page"], "method");
// line 2
$this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "theme", []), "setLayout", [], "method");
// line 3
$this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "theme", []), "loadAtoms", [], "method");
// line 4
$context["segments"] = $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "theme", []), "segments", [], "method");
// line 6
ob_start();
// line 7
echo " ";
if ($this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "theme", []), "hasContent", [], "method")) {
// line 8
echo " ";
$this->displayBlock('content', $context, $blocks);
// line 10
echo " ";
}
$context["content"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
// line 13
$context["offcanvas"] = null;
// line 14
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(($context["segments"] ?? null));
foreach ($context['_seq'] as $context["_key"] => $context["segment"]) {
// line 15
echo " ";
Arguments
GantryTheme {#783}
"segments"
[]
"method"
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} 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" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
]
array:11 [
"content" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_content"
]
"page_offcanvas" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page_offcanvas"
]
"page_layout" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page_layout"
]
"page_top" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page_top"
]
"page_bottom" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page_bottom"
]
"body_top" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_body_top"
]
"body_bottom" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_body_bottom"
]
"page_head" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_page_head"
]
"page_footer" => array:2 [
0 => __TwigTemplate_89ba2da846ceafe4dd030deb530892963a60a954ab3a562ee08d769d566f394d {#840}
1 => "block_page_footer"
]
"page" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page"
]
"page_body" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
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 (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
Arguments
array:8 [
"errorcode" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
]
array:11 [
"content" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_content"
]
"page_offcanvas" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page_offcanvas"
]
"page_layout" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page_layout"
]
"page_top" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page_top"
]
"page_bottom" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page_bottom"
]
"body_top" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_body_top"
]
"body_bottom" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_body_bottom"
]
"page_head" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_page_head"
]
"page_footer" => array:2 [
0 => __TwigTemplate_89ba2da846ceafe4dd030deb530892963a60a954ab3a562ee08d769d566f394d {#840}
1 => "block_page_footer"
]
"page" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page"
]
"page_body" => array:2 [
0 => __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 {#841}
1 => "block_page_body"
]
]
{
public function __construct(Environment $env)
{
parent::__construct($env);
$this->blocks = [
'page_footer' => [$this, 'block_page_footer'],
];
}
protected function doGetParent(array $context)
{
// line 1
return "@nucleus/page.html.twig";
}
protected function doDisplay(array $context, array $blocks = [])
{
$this->parent = $this->loadTemplate("@nucleus/page.html.twig", "partials/page.html.twig", 1);
$this->parent->display($context, array_merge($this->blocks, $blocks));
}
// line 3
public function block_page_footer($context, array $blocks = [])
{
// line 4
echo " ";
$this->displayParentBlock("page_footer", $context, $blocks);
echo "
<jdoc:include type=\"modules\" name=\"debug\" />
";
}
public function getTemplateName()
{
return "partials/page.html.twig";
}
public function isTraitable()
{
Arguments
array:8 [
"errorcode" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
]
array:3 [
"page_footer" => array:2 [
0 => __TwigTemplate_89ba2da846ceafe4dd030deb530892963a60a954ab3a562ee08d769d566f394d {#840}
1 => "block_page_footer"
]
"page_head" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_content"
]
]
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} 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" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
]
array:3 [
"page_footer" => array:2 [
0 => __TwigTemplate_89ba2da846ceafe4dd030deb530892963a60a954ab3a562ee08d769d566f394d {#840}
1 => "block_page_footer"
]
"page_head" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
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 (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
Arguments
array:8 [
"errorcode" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
]
array:3 [
"page_footer" => array:2 [
0 => __TwigTemplate_89ba2da846ceafe4dd030deb530892963a60a954ab3a562ee08d769d566f394d {#840}
1 => "block_page_footer"
]
"page_head" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_content"
]
]
public function __construct(Environment $env)
{
parent::__construct($env);
$this->blocks = [
'page_head' => [$this, 'block_page_head'],
'content' => [$this, 'block_content'],
];
}
protected function doGetParent(array $context)
{
// line 1
return "partials/page.html.twig";
}
protected function doDisplay(array $context, array $blocks = [])
{
$this->parent = $this->loadTemplate("partials/page.html.twig", "error.html.twig", 1);
$this->parent->display($context, array_merge($this->blocks, $blocks));
}
// line 3
public function block_page_head($context, array $blocks = [])
{
// line 4
$this->loadTemplate("partials/error_head.html.twig", "error.html.twig", 4)->display($context);
}
// line 7
public function block_content($context, array $blocks = [])
{
// line 8
echo " <h1>";
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), "Unknown Error")) : ("Unknown Error")), "html", null, true);
echo "</h1>
";
// line 9
Arguments
array:8 [
"errorcode" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
]
array:2 [
"page_head" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_content"
]
]
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} 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" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
]
array:2 [
"page_head" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
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 (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
Arguments
array:8 [
"errorcode" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
"gantry" => Gantry\Framework\Gantry {#739}
]
array:2 [
"page_head" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
1 => "block_page_head"
]
"content" => array:2 [
0 => __TwigTemplate_9fe071c493258d1188902b75f5dfeda8ee409e405bb8b7adfafaed9ebece02a7 {#842}
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 (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} 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 {
Arguments
array:7 [
"errorcode" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
]
* @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
*
* @return string The rendered template
*/
public function render($context = [])
{
// 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_num_args() > 1 ? func_get_arg(1) : []);
}
/**
* Displays the template.
*
* @param array $context An array of parameters to pass to the template
*/
public function display($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_num_args() > 1 ? func_get_arg(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" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
]
[]
@trigger_error(sprintf('The %s method is deprecated since version 1.22 and will be removed in Twig 2.0.', __METHOD__), \E_USER_DEPRECATED);
return $this->templateClassPrefix;
}
/**
* 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" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
]
$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" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
]
$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" => 2006
"error" => "MySQL server has gone away"
"debug" => true
"backtrace" => """
<table class="table table-striped table-bordered">\n
<tr>\n
<td colspan="3">\n
<strong>Call stack</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
<strong>#</strong>\n
</td>\n
<td>\n
<strong>Function</strong>\n
</td>\n
<td>\n
<strong>Location</strong>\n
</td>\n
</tr>\n
\n
<tr>\n
<td>\n
1 </td>\n
\n
<td>\n
() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
2 </td>\n
\n
<td>\n
mysqli_stmt->store_result() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:470 </td>\n
</tr>\n
<tr>\n
<td>\n
3 </td>\n
\n
<td>\n
Joomla\Database\Mysqli\MysqliStatement->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:675 </td>\n
</tr>\n
<tr>\n
<td>\n
4 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->execute() </td>\n
\n
<td>\n
JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1375 </td>\n
</tr>\n
<tr>\n
<td>\n
5 </td>\n
\n
<td>\n
Joomla\Database\DatabaseDriver->loadObjectList() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:301 </td>\n
</tr>\n
<tr>\n
<td>\n
6 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preloadPermissions() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:206 </td>\n
</tr>\n
<tr>\n
<td>\n
7 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::preload() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:461 </td>\n
</tr>\n
<tr>\n
<td>\n
8 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::getAssetRules() </td>\n
\n
<td>\n
JROOT/libraries/src/Access/Access.php:167 </td>\n
</tr>\n
<tr>\n
<td>\n
9 </td>\n
\n
<td>\n
Joomla\CMS\Access\Access::check() </td>\n
\n
<td>\n
JROOT/libraries/src/User/User.php:384 </td>\n
</tr>\n
<tr>\n
<td>\n
10 </td>\n
\n
<td>\n
Joomla\CMS\User\User->authorise() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:70 </td>\n
</tr>\n
<tr>\n
<td>\n
11 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->populateState() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Model/StateBehaviorTrait.php:59 </td>\n
</tr>\n
<tr>\n
<td>\n
12 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Model\BaseModel->getState() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Model/ArticleModel.php:295 </td>\n
</tr>\n
<tr>\n
<td>\n
13 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Model\ArticleModel->hit() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Controller/DisplayController.php:116 </td>\n
</tr>\n
<tr>\n
<td>\n
14 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Controller\DisplayController->display() </td>\n
\n
<td>\n
JROOT/libraries/src/MVC/Controller/BaseController.php:693 </td>\n
</tr>\n
<tr>\n
<td>\n
15 </td>\n
\n
<td>\n
Joomla\CMS\MVC\Controller\BaseController->execute() </td>\n
\n
<td>\n
JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143 </td>\n
</tr>\n
<tr>\n
<td>\n
16 </td>\n
\n
<td>\n
Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56 </td>\n
</tr>\n
<tr>\n
<td>\n
17 </td>\n
\n
<td>\n
Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Component/ComponentHelper.php:361 </td>\n
</tr>\n
<tr>\n
<td>\n
18 </td>\n
\n
<td>\n
Joomla\CMS\Component\ComponentHelper::renderComponent() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:208 </td>\n
</tr>\n
<tr>\n
<td>\n
19 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->dispatch() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/SiteApplication.php:249 </td>\n
</tr>\n
<tr>\n
<td>\n
20 </td>\n
\n
<td>\n
Joomla\CMS\Application\SiteApplication->doExecute() </td>\n
\n
<td>\n
JROOT/libraries/src/Application/CMSApplication.php:293 </td>\n
</tr>\n
<tr>\n
<td>\n
21 </td>\n
\n
<td>\n
Joomla\CMS\Application\CMSApplication->execute() </td>\n
\n
<td>\n
JROOT/includes/app.php:61 </td>\n
</tr>\n
<tr>\n
<td>\n
22 </td>\n
\n
<td>\n
require_once() </td>\n
\n
<td>\n
JROOT/index.php:32 </td>\n
</tr>\n
</table>\n
"""
"theme" => GantryTheme {#783}
"site" => Gantry\Framework\Site {#686}
"joomla" => Gantry\Framework\Platform {#781}
]
*
* @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/canobit/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/canobit/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/canobit/public_html/templates"
"debug" => true
"csp_nonce" => null
"templateInherits" => ""
"params" => Joomla\Registry\Registry {#768}
"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/canobit/public_html/templates"
"debug" => true
"csp_nonce" => null
"templateInherits" => ""
"params" => Joomla\Registry\Registry {#768}
"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/canobit/public_html/templates"
"debug" => true
"csp_nonce" => null
"templateInherits" => ""
"params" => Joomla\Registry\Registry {#768}
"file" => "error.php"
]
// Push the error object into the document
$this->getDocument()->setError($error);
// Add registry file for the template asset
$wa = $this->getDocument()->getWebAssetManager()->getRegistry();
$wa->addTemplateRegistryFile($template->template, $app->getClientId());
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/canobit/public_html/templates"
"debug" => true
"csp_nonce" => null
"templateInherits" => ""
"params" => Joomla\Registry\Registry {#768}
"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
mysqli_sql_exception {#860
#message: "MySQL server has gone away"
#code: 2006
#file: "/home/canobit/public_html/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php"
#line: 470
#sqlstate: "HY000"
}
}
}
// 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
mysqli_sql_exception {#860
#message: "MySQL server has gone away"
#code: 2006
#file: "/home/canobit/public_html/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php"
#line: 470
#sqlstate: "HY000"
}
$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
mysqli_sql_exception {#860
#message: "MySQL server has gone away"
#code: 2006
#file: "/home/canobit/public_html/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php"
#line: 470
#sqlstate: "HY000"
}
$columnNames = [];
foreach ($meta->fetch_fields() as $col)
{
$columnNames[] = $col->name;
}
$meta->free();
$this->columnNames = $columnNames;
}
else
{
$this->columnNames = false;
}
}
if ($this->columnNames !== false)
{
$this->statement->store_result();
$this->rowBindedValues = array_fill(0, \count($this->columnNames), null);
$refs = [];
foreach ($this->rowBindedValues as $key => &$value)
{
$refs[$key] =& $value;
}
if (!\call_user_func_array([$this->statement, 'bind_result'], $refs))
{
throw new \RuntimeException($this->statement->error, $this->statement->errno);
}
}
$this->result = true;
return true;
}
Arguments
"MySQL server has gone away"
$columnNames = [];
foreach ($meta->fetch_fields() as $col)
{
$columnNames[] = $col->name;
}
$meta->free();
$this->columnNames = $columnNames;
}
else
{
$this->columnNames = false;
}
}
if ($this->columnNames !== false)
{
$this->statement->store_result();
$this->rowBindedValues = array_fill(0, \count($this->columnNames), null);
$refs = [];
foreach ($this->rowBindedValues as $key => &$value)
{
$refs[$key] =& $value;
}
if (!\call_user_func_array([$this->statement, 'bind_result'], $refs))
{
throw new \RuntimeException($this->statement->error, $this->statement->errno);
}
}
$this->result = true;
return true;
}
if ($this->monitor)
{
// Take a local copy so that we don't modify the original query and cause issues later
$sql = $this->replacePrefix((string) $this->sql);
$this->monitor->startQuery($sql, $bounded);
}
// Execute the query.
$this->executed = false;
// Bind the variables
foreach ($bounded as $key => $obj)
{
$this->statement->bindParam($key, $obj->value, $obj->dataType);
}
try
{
$this->executed = $this->statement->execute();
// If there is a monitor registered, let it know we have finished this query
if ($this->monitor)
{
$this->monitor->stopQuery();
}
return true;
}
catch (ExecutionFailureException $exception)
{
// If there is a monitor registered, let it know we have finished this query
if ($this->monitor)
{
$this->monitor->stopQuery();
}
// Check if the server was disconnected.
if (!$this->connected())
{
$array = [];
if ($this->statement)
{
$fetchMode = $class === \stdClass::class ? FetchMode::STANDARD_OBJECT : FetchMode::CUSTOM_OBJECT;
// PDO doesn't allow extra arguments for \PDO::FETCH_CLASS, so only forward the class for the custom object mode
if ($fetchMode === FetchMode::STANDARD_OBJECT)
{
$this->statement->setFetchMode($fetchMode);
}
else
{
$this->statement->setFetchMode($fetchMode, $class);
}
}
// Execute the query and get the result set cursor.
$this->execute();
// Get all of the rows from the result set as objects of type $class.
while ($row = $this->fetchObject())
{
if ($key)
{
$array[$row->$key] = $row;
}
else
{
$array[] = $row;
}
}
// Free up system resources and return.
$this->freeResult();
return $array;
}
$db = Factory::getDbo();
$assetKey = $extensionName . '.%';
// Get a fresh query object.
$query = $db->getQuery(true)
->select($db->quoteName(['id', 'name', 'rules', 'parent_id']))
->from($db->quoteName('#__assets'))
->where(
[
$db->quoteName('name') . ' LIKE :asset',
$db->quoteName('name') . ' = :extension',
$db->quoteName('parent_id') . ' = 0',
],
'OR'
)
->bind(':extension', $extensionName)
->bind(':asset', $assetKey);
// Get the permission map for all assets in the asset extension.
$assets = $db->setQuery($query)->loadObjectList();
self::$assetPermissionsParentIdMapping[$extensionName] = [];
foreach ($assets as $asset) {
self::$assetPermissionsParentIdMapping[$extensionName][$asset->id] = $asset;
self::$preloadedAssets[$asset->id] = $asset->name;
}
// Mark asset type and it's extension name as preloaded.
self::$preloadedAssetTypes[$assetType] = true;
self::$preloadedAssetTypes[$extensionName] = true;
!JDEBUG ?: Profiler::getInstance('Application')->mark('After Access::preloadPermissions (' . $extensionName . ')');
}
/**
* Method to preload the Rules objects for all components.
*
* Note: This will only get the base permissions for the component.
* e.g. it will get 'com_content', but not 'com_content.article.1' or
$assetTypes = self::getAssetType($assetTypes);
}
// Check for default case:
$isDefault = \is_string($assetTypes) && \in_array($assetTypes, ['components', 'component']);
// Preload the rules for all of the components.
if ($isDefault) {
self::preloadComponents();
return true;
}
// If we get to this point, this is a regular asset type and we'll proceed with the preloading process.
if (!\is_array($assetTypes)) {
$assetTypes = (array) $assetTypes;
}
foreach ($assetTypes as $assetType) {
self::preloadPermissions($assetType, $reload);
}
return true;
}
/**
* Method to recursively retrieve the list of parent Asset IDs
* for a particular Asset.
*
* @param string $assetType The asset type, or the asset name, or the extension of the asset
* (e.g. 'com_content.article', 'com_menus.menu.2', 'com_contact').
* @param integer $assetId The numeric asset id.
*
* @return array List of ancestor ids (includes original $assetId).
*
* @since 1.6
*/
protected static function getAssetAncestors($assetType, $assetId)
{
// Get the extension name from the $assetType provided
Arguments
"com_content.article"
false
* @param boolean $preload Indicates whether preloading should be used.
*
* @return Rules Rules object for the asset.
*
* @since 1.7.0
* @note The non preloading code will be removed in 4.0. All asset rules should use asset preloading.
*/
public static function getAssetRules($assetKey, $recursive = false, $recursiveParentAsset = true, $preload = true)
{
// Auto preloads the components assets and root asset (if chosen).
if ($preload) {
self::preload('components');
}
// When asset key is null fallback to root asset.
$assetKey = self::cleanAssetKey($assetKey);
// Auto preloads assets for the asset type (if chosen).
if ($preload) {
self::preload(self::getAssetType($assetKey));
}
// Get the asset id and name.
$assetId = self::getAssetId($assetKey);
// If asset rules already cached em memory return it (only in full recursive mode).
if ($recursive && $recursiveParentAsset && $assetId && isset(self::$assetRules[$assetId])) {
return self::$assetRules[$assetId];
}
// Get the asset name and the extension name.
$assetName = self::getAssetName($assetKey);
$extensionName = self::getExtensionNameFromAsset($assetName);
// If asset id does not exist fallback to extension asset, then root asset.
if (!$assetId) {
if ($extensionName && $assetName !== $extensionName) {
Log::add('No asset found for ' . $assetName . ', falling back to ' . $extensionName, Log::WARNING, 'assets');
return self::getAssetRules($extensionName, $recursive, $recursiveParentAsset, $preload);
Arguments
array:1 [
0 => "com_content.article"
]
* @param integer|string $assetKey The asset key (asset id or asset name). null fallback to root asset.
* @param boolean $preload Indicates whether preloading should be used.
*
* @return boolean|null True if allowed, false for an explicit deny, null for an implicit deny.
*
* @since 1.7.0
*/
public static function check($userId, $action, $assetKey = null, $preload = true)
{
// Sanitise inputs.
$userId = (int) $userId;
$action = strtolower(preg_replace('#[\s\-]+#', '.', trim($action)));
if (!isset(self::$identities[$userId])) {
// Get all groups against which the user is mapped.
self::$identities[$userId] = self::getGroupsByUser($userId);
array_unshift(self::$identities[$userId], $userId * -1);
}
return self::getAssetRules($assetKey, true, true, $preload)->allow($action, self::$identities[$userId]);
}
/**
* Method to preload the Rules object for the given asset type.
*
* @param integer|string|array $assetTypes The type or name of the asset (e.g. 'com_content.article', 'com_menus.menu.2').
* Also accepts the asset id. An array of asset type or a special
* 'components' string to load all component assets.
* @param boolean $reload Set to true to reload from database.
*
* @return boolean True on success.
*
* @since 1.6
* @note This method will return void in 4.0.
*/
public static function preload($assetTypes = 'components', $reload = false)
{
// If sent an asset id, we first get the asset type for that asset id.
if (is_numeric($assetTypes)) {
$assetTypes = self::getAssetType($assetTypes);
Arguments
"com_content.article.134938"
true
true
true
// The root_user variable can be a numeric user ID or a username.
if (is_numeric($rootUser) && $this->id > 0 && $this->id == $rootUser) {
$this->isRoot = true;
} elseif ($this->username && $this->username == $rootUser) {
$this->isRoot = true;
} elseif ($this->id > 0) {
// Get all groups against which the user is mapped.
$identities = $this->getAuthorisedGroups();
array_unshift($identities, $this->id * -1);
if (Access::getAssetRules(1)->allow('core.admin', $identities)) {
$this->isRoot = true;
return true;
}
}
}
return $this->isRoot ? true : (bool) Access::check($this->id, $action, $assetname);
}
/**
* Method to return a list of all categories that a user has permission for a given action
*
* @param string $component The component from which to retrieve the categories
* @param string $action The name of the section within the component from which to retrieve the actions.
*
* @return array List of categories that this group can do this action to (empty array if none). Categories must be published.
*
* @since 1.7.0
*/
public function getAuthorisedCategories($component, $action)
{
// Brute force method: get all published category rows for the component and check each one
// @todo: Modify the way permissions are stored in the db to allow for faster implementation and better scaling
$db = Factory::getDbo();
$subQuery = $db->getQuery(true)
->select($db->quoteName(['id', 'asset_id']))
Arguments
0
"core.edit.state"
"com_content.article.134938"
{
$app = Factory::getApplication();
// Load state from the request.
$pk = $app->getInput()->getInt('id');
$this->setState('article.id', $pk);
$offset = $app->getInput()->getUint('limitstart');
$this->setState('list.offset', $offset);
// Load the parameters.
$params = $app->getParams();
$this->setState('params', $params);
$user = $this->getCurrentUser();
// If $pk is set then authorise on complete asset, else on component only
$asset = empty($pk) ? 'com_content' : 'com_content.article.' . $pk;
if ((!$user->authorise('core.edit.state', $asset)) && (!$user->authorise('core.edit', $asset))) {
$this->setState('filter.published', ContentComponent::CONDITION_PUBLISHED);
$this->setState('filter.archived', ContentComponent::CONDITION_ARCHIVED);
}
$this->setState('filter.language', Multilanguage::isEnabled());
}
/**
* Method to get article data.
*
* @param integer $pk The id of the article.
*
* @return object|boolean Menu item data object on success, boolean false
*/
public function getItem($pk = null)
{
$user = $this->getCurrentUser();
$pk = (int) ($pk ?: $this->getState('article.id'));
Arguments
"core.edit.state"
"com_content.article.134938"
/**
* Method to get state variables.
*
* @param string $property Optional parameter name
* @param mixed $default Optional default value
*
* @return mixed The property where specified, the state object where omitted
*
* @since 4.0.0
*/
public function getState($property = null, $default = null)
{
if ($this->state === null) {
$this->state = new CMSObject();
}
if (!$this->__state_set) {
// Protected method to auto-populate the state
$this->populateState();
// Set the state set flag to true.
$this->__state_set = true;
}
return $property === null ? $this->state : $this->state->get($property, $default);
}
/**
* Method to set state variables.
*
* @param string $property The name of the property
* @param mixed $value The value of the property to set or null
*
* @return mixed The previous value of the property or null if not set
*
* @since 4.0.0
*/
public function setState($property, $value = null)
{
}
}
return $this->_item[$pk];
}
/**
* Increment the hit counter for the article.
*
* @param integer $pk Optional primary key of the article to increment.
*
* @return boolean True if successful; false otherwise and internal error set.
*/
public function hit($pk = 0)
{
$input = Factory::getApplication()->getInput();
$hitcount = $input->getInt('hitcount', 1);
if ($hitcount) {
$pk = (!empty($pk)) ? $pk : (int) $this->getState('article.id');
$table = Table::getInstance('Content', 'JTable');
$table->hit($pk);
}
return true;
}
/**
* Save user vote on article
*
* @param integer $pk Joomla Article Id
* @param integer $rate Voting rate
*
* @return boolean Return true on success
*/
public function storeVote($pk = 0, $rate = 0)
{
$pk = (int) $pk;
$rate = (int) $rate;
Arguments
'return' => 'BASE64',
'filter' => 'STRING',
'filter_order' => 'CMD',
'filter_order_Dir' => 'CMD',
'filter-search' => 'STRING',
'print' => 'BOOLEAN',
'lang' => 'CMD',
'Itemid' => 'INT', ];
// Check for edit form.
if ($vName === 'form' && !$this->checkEditId('com_content.edit.article', $id)) {
// Somehow the person just went to the form - we don't allow that.
throw new \Exception(Text::sprintf('JLIB_APPLICATION_ERROR_UNHELD_ID', $id), 403);
}
if ($vName === 'article') {
// Get/Create the model
if ($model = $this->getModel($vName)) {
if (ComponentHelper::getParams('com_content')->get('record_hits', 1) == 1) {
$model->hit();
}
}
}
parent::display($cachable, $safeurlparams);
return $this;
}
}
* @throws \Exception
*/
public function execute($task)
{
$this->task = $task;
$task = strtolower((string) $task);
if (isset($this->taskMap[$task])) {
$doTask = $this->taskMap[$task];
} elseif (isset($this->taskMap['__default'])) {
$doTask = $this->taskMap['__default'];
} else {
throw new \Exception(Text::sprintf('JLIB_APPLICATION_ERROR_TASK_NOT_FOUND', $task), 404);
}
// Record the actual task being fired
$this->doTask = $doTask;
return $this->$doTask();
}
/**
* Method to get a model object, loading it if required.
*
* @param string $name The model name. Optional.
* @param string $prefix The class prefix. Optional.
* @param array $config Configuration array for model. Optional.
*
* @return BaseDatabaseModel|boolean Model object on success; otherwise false on failure.
*
* @since 3.0
*/
public function getModel($name = '', $prefix = '', $config = [])
{
if (empty($name)) {
$name = $this->getName();
}
if (!$prefix) {
$this->input->set('controller', $controller);
$this->input->set('task', $task);
} else {
// Do we have a controller?
$controller = $this->input->get('controller', 'display');
$task = $command;
}
// Build controller config data
$config = ['option' => $this->option];
// Set name of controller if it is passed in the request
if ($this->input->exists('controller')) {
$config['name'] = strtolower($this->input->get('controller'));
}
// Execute the task for this component
$controller = $this->getController($controller, ucfirst($this->app->getName()), $config);
$controller->execute($task);
$controller->redirect();
}
/**
* Get a controller from the component
*
* @param string $name Controller name
* @param string $client Optional client (like Administrator, Site etc.)
* @param array $config Optional controller config
*
* @return BaseController
*
* @since 4.0.0
*/
public function getController(string $name, string $client = '', array $config = []): BaseController
{
// Set up the client
$client = $client ?: ucfirst($this->app->getName());
// Get the controller instance
Arguments
|| ($this->input->get('view') === 'article' && $this->input->get('layout') === 'pagebreak');
if ($checkCreateEdit) {
// Can create in any category (component permission) or at least in one category
$canCreateRecords = $this->app->getIdentity()->authorise('core.create', 'com_content')
|| count($this->app->getIdentity()->getAuthorisedCategories('com_content', 'core.create')) > 0;
// Instead of checking edit on all records, we can use **same** check as the form editing view
$values = (array) $this->app->getUserState('com_content.edit.article.id');
$isEditingRecords = count($values);
$hasAccess = $canCreateRecords || $isEditingRecords;
if (!$hasAccess) {
$this->app->enqueueMessage(Text::_('JERROR_ALERTNOAUTHOR'), 'warning');
return;
}
}
parent::dispatch();
}
}
if (!\defined('JPATH_COMPONENT_ADMINISTRATOR')) {
/**
* Defines the path to the admin element of the active component for the request
*
* @var string
* @since 1.5
*
* @deprecated 4.3 will be removed in 6.0
* Will be removed without replacement
*/
\define('JPATH_COMPONENT_ADMINISTRATOR', JPATH_ADMINISTRATOR . '/components/' . $option);
}
// If component is disabled throw error
if (!static::isEnabled($option)) {
throw new MissingComponentException(Text::_('JLIB_APPLICATION_ERROR_COMPONENT_NOT_FOUND'), 404);
}
ob_start();
$app->bootComponent($option)->getDispatcher($app)->dispatch();
$contents = ob_get_clean();
// Revert the scope
$app->scope = $scope;
if (JDEBUG) {
Profiler::getInstance('Application')->mark('afterRenderComponent ' . $option);
}
return $contents;
}
/**
* Load the installed components into the components property.
*
* @return boolean True on success
*
* @since 3.2
*/
protected static function load()
$wr->addTemplateRegistryFile($template->template, $this->getClientId());
break;
case 'feed':
$document->setBase(htmlspecialchars(Uri::current()));
break;
}
$document->setTitle($params->get('page_title'));
$document->setDescription($params->get('page_description'));
// Add version number or not based on global configuration
if ($this->get('MetaVersion', 0)) {
$document->setGenerator('Joomla! - Open Source Content Management - Version ' . JVERSION);
} else {
$document->setGenerator('Joomla! - Open Source Content Management');
}
$contents = ComponentHelper::renderComponent($component);
$document->setBuffer($contents, 'component');
// Trigger the onAfterDispatch event.
PluginHelper::importPlugin('system');
$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.
Arguments
// 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;
}
/**
* Return the current state of the detect browser option.
*
* @return boolean
*
* @since 3.2
*/
public function getDetectBrowser()
{
return $this->detect_browser;
}
/**
* Return the current state of the language filter.
*
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/canobit/public_html/includes/app.php"