@php use App\Helpers\SchemaCollector; $orgLogoUrl = Settings('logo'); if ($orgLogoUrl && !str_starts_with($orgLogoUrl, 'http')) { $orgLogoUrl = url($orgLogoUrl); } $personItems = []; foreach ($users as $user) { $imageUrl = isset($user->image) ? $user->image : null; if ($imageUrl && !str_starts_with($imageUrl, 'http')) { $imageUrl = url($imageUrl); } $sameAs = array_values(array_filter([ isset($user->facebook_url) ? $user->facebook_url : (isset($user->facebook) ? $user->facebook : null), isset($user->twitter_url) ? $user->twitter_url : (isset($user->twitter) ? $user->twitter : null), isset($user->linkedin_url) ? $user->linkedin_url : (isset($user->linkedin) ? $user->linkedin : null), isset($user->youtube_url) ? $user->youtube_url : (isset($user->youtube) ? $user->youtube : null), isset($user->instagram_url) ? $user->instagram_url : (isset($user->instagram) ? $user->instagram : null), ])); $affiliation = array_filter([ '@type' => 'Organization', 'name' => Settings('site_title') ?? 'Website', 'url' => url('/'), 'logo' => $orgLogoUrl ?: null, ], fn($v) => !is_null($v) && $v !== ''); $person = array_filter([ '@type' => 'Person', 'name' => $user->name ?? null, 'image' => $imageUrl ?: null, 'jobTitle' => isset($user->job_title) ? $user->job_title : (isset($user->headline) ? $user->headline : null), 'description' => isset($user->about) && $user->about ? strip_tags($user->about) : null, 'url' => route('instructorDetails', [$user->id, Str::slug($user->name ?? '', '-')]), 'affiliation' => !empty($affiliation) ? $affiliation : null, 'sameAs' => !empty($sameAs) ? $sameAs : null, ], fn($v) => !is_null($v) && $v !== '' && $v !== []); $personItems[] = $person; } if (!empty($personItems)) { SchemaCollector::addPersons($personItems); } @endphp