Fundraising economics Super-admin
@error('thresholdStandard')

{{ $message }}

@enderror
@error('thresholdPlatinum')

{{ $message }}

@enderror
@error('eventCost')

{{ $message }}

@enderror
@error('eventCostPlatinum')

{{ $message }}

@enderror
@error('campaignGoal')

{{ $message }}

@enderror
Save settings
About these settings

These values were previously fixed in configuration. Editing them here updates the platform immediately — thresholds change the voucher target shown on fundraiser pages, and the event cost recalculates break-even and net-to-charity.

Changing economics is a super-admin-only action and is recorded in the audit log. It does not retroactively change individual fundraisers' existing voucher thresholds.
{{-- Campaign defaults (D45) --}}
Campaign defaults Super-admin

The starting values every new fundraiser's campaign is created with — they can change their own goal, photo and message afterwards. Editing here does not change existing campaigns.

@error('campaignDefaultGoal')

{{ $message }}

@enderror
@error('campaignDefaultImage')

{{ $message }}

@enderror
@error('campaignDefaultMessage')

{{ $message }}

@enderror
@error('campaignSignoff')

{{ $message }}

@enderror
Save campaign defaults
{{-- Mail / SMTP (D26) --}}
Mail / SMTP Super-admin

All system emails (login links, verification, reminders) send through these settings. Change them here if the SMTP service changes — no redeploy needed, then send a test below to confirm.

@error('mailHost')

{{ $message }}

@enderror
@error('mailPassword')

{{ $message }}

@enderror
@error('mailFromAddress')

{{ $message }}

@enderror
The password is stored encrypted and never shown again. Saving is a super-admin-only action and is recorded in the audit log (the password itself is not logged).
Save mail settings
{{-- Send test email (uses the values above, even unsaved) --}}
@error('testAddress')

{{ $message }}

@enderror
Send test Sending…

Tests the values shown above (including unsaved changes). A blank password uses the stored one. CLI alternative: php artisan mail:test you@yspi.ie.

{{-- Images location (D28) --}}
Images Super-admin

The single location every image on the site is read, written and served from — Media Library uploads, generated thumbnails, and legacy county / page / campaign imagery. Point it at the live server now, then switch it to the local path once this becomes the live site.

@php $ip = trim($imagePath); $absUrl = str_starts_with($ip, 'http://') || str_starts_with($ip, 'https://'); $served = $absUrl ? rtrim($ip, '/') : '/'.trim($ip, '/'); $subfolder = ltrim((string) (parse_url($served, PHP_URL_PATH) ?: '/images'), '/'); $diskRoot = (trim($imageDocumentRoot) !== '' ? rtrim($imageDocumentRoot, '/') : '[app]/public').'/'.$subfolder; // County images: the override if set, else derived from the image path. $countyServed = trim($countyImageRoot) !== '' ? rtrim(trim($countyImageRoot), '/') : $served.'/county'; @endphp
@error('imageDocumentRoot')

{{ $message }}

@enderror
@error('imagePath')

{{ $message }}

@enderror
@error('countyImageRoot')

{{ $message }}

@enderror
Files read/written under {{ $diskRoot }} · served from {{ $served }}/… · counties from {{ $countyServed }}/…
Save images location
{{-- Email header & footer (D30) --}}
Email header & footer Super-admin

The text parts of the branded email shell wrapped around every transactional email (the layout & colours are fixed). Tokens like @{{ event_name }}, @{{ first_name }} and @{{ year }} are substituted per recipient. Manage the email copy itself under Email Templates.

{{-- Fundraiser header --}}

Fundraiser email header

@error('emailHeaderUserTitle')

{{ $message }}

@enderror
@error('emailHeaderUserTagline')

{{ $message }}

@enderror
@error('emailHeaderImage')

{{ $message }}

@enderror

Sits behind the title in both headers. Must be a full https:// address that is publicly reachable — mail clients fetch it over the internet, so a relative path shows nothing. Upload one in Media and paste its URL. Use a dark, wide image (roughly 1200×236 for retina): the text sits on it in white over a dark scrim, and the navy shows through whenever a client blocks images. Leave blank for the plain navy.

{{-- Admin header --}}

Admin email header

@error('emailHeaderAdminTitle')

{{ $message }}

@enderror
@error('emailHeaderAdminTagline')

{{ $message }}

@enderror
{{-- Footer --}}

Footer

! $emailFooterEnabled])> @error('emailFooterLine')

{{ $message }}

@enderror
! $emailFooterEnabled])> @error('emailFooterNote')

{{ $message }}

@enderror
Save header & footer
{{-- ===================== DONATIONS · COLLECTOR (D88) ===================== --}}
Donations · Collector Super-admin

All YSPI donations are moving to the central Collector — one auditable finance endpoint. When this is switched on, every Sponsor button and the Donate link send people to the Collector, which takes the payment, records the donation and issues the receipt. This site’s own card checkout is disabled while it is on. Totals, leaderboards and reports are unaffected — they keep reading the same donation records.

Send donations to the Collector

@error('collectorCollectId')

{{ $message }}

@enderror

One value for this whole site, pre-filled from the server’s COLLECTOR_EVENT_ID — anything entered here overrides it. Digits only; the switch stays off until a valid ID is set. (This is the Collector event, not the county each fundraiser is tagged to.)

@if ($collectorEnabled) @php // The switch is stored in the database, so it can be turned on while the // Collector's address is missing from the server config — in which case the // hand-off stays off and this site quietly keeps taking the donations. $collectorUrl = trim((string) config('services.collector.url')); $collectorUrlUsable = str_starts_with($collectorUrl, 'https://') || str_starts_with($collectorUrl, 'http://'); @endphp @unless ($collectorUrlUsable)

Not in effect yet. The Collector address (COLLECTOR_URL) isn’t set on this server, so donations are still being taken here. Set it in the site’s .env and rebuild the config cache, then reload this page.

@endunless

Before switching on, confirm YSPI has set the Collector event to Checkout mode. If anything looks wrong, switch this back off — donations return to this site immediately.

@endif
Save donation routing