@foreach($checkinsList as $checkin) <li> @php $hasEmbed = null; $embedMissing = null; if (preg_match("/\[\[([^\]]+)\]\]/", $checkin->note, $filepath)) { if (preg_match("/\.webm/", $filepath[1])) { $hasEmbed = 'videos'; $trip_slug = preg_replace( '/[^A-Za-z0-9-]+/', '-', strtolower( $trip->name ) ); if (file_exists(public_path() . "/" . $trip_slug . "/" . $hasEmbed . "/" . $filepath[1])) { $path = "/" . $trip_slug . "/" .$hasEmbed . "/" . $filepath[1]; $embed = '<video class="popup__video" controls>'; $embed .= '<source src="' . secure_url( $path ) . '" type="video/webm">'; $embed .= '<p>Your client doesn\'t support HTML video. Here is a <a href="' . secure_url( $path ) . '">link to the video</a> instead.</p>'; $embed .= '</video>'; if (isset($email)) { $embed .= '<p><i>If your email client doesn\'t support video embeds, here is a <a href="' . secure_url( $path ) . '">link to the file</a> instead.</i></p>'; } } else { $embed = '<p>[The video \'' . $filepath[1] . '\' has not yet been uploaded, try again later.]</p>'; $embedMissing = true; } } elseif (preg_match("/\.ogg/", $filepath[1])) { $hasEmbed = 'audio'; $trip_slug = preg_replace( '/[^A-Za-z0-9-]+/', '-', strtolower( $trip->name ) ); if (file_exists(public_path() . "/" . $trip_slug . "/" . $hasEmbed . "/" . $filepath[1])) { $path = "/" . $trip_slug . "/" .$hasEmbed . "/" . $filepath[1]; $embed = '<audio class="popup__audio" controls>'; $embed .= '<source src="' . secure_url( $path ) . '" type="audio/ogg">'; $embed .= '<p>Download <a href="' . secure_url( $path ) . '">OGG</a> audio.</p>'; $embed .= '</audio>'; if (isset($email)) { $embed .= '<p><i>If your email client doesn\' support audio embeds, here is a <a href="' . secure_url( $path ) . '">link to the file</a> instead.</i></p>'; } } else { $embed = '<p>[The recording \'' . $filepath[1] . '\' has not yet been uploaded, try again later.]</p>'; $embedMissing = true; } } $checkin->note = preg_replace("/\[\[[^\]]+\]\]/", $embed, $checkin->note); } @endphp <details class="checkin" id="{{ $checkin->id }}" ontoggle="toggleCheckin(this.open, this.id)"> <summary class="checkin__summary"> <h2 class="checkin__title"> {!! $checkin->title ?? "<i>Untitled</i>" !!} @if($checkin->image_url) <span class="checkin-icon">🖼️</span> @endif @if($hasEmbed) @if($hasEmbed === 'videos') <span class="checkin-icon @if($embedMissing) checkin-icon--missing @endif">📹</span> @endif @if($hasEmbed === 'audio') <span class="checkin-icon @if($embedMissing) checkin-icon--missing @endif">🔈</span> @endif @endif </h2> <p class="checkin__meta">{!! render_date_difference($checkin->date) !!}</p> </summary> @if($checkin->note) @if($checkin->id === 3930) @include('partials.abolition-checkin') @else {!! $checkin->note !!} @endif @endif @if($checkin->image_url) <img class="popup__image" loading="lazy" src="{{ $checkin->image_url }}"> @endif </details> </li> @endforeach