@extends('layouts.app') @section('title', $title ?? 'Blog de Transporte de Cargas | CoteFrete') @section('meta') @php $ogTitle = $title ?? 'Blog de Transporte de Cargas | CoteFrete'; $ogDescription = $meta ?? 'Artigos originais sobre transporte de cargas, logística e frete. Torne o Blog CoteFrete sua fonte de referência para conteúdos no setor de transportes'; $ogUrl = $url_canonical ?? request()->url(); @endphp @include('partials.meta-social', [ 'ogType' => 'website', 'ogTitle' => $ogTitle, 'ogDescription' => $ogDescription, 'ogUrl' => $ogUrl ]) @if(isset($posts) && count($posts) > 0) @include('partials.include-sitemap') @else @include('partials.retirar-sitemap') @endif @endsection @push('styles') @endpush @section('content')
Cadastre seu email para receber conteúdos e informações exclusivas sobre transportes e fretes!
Inscrever-se na newsletter de transporte e logística
@if(isset($posts) && count($posts) > 0) @if(isset($categoriaObj) && $categoriaObj)

Tudo sobre {{ $categoriaObj->nome }}: Posts e Notícias

@elseif(isset($nome_categoria) && !empty($nome_categoria))

Tudo sobre {{ $nome_categoria }}: Posts e Notícias

@else

Blog de Transporte de Cargas e Logística | CoteFrete

@endif @foreach ($posts as $row) @php $id_post = $row->id; $titulo = $row->titulo; $created_at = $row->created_at; $url = $row->url; // Resumo seguro para card: remove links/HTML, decodifica entidades, normaliza e trunca $resumo_raw = (string)($row->resumo ?? ''); // Remove âncoras mantendo apenas o texto interno $resumo_no_links = preg_replace('/]*>(.*?)<\/a>/is', '$1', $resumo_raw); // Remove quaisquer outras tags $resumo_text = trim(strip_tags($resumo_no_links)); // Decodifica entidades HTML (ex.: é → é) $resumo_text = html_entity_decode($resumo_text, ENT_QUOTES | ENT_HTML5, 'UTF-8'); // Normaliza espaços $resumo_text = preg_replace('/\s+/u', ' ', $resumo_text); // Trunca com segurança if (function_exists('mb_strlen') && function_exists('mb_substr')) { if (mb_strlen($resumo_text, 'UTF-8') > 250) { $resumo_text = mb_substr($resumo_text, 0, 250, 'UTF-8') . '...'; } } else { if (strlen($resumo_text) > 250) { $resumo_text = substr($resumo_text, 0, 250) . '...'; } } // Escapa para HTML seguro na listagem $resumo = htmlspecialchars($resumo_text, ENT_QUOTES, 'UTF-8'); $categoria = array_map('intval', explode(",", $row->categoria)); $nomes_cats = array(); // Preparar categorias para exibição segura $categorias_formatadas = []; foreach ($categoria as $cat_atual) { $cat_info = $categorias_blog->firstWhere('id', $cat_atual); if($cat_info) { $nome_ext = $cat_info->nome; $nome_href_cat = strtolower(str_replace(" ", "-", $cat_info->nome)); $nome_sem_acento_cat = str_replace(array("ã","á","à","â","ä","ã","é","è","ê","ë","í","ì","î","ï","ó","ò","ô","ö","õ","ú","ù","û","ü","ç","´",":"), array("a","a","a","a","a","a","e","e","e","e","i","i","i","i","o","o","o","o","o","u","u","u","u","c","", ""), $nome_href_cat); $categorias_formatadas[] = [ 'nome' => $nome_ext, 'slug' => $nome_sem_acento_cat ]; } } $img = $row->img; $count = $comentarios_count[$id_post] ?? 0; if($count == 0){ $txt_comentario = "Seja o primeiro a comentar!"; }else{ if($count == 1){ $comentario = " comentario"; }else if($count < 10){ $num_count= "0".$count; $comentario = " comentarios"; }else{ $num_count = $count; $comentario = " comentarios"; } $txt_comentario = $count.$comentario; } $date = new DateTime($created_at); $dia = $date->format('d'); $mes = $date->format('F'); $ano = $date->format('Y'); $meses = [ 'January' => 'Janeiro', 'February' => 'Fevereiro', 'March' => 'Março', 'April' => 'Abril', 'May' => 'Maio', 'June' => 'Junho', 'July' => 'Julho', 'August' => 'Agosto', 'September' => 'Setembro', 'October' => 'Outubro', 'November' => 'Novembro', 'December' => 'Dezembro' ]; $mes_portugues = $meses[$mes] ?? $mes; $data_formatada = ucfirst("$dia de $mes_portugues de $ano"); @endphp
Imagem do Post {{ $titulo }} {{ $titulo }}
{{ $resumo }}
Categorias do Post @if(isset($categorias_formatadas) && count($categorias_formatadas) > 0) @foreach($categorias_formatadas as $index => $cat) {{ $cat['nome'] }}@if($index < count($categorias_formatadas) - 1) / @endif @endforeach @endif
Data do Post: {{ $data_formatada }} {{ $data_formatada }}
Comentários do Post {{ $txt_comentario }}
@endforeach @endif
    @if(isset($num_paginas) && $num_paginas > 0) @php $url_base = request()->url(); $last_hyphen_position = strrpos($url_base, "-"); if ($last_hyphen_position !== false) { $item_0 = substr($url_base, 0, $last_hyphen_position); } $penultima = $num_paginas - 1; $antipenultima = $num_paginas - 2; $metade_paginas = ceil($num_paginas/2); $tres_ultimos = $num_paginas - 3; $pagina_anterior = ($esta_pagina ?? 1) - 1; $pagina_seguinte = ($esta_pagina ?? 1) + 1; $primeiro_dots = ceil(($esta_pagina ?? 1)/2); $segundo_dots = ceil(($num_paginas - ($esta_pagina ?? 1))/2) + ($esta_pagina ?? 1); @endphp @if($num_paginas <= 6) @for ($i = 1; $i <= $num_paginas; $i++)
  • {{ $i }}
  • @endfor @elseif (($esta_pagina ?? 1) >= 4 && ($esta_pagina ?? 1) < $antipenultima)
  • 1
  • ...
  • {{ $pagina_anterior }}
  • {{ $esta_pagina ?? 1 }}
  • {{ $pagina_seguinte }}
  • ...
  • {{ $num_paginas }}
  • @elseif (($esta_pagina ?? 1) >= $antipenultima)
  • 1
  • ...
  • {{ $tres_ultimos }}
  • {{ $antipenultima }}
  • {{ $penultima }}
  • {{ $num_paginas }}
  • @else
  • 1
  • 2
  • 3
  • 4
  • ...
  • {{ $num_paginas }}
  • @endif @endif
@endsection @push('scripts') @include('partials.schema-breadcrumb', [ 'items' => [ ['name' => 'Home', 'url' => url('/')], ['name' => 'Blog', 'url' => (isset($categoriaObj) || isset($nome_categoria)) ? url('/blog/pagina-1') : ($url_canonical ?? request()->url())] ] ]) @endpush