@extends('theme::layout.layout') @section('title', ''.env('APP_NAME').' | Home') @section('content')
@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 = $mainPage->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 !!}
@endsection