@php
// Função para obter o conteúdo do widget
function getWidgetContent($widget_id) {
// Aqui você pode usar o Eloquent para buscar o widget pelo ID
$widget = App\Models\Widget::find($widget_id);
if ($widget) {
// Substituir quebras de linha e retornos de carro por um espaço
return preg_replace("/\r\n|\r|\n/", ' ', trim($widget->content));
}
return null;
}
// Função para renderizar widgets no conteúdo
function renderWidgets($content) {
// Expressão regular para encontrar todos os widgets
preg_match_all('/\[widget=(\d+)\]/', $content, $matches);
foreach ($matches[1] as $widget_id) {
$widget_content = getWidgetContent($widget_id);
if ($widget_content) {
// Substituir o placeholder do widget pelo conteúdo real
$content = str_replace("[widget={$widget_id}]", $widget_content, $content);
}
}
// Substituir quebras de linha e múltiplos espaços por um único espaço
$content = preg_replace("/\r\n|\r|\n/", ' ', $content);
$content = preg_replace('/\s+/', ' ', $content);
return trim($content); // Remover espaços no início e no final
}
// Simulando o conteúdo da página (você deve passar isso da sua lógica do controlador)
$content = $page->content; // Exemplo de conteúdo
$content = renderWidgets($content);
@endphp
@php
// Adicionar conteúdo diretamente no Blade com limpeza adicional
$cleaned_html = str_replace('\n', '', $content);
@endphp
{!! $cleaned_html !!}