Skip to content

Instantly share code, notes, and snippets.

@michtio
Created April 6, 2020 15:50
Show Gist options
  • Save michtio/a150f57c054d0cbd61d5f8d0afeaead3 to your computer and use it in GitHub Desktop.
Save michtio/a150f57c054d0cbd61d5f8d0afeaead3 to your computer and use it in GitHub Desktop.
Craft CMS GraphQL Query for:
% for site in craft.app.sites.getAllSites() %}
{% if site.handle != 'main' %}
{% set schoolNetworkSettings = craft.globalSets()
.handle('networkSettings')
.siteId(site.id)
.with(['networkLogo'])
.one()
%}
{% set latestNews = craft.entries()
.siteId(site.id)
.section('news')
.dateCreated(['and', ">= #{startDate}", "< #{endDate}"])
.count() %}
{% set events = craft.entries()
.siteId(site.id)
.section('event')
.all() %}
{% set eventEntries = [] %}
{% for event in events %}
{% set eventInfo = event.eventInfo.type('eventDetails').one() %}
{% if eventInfo != null %}
{% set eventDates = [] %}
{% for date in eventInfo.dates.all() %}
{% if (date.startDate | date('U')) > ("now" | date('U')) %}
{% set eventDates = eventDates|merge([date.startDate]) %}
{% endif %}
{% endfor %}
{% endif %}
{% set eventEntries = eventEntries|merge(eventDates) %}
{% endfor %}
{% set upcomingEvents = eventEntries | length %}
{% set schoolInfo =
schoolInfo|merge(
{
(schoolNetworkSettings.networkShortName) :
{
'id': site.id,
'lng': schoolNetworkSettings.networkLong,
'lat': schoolNetworkSettings.networkLat,
'url': site.baseUrl,
'networkAddress': schoolNetworkSettings.networkAddress,
'networkPostCode': schoolNetworkSettings.networkPostCode,
'siteName': schoolNetworkSettings.networkShortName,
'name': schoolNetworkSettings.networkName,
'logo': schoolNetworkSettings.networkLogo[0].url() ?? null,
'hidden': schoolNetworkSettings.isHidden,
'tel': schoolNetworkSettings.networkTelephone,
'email': schoolNetworkSettings.networkEmail,
'region': schoolNetworkSettings.region.label,
'regionHandle': schoolNetworkSettings.region.value,
'latestNews': latestNews,
'upcomingEvents': upcomingEvents,
}
}
)
%}
{% endif %}
{% endfor %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment