@foreach ($relatedArticles as $relatedArticle)
@php
$relatedImage = $relatedArticle->topImage ?? $relatedArticle->featuredImage;
$hasImage = $relatedImage && $relatedImage->file_url;
$relatedImageUrl = $hasImage ? $relatedImage->file_url : null;
$relatedUrl = url("/{$relatedArticle->slug}");
$relatedReadingTime = calculateReadingTime($relatedArticle->body);
$relatedAuthorName =
$relatedArticle->authorUser?->name ??
($relatedArticle->author_name ?? ($relatedArticle->author ?? 'Redação'));
$relatedAuthorAvatar =
$relatedArticle->authorUser?->avatar_url ??
'/assets/theme/v6/images/profile_1-120x120.jpeg';
$shareUrl = urlencode($relatedUrl);
$shareTitle = urlencode($relatedArticle->title);
$shareImage = urlencode($relatedImageUrl ?? '');
// Se não tem imagem, sempre mostrar 100 caracteres do corpo (body ou content_json)
if (!$hasImage) {
$bodyText = '';
// Tentar usar body primeiro
if ($relatedArticle->body) {
$bodyText = strip_tags($relatedArticle->body);
}
// Se body está vazio, tentar extrair de content_json
if (empty($bodyText) && $relatedArticle->content_json) {
$contentJson = is_string($relatedArticle->content_json)
? json_decode($relatedArticle->content_json, true)
: $relatedArticle->content_json;
if (is_array($contentJson)) {
$bodyText = extractTextFromJson($contentJson);
}
}
$descriptionText = $bodyText ? \Illuminate\Support\Str::limit($bodyText, 200) : '';
} else {
$descriptionText = $relatedArticle->headline ?? ($relatedArticle->excerpt ?? '');
$descriptionText = $descriptionText
? \Illuminate\Support\Str::limit($descriptionText, 200)
: '';
}
@endphp
@endforeach