returned everything to its original state:
<?php
namespace App\Http\Livewire;
use App\Models\Node;
use App\Models\Page;
use App\Models\Template;
use App\Models\Logdata;
use Carbon\Carbon;
use Livewire\Component;
use Request;
class Frontpage extends Component
{
public $title = 'Test';
public $content = 'Test';
public $template_name = 'default';
public $debug_text;
public $nothing = false;
public $external_URL = '';
public function mount($urlslug = null)
{
$this->nothing = false;
$this->retrieveContent($urlslug);
}
private function getNode($slug,$parent_node_id)
{
$node = Node::select('id')->
where('node_slug', $slug)->
where('parent_id', $parent_node_id)->
where('is_active', true)->
first();
if($node) return $node->id;
else return null;
}
private function getDefaultNode()
{
$default_node= Node::select('id','node_slug')->where('view_main', true)->first();
if($default_node) return $default_node;
else return null;
}
private function getPage($slug,$parent_node_id)
{
$page = Page::select('id')->
where('page_slug',$slug)->
where('node_id', $parent_node_id)->
where('is_active', true)->
first();
if($page) return $page->id;
else return null;
}
private function getError($node_id, $page_id)
{
$this->nothing = true;
}
public function retrieveContent($urlslug)
{
$default_node = $this->getDefaultNode();
if($urlslug == '')
{
if($default_node) $urlslug = $default_node->node_slug;
}
$slugs = explode("/", $urlslug);
$node_id = 0;
$page_id = 0;
$error = false;
foreach ($slugs as $slug)
{
$find_node_id = $this->getNode($slug,$node_id);
if($find_node_id)
{
$node_id = $find_node_id;
continue;
}
else
{
if($node_id == 0 && $default_node) $node_id = $default_node->id;
$page_id = $this->getPage($slug,$node_id);
if(!$page_id) $error = true;
break;
}
}
if(!$error)
{
$node = Node::find($node_id);
$this->template_name = $node->template->template_title;
if($page_id) $page = Page::find($page_id);
else $page = Page::where('node_id', $node_id)->
where('is_default',true)->
where('is_active', true)->
first();
if(!$page) goto Fault;
$this->title = $page->page_title;
$this->content = $page->page_text;
$this->debug_text = " node_id=" . $node_id . " page_id=" . $page_id;
$this->external_URL = $page->page_external;
}
else
{
Fault: $this->getError($node_id,$page_id);
}
}
public function render()
{
if($this->nothing)
{
return abort(404);
}
else
{
if(auth()->user())
{
$request = Request();
$payload = $request->all();
Logdata::insert(
[
'user_id' => auth()->user()->id,
'ip' => $request->getClientIp(),
'ip_x_real' => $request->server('HTTP_X_REAL_IP'),
'method' => $request->method(),
'code' => app('Illuminate\Http\Response')->status(),
'url' => $request->url(),
'payload' => json_encode($payload),
'referer' => $request->server('HTTP_REFERER'),
'_server' => json_encode($_SERVER),
'created_at' => Carbon::now(),
]
);
}
$nodes = Node::where('parent_id',0)->
where("is_active", true)->
where("view_menu", true)->
with('childrenNodes')->
get();
// if external URL exists - redirect
if ($this->external_URL <> '') return redirect($this->external_URL);
// show page
return view('livewire.templates.'.$this->template_name, compact('nodes'))->layout('layouts.guest');
}
}
}
If external_URL <> ‘’ then Exception
"render" method on [App\Http\Livewire\Frontpage] must return instance of [Illuminate\View\View]