<article class="news-index__article grid-x grid-margin-x grid-margin-y">
{% if news.featuredImage|length %}
<div class="news-index__featured-img cell large-4">
<img src="{{ news.featuredImage.one().url() }}" alt="{{ news.featuredImage.one().title }}">
</div>
{% endif %}
<div class="cell{% if news.featuredImage|length %} large-8{% endif %}">
<h2 class="hypens--auto"><a href="{{ news.url() }}" class="text--secondary">{{ news.title }}</a></h2>
<p class="margin-bottom-0">{{ news.postDate|date('M j, Y') }}</p>
{% if event.calendar %}{% endif %}
</div>
{% if event.snippet|length %}
<div class="cell medium-10 rich-text">
<p>{{ event.snippet }}</p>
</div>
{% endif %}
{% if event.contentBlocks|length %}
<div class="cell medium-2 text--right">
<a href="{{ event.url() }}" class="button margin-bottom-0">Read More</a>
<img src="{{ news.featuredImage.one().url() }}" alt="{{ news.featuredImage.one().title }}">
</div>
{% endif %}
<div class="cell{% if news.featuredImage|length %} large-8{% endif %}">
<h2 class="hypens--auto"><a href="{{ news.url() }}" class="text--secondary">{{ news.title }}</a></h2>
<p class="margin-bottom-0">{{ news.postDate|date('M j, Y') }}</p>
{% if event.calendar %}{% endif %}
</div>
{% if event.snippet|length %}
<div class="cell medium-10 rich-text">
<p>{{ event.snippet }}</p>
</div>
{% endif %}
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
{% endif %}
{% endfor %}
{% endif %}
{# Main content #}
<main>
{% block main %}{% endblock %}
</main>
{% do view.registerJsFile(districtUrl ~ 'assets/js/app.js?ver=6') %}
<script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js"></script>
<script>
WebFont.load({
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" %}
{% block main %}
<div class="news-index grid-x grid-margin-y container">
<main class="news-index__main padding--section cell large-8">
<h1 class="heading--thin margin-bottom-50">{{ category.title }}</h1>
{% set newsEntries = craft.entries.section('news').relatedTo(category) %}
{% paginate newsEntries as pageInfo, pageEntries %}
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 and run Craft
define('CRAFT_ENVIRONMENT', getenv('ENVIRONMENT') ?: 'production');
/** @var craft\web\Application $app */
$app = require CRAFT_VENDOR_PATH.'/craftcms/cms/bootstrap/web.php';
$app->run();
$_COOKIE = [
'$Version' => '1',
'CRAFT_CSRF_TOKEN' => '9ff9ded9ade47f0928465d8ff3bb32818e10c8e01525e658872cc0c3aa246ebda:2:{i:0;s:16:"CRAFT_CSRF_TOKEN";i:1;s:40:"XZvgRd3fXGO7Xz5dr-LYPLpEkd0bzz6lU6LACMTZ";}',
'$Path' => '/',
];