{% extends "_layout.twig" %}
{% block content %}
<article class="info-page">
<h1>{{ entry.title }}</h1>
{% if entry.contentBlocks is defined and entry.contentBlocks | length %}
{% for block in entry.contentBlocks.all() %}
{% if block.type == 'text' %}
<section class="block-text">
{% if block.title %}
<h2>{{ block.title }}</h2>
{% endif %}
{% if block.text %}
{% extends "_layout.twig" %}
{% block content %}
<article class="info-page">
<h1>{{ entry.title }}</h1>
{% if entry.contentBlocks is defined and entry.contentBlocks | length %}
{% for block in entry.contentBlocks.all() %}
{% if block.type == 'text' %}
<section class="block-text">
{% if block.title %}
if (null !== $template && !$template instanceof self) {
throw new \LogicException('A block must be a method on a \Twig\Template instance.');
}
if (null !== $template) {
try {
yield from $template->$block($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($template->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
</nav>
<hr>
</header>
<main>
{% block content %}{% endblock %}
</main>
<footer>
<hr>
<p style="font-size: 0.8em; color: #666;">© {{ now|date('Y') }} – EB Content Check</p>
</footer>
public function yield(array $context, array $blocks = []): iterable
{
$context += $this->env->getGlobals();
$blocks = array_merge($this->blocks, $blocks);
try {
yield from $this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
{% extends "_layout.twig" %}
{% block content %}
<article class="info-page">
<h1>{{ entry.title }}</h1>
{% if entry.contentBlocks is defined and entry.contentBlocks | length %}
public function yield(array $context, array $blocks = []): iterable
{
$context += $this->env->getGlobals();
$blocks = array_merge($this->blocks, $blocks);
try {
yield from $this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
{
return $this->blocks;
}
public function display(array $context, array $blocks = []): void
{
foreach ($this->yield($context, $blocks) as $data) {
echo $data;
}
}
public function render(array $context): string
{
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
private Template $template,
) {
}
public function render(array $context = []): string
{
return $this->template->render($context);
}
public function display(array $context = [])
{
// using func_get_args() allows to not expose the blocks argument
// as it should only be used by internal code
* @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 = []): string
{
return $this->load($name)->render($context);
}
/**
* Displays a template.
*
* @param string|TemplateWrapper $name The template name
// Render and return
$renderingTemplate = $this->_renderingTemplate;
$this->_renderingTemplate = $template;
try {
$output = $this->getTwig()->render($template, $variables);
} finally {
$this->_renderingTemplate = $renderingTemplate;
$this->setTemplateMode($oldTemplateMode);
}
$this->afterRenderTemplate($template, $variables, $templateMode, $output);
$isRenderingPageTemplate = $this->_isRenderingPageTemplate;
$this->_isRenderingPageTemplate = true;
try {
$this->beginPage();
echo $this->renderTemplate($template, $variables);
$this->endPage();
} finally {
$this->_isRenderingPageTemplate = $isRenderingPageTemplate;
$this->setTemplateMode($oldTemplateMode);
$output = ob_get_clean();
}
) {
$view->registerAssetBundle(ContentWindowAsset::class);
}
// Render and return the template
try {
$response->content = $view->renderPageTemplate($behavior->template, $behavior->variables, $behavior->templateMode);
} catch (Throwable $e) {
$previous = $e->getPrevious();
if ($previous instanceof YiiExitException) {
// Something called Craft::$app->end()
if ($previous instanceof ExitException && $previous->output !== null) {
echo $previous->output;
if (isset($this->formatters[$this->format])) {
$formatter = $this->formatters[$this->format];
if (!is_object($formatter)) {
$this->formatters[$this->format] = $formatter = Yii::createObject($formatter);
}
if ($formatter instanceof ResponseFormatterInterface) {
$formatter->format($this);
} else {
throw new InvalidConfigException("The '{$this->format}' response formatter is invalid. It must implement the ResponseFormatterInterface.");
}
} elseif ($this->format === self::FORMAT_RAW) {
if ($this->data !== null) {
$this->content = $this->data;
/**
* @inheritdoc
*/
protected function prepare(): void
{
parent::prepare();
$this->_isPrepared = true;
}
/**
* Clear the output buffer to prevent corrupt downloads.
*
public function send()
{
if ($this->isSent) {
return;
}
$this->trigger(self::EVENT_BEFORE_SEND);
$this->prepare();
$this->trigger(self::EVENT_AFTER_PREPARE);
$this->sendHeaders();
$this->sendContent();
$this->trigger(self::EVENT_AFTER_SEND);
$this->isSent = true;
}
$response = $this->handleRequest($this->getRequest());
$this->state = self::STATE_AFTER_REQUEST;
$this->trigger(self::EVENT_AFTER_REQUEST);
$this->state = self::STATE_SENDING_RESPONSE;
$response->send();
$this->state = self::STATE_END;
return $response->exitStatus;
} catch (ExitException $e) {
$this->end($e->statusCode, isset($response) ? $response : null);
// Load shared bootstrap require dirname(__DIR__) . '/bootstrap.php'; // Load and run Craft /** @var craft\web\Application $app */ $app = require CRAFT_VENDOR_PATH . '/craftcms/cms/bootstrap/web.php'; $app->run();