@php $_cwHoje = \Carbon\Carbon::today(); $_cwSliderId = 'cws' . uniqid(); $_cwM = $_cwHoje->month; $_cwD = $_cwHoje->day; if (($_cwM == 12 && $_cwD >= 21) || $_cwM <= 2 || ($_cwM == 3 && $_cwD <= 20)) { $_cwEstacao = ['nome' => __('radio.calendar_season_summer'), 'emoji' => '☀️', 'cor' => '#f59e0b', 'bg' => '#fef9ee']; } elseif (($_cwM == 3 && $_cwD >= 21) || ($_cwM >= 4 && $_cwM <= 5) || ($_cwM == 6 && $_cwD <= 20)) { $_cwEstacao = ['nome' => __('radio.calendar_season_autumn'), 'emoji' => '🍂', 'cor' => '#ea580c', 'bg' => '#fff4ef']; } elseif (($_cwM == 6 && $_cwD >= 21) || ($_cwM >= 7 && $_cwM <= 8) || ($_cwM == 9 && $_cwD <= 22)) { $_cwEstacao = ['nome' => __('radio.calendar_season_winter'), 'emoji' => '❄️', 'cor' => '#0ea5e9', 'bg' => '#f0f9ff']; } else { $_cwEstacao = ['nome' => __('radio.calendar_season_spring'), 'emoji' => '🌸', 'cor' => '#ec4899', 'bg' => '#fef0f8']; } $_cwEmoji = function (string $nome): string { $n = mb_strtolower($nome, 'UTF-8'); $mapa = [ '🏥' => ['câncer','cancer','saúde','vacinação','dengue','fumo','obesidade','bucal','dst','hepatite','autismo','alzheimer','mamografia','imunodeficiência'], '💜' => ['mulher','mãe','mães','violência','agosto lilás','feminicídio'], '🎈' => ['criança','crianças','adoção'], '❤️' => ['namorados'], '🩸' => ['sangue','órgãos','orgaos','doação de sangue','doador de sangue'], '🌊' => ['água','oceanos','rio'], '🌿' => ['floresta','ecolog','amazônia','meio ambiente'], '🇧🇷' => ['independência','república','tiradentes','soldado','símbolos','constituição','proclamação','fico'], '🎃' => ['halloween','bruxas','finados'], '🎭' => ['carnaval'], '📚' => ['professor','escola','educação','alfabetização','escritor','comunicação','imprensa','jornalista'], '👨👧' => ['pai','família','familia'], '✊' => ['negro','consciência negra','direitos humanos','holocausto','indígena','intolerância','lgbt'], '☕' => ['café'], '🎵' => ['música','musica','rock','rádio','radio','radialista','músico'], '🌱' => ['agricultor','agricultur'], '🗳️' => ['voto','eleição','eleições'], ]; foreach ($mapa as $emoji => $palavras) { foreach ($palavras as $p) { if (str_contains($n, $p)) return $emoji; } } return '📅'; }; $_cwAnimClass = function (string $nome): string { $n = mb_strtolower($nome, 'UTF-8'); $mapa = [ 'cw-anim-pulse' => ['câncer','cancer','saúde','vacinação','dengue','fumo','obesidade','bucal','dst','hepatite','autismo','alzheimer','mamografia','imunodeficiência'], 'cw-anim-float' => ['mulher','mãe','mães','violência','agosto lilás','feminicídio'], 'cw-anim-bounce' => ['criança','crianças','adoção'], 'cw-anim-heart' => ['namorados'], 'cw-anim-bleed' => ['sangue','órgãos','orgaos','doação de sangue','doador de sangue'], 'cw-anim-wave' => ['água','oceanos','rio'], 'cw-anim-sway' => ['floresta','ecolog','amazônia','meio ambiente','pai','família','familia','agricultor','agricultur'], 'cw-anim-flag' => ['independência','república','tiradentes','soldado','símbolos','constituição','proclamação','fico'], 'cw-anim-wobble' => ['halloween','bruxas','finados'], 'cw-anim-spin' => ['carnaval'], 'cw-anim-flip' => ['professor','escola','educação','alfabetização','escritor','comunicação','imprensa','jornalista'], 'cw-anim-rise' => ['negro','consciência negra','direitos humanos','holocausto','indígena','intolerância','lgbt'], 'cw-anim-steam' => ['café'], 'cw-anim-note' => ['música','musica','rock','rádio','radio','radialista','músico'], 'cw-anim-swing' => ['voto','eleição','eleições'], ]; foreach ($mapa as $cls => $palavras) { foreach ($palavras as $p) { if (str_contains($n, $p)) return $cls; } } return 'cw-anim-soft'; }; $_cwTheme = function (string $nome): string { $n = mb_strtolower($nome, 'UTF-8'); $mapa = [ 'namorados' => ['namorados'], 'saude' => ['câncer','cancer','saúde','vacinação','dengue','fumo','obesidade','bucal','dst','hepatite','autismo','alzheimer','mamografia','imunodeficiência'], 'mulher' => ['mulher','mãe','mães','violência','agosto lilás','feminicídio'], 'crianca' => ['criança','crianças','adoção'], 'sangue' => ['sangue','órgãos','orgaos','doação de sangue','doador de sangue'], 'agua' => ['água','oceanos','rio'], 'natureza' => ['floresta','ecolog','amazônia','meio ambiente','agricultor','agricultur'], 'brasil' => ['independência','república','tiradentes','soldado','símbolos','constituição','proclamação','fico'], 'halloween' => ['halloween','bruxas','finados'], 'carnaval' => ['carnaval'], 'educacao' => ['professor','escola','educação','alfabetização','escritor','comunicação','imprensa','jornalista'], 'diversidade' => ['negro','consciência negra','direitos humanos','holocausto','indígena','intolerância','lgbt'], 'cafe' => ['café'], 'musica' => ['música','musica','rock','rádio','radio','radialista','músico'], 'pai' => ['pai','família','familia'], 'voto' => ['voto','eleição','eleições'], ]; foreach ($mapa as $theme => $palavras) { foreach ($palavras as $p) { if (str_contains($n, $p)) return $theme; } } return 'default'; }; $_cwEstacaoPalavras = ['outono', 'inverno', 'primavera', 'verão', 'verao', 'dicas de inverno', 'tema de outono']; $_cwAtivas = []; $_cwProximas = []; $_cwDebugRaw = []; $_cwDebugParsed = []; $_cwDebugSkip = []; $_cwRawRows = \DB::table('library_add') ->where('type', '2') ->whereNotNull('campaign_start_date') ->whereNotNull('campaign_end_date') ->get(); foreach ($_cwRawRows as $row) { $_cwDebugRaw[] = [ 'id' => $row->id, 'nome' => $row->name, 'ini' => $row->campaign_start_date, 'fim' => $row->campaign_end_date, ]; try { $_cwIni = \Illuminate\Support\Carbon::parse($row->campaign_start_date)->startOfDay(); $_cwFim = \Illuminate\Support\Carbon::parse($row->campaign_end_date)->endOfDay(); } catch (\Exception $e) { $_cwDebugSkip[] = ['nome' => $row->name, 'motivo' => 'exception: ' . $e->getMessage(), 'raw_ini' => $row->campaign_start_date]; continue; } $_cwEhEstacao = false; foreach ($_cwEstacaoPalavras as $_kw) { if (str_contains(mb_strtolower($row->name, 'UTF-8'), $_kw)) { $_cwEhEstacao = true; break; } } if ($_cwEhEstacao) { $_cwDebugSkip[] = ['nome' => $row->name, 'motivo' => 'é estação']; continue; } $_cwItem = ['nome' => $row->name, 'ini' => $_cwIni, 'fim' => $_cwFim]; if ($_cwHoje->between($_cwIni, $_cwFim)) { $_cwItem['restam'] = max(0, (int) $_cwHoje->diffInDays($_cwFim, true)); $_cwAtivas[] = $_cwItem; $_cwDebugParsed[] = ['nome' => $row->name, 'ini_parsed' => $_cwIni->toDateString(), 'fim_parsed' => $_cwFim->toDateString(), 'status' => 'ATIVA', 'restam' => $_cwItem['restam']]; } elseif ($_cwHoje->lt($_cwIni)) { $_cwItem['faltam'] = (int) $_cwHoje->diffInDays($_cwIni, true); $_cwProximas[] = $_cwItem; $_cwDebugParsed[] = ['nome' => $row->name, 'ini_parsed' => $_cwIni->toDateString(), 'fim_parsed' => $_cwFim->toDateString(), 'status' => 'PROXIMA', 'faltam' => $_cwItem['faltam']]; } else { $_cwDebugParsed[] = ['nome' => $row->name, 'ini_parsed' => $_cwIni->toDateString(), 'fim_parsed' => $_cwFim->toDateString(), 'status' => 'PASSADA']; } } usort($_cwProximas, fn ($a, $b) => $a['ini']->lt($b['ini']) ? -1 : 1); $_cwSlides = []; if (!empty($_cwAtivas)) { foreach ($_cwAtivas as $_a) { $_cwSlides[] = $_a + ['tipo' => 'ativa']; } } elseif (!empty($_cwProximas)) { $_cwPrimeiraData = $_cwProximas[0]['ini']->toDateString(); foreach ($_cwProximas as $_p) { if ($_p['ini']->toDateString() === $_cwPrimeiraData) { $_cwSlides[] = $_p + ['tipo' => 'proxima']; } else { break; } } } $_cwLista = []; if (!empty($_cwAtivas)) { $_cwLista = array_slice($_cwProximas, 0, 3); } elseif (!empty($_cwProximas)) { $_cwPrimeiraData = $_cwProximas[0]['ini']->toDateString(); $_cwRestoProximas = array_values(array_filter( $_cwProximas, fn ($_p) => $_p['ini']->toDateString() !== $_cwPrimeiraData )); $_cwLista = array_slice($_cwRestoProximas, 0, 3); } @endphp @once @endonce @once @endonce