Skip to content

Instantly share code, notes, and snippets.

@EvanLovely
Created April 6, 2019 06:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save EvanLovely/da030164a3ef5f85e69fa0b771dbbe8a to your computer and use it in GitHub Desktop.
Save EvanLovely/da030164a3ef5f85e69fa0b771dbbe8a to your computer and use it in GitHub Desktop.
{% set data = {
home_away: node.field_home_away_or_neutral.value,
no_audio: node.field_live_audio_unavailable.value,
venue: node.field_venue.entity.name.value,
tv_name: node.field_tv_channel.entity.name.value,
tv_logo: node.field_tv_channel.entity.field_logo.entity.getFileUri(),
competition: node.field_competition.entity.name.value,
competition_logo: node.field_competition.entity.field_logo.entity.getFileUri() | image_style('small'),
date: content.field_fixture_date,
date_override: content.field_date_override,
url: url,
opponent_name: node.field_opponent.0.entity.name.value,
opponent_logo: node.field_opponent.0.entity.field_logo.entity.getFileUri() | image_style('feed_crest_thumbnail'),
arsenal_logo: node.field_arsenal_team.0.entity.field_logo.entity.getFileUri() | image_style('feed_crest_thumbnail'),
score_arsenal: node.field_score_arsenal.value,
score_opponent: node.field_score_opponent.value,
highlights: node.field_match_highlights.value,
comment: node.field_comment.value,
ticket_news_nid: content.ticket_news.id,
ticket_news_link: content.ticket_news.id != '0' ? path('entity.node.canonical', {'node': content.ticket_news.id }) : null,
arsenal_scorers: content.arsenal_scorers.value,
opponent_scorers: content.opponent_scorers.value,
} %}
{% if data.score_arsenal is not empty or data.score_opponent is not empty %}
{% set score = {
arsenal: data.score_arsenal ? data.score_arsenal : 0,
opponent: data.score_opponent ? data.score_opponent : 0,
} %}
{% endif %}
{# Uncomment to see data values #}
{#<ol>#}
{#{% for key, value in data %}#}
{#<li>{{ key }} - {{ value }}</li>#}
{#{% endfor %}#}
{#</ol>#}
{% set broadcaster = score or data.tv_name == 'Not Televised' ? null : {
img: data.tv_logo ? data.tv_logo | image_style('small') : null,
name: data.tv_name,
} %}
{% set eventInfo = {
"date": data.date_override|render is not empty ? data.date_override : data.date,
"venue": score ? null : data.venue,
"extra": data.competition,
broadcaster: broadcaster
} %}
{% set teamName %}
<span class="team-crest__name-value">{{ data.opponent_name }}</span>
{% endset %}
{% set teamCrest %}
{% include "@atoms/_team-crest.twig" with {
teamName: teamName,
crest: data.opponent_logo,
alt: true,
extras: true,
date: data.date_override|render is not empty ? data.date_override : data.date,
extra: data.competition,
} %}
{% endset %}
{% set location %}
{% include "@atoms/_location-icon.twig" with {
location: data.home_away,
} %}
{% endset %}
{% if score %}
{% set theScores %}
{% if data.home_away == 'away' %}
{% include '@atoms/scores.twig' with {
scores: [score.opponent, score.arsenal],
arsenalSecond: true,
} %}
{% else %}
{% include '@atoms/scores.twig' with {
scores: [score.arsenal, score.opponent],
arsenalSecond: false,
} %}
{% endif %}
{% endset %}
{% set maincard %}
<div class="u-row">
{{ teamCrest }}
<div class="fixture-card__extra-items">
<div class="fixture-card__extra-items__location show-medium show-big">{{ location }}</div>
<div class="fixture-card__extra-items__scores show-small show-medium">{{ theScores }}</div>
</div>
</div>
{% endset %}
{% set extraHeaderSlot %}
<div class="show-big">{{ theScores }}</div>
<div class="show-small">{{ location }}</div>
{% endset %}
{% else %}
{% set maincard %}
<div class="u-row">
{{ teamCrest }}
{{ location }}
</div>
{% endset %}
{% endif %}
{% set ctas = [
{
text: "News & Video"|upper,
url: data.url,
}
] %}
{% if data.ticket_news_link and not score %}
{% set ctas = ctas|merge([
{
text: "Tickets"|upper,
primary: true,
url: data.ticket_news_link,
},
{
text: "Ticket Info"|upper,
primary: true,
url: data.ticket_news_link,
},
]) %}
{% endif %}
{% set classes = [
'node',
'node--type-' ~ node.bundle|clean_class,
node.isPromoted() ? 'node--promoted',
node.isSticky() ? 'node--sticky',
not node.isPublished() ? 'node--unpublished',
view_mode ? 'node--view-mode-' ~ view_mode|clean_class,
] %}
<article{{ attributes }}>
{{ title_suffix }}
{% include '@organisms/_fixture-card.twig' with {
element: 'div',
extraHeaderSlot: extraHeaderSlot,
hasScore: score is not empty,
event: eventInfo,
broadcaster: broadcaster,
ctas: ctas,
alt: true,
audio: data.no_audio == '0' and not score ? '#' : null,
content: maincard,
alert: score ? null : data.comment,
} only %}
</article>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment