forked from projects/thebadspace
7feb76517a
Implemented Oliphant's unified tier 3 blocklist and the supplementary instance audit file that tracks how many times an instance has been blocked by a trusted sources member. Keeping the update function manual for now to make sure it works smooth, then well automate so it checks on it's on at regular intervals. NOTE: Lists used are located at the following urls: https://codeberg.org/oliphant/blocklists/src/branch/main/blocklists/_unified_tier3_blocklist.csv https://codeberg.org/oliphant/blocklists/src/branch/main/blocklists/other/domain_audit_file.csv Also simplified the main nav to just include a link to the den index when logged in
101 lines
2.9 KiB
PHP
101 lines
2.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
use App\Models\Location;
|
|
|
|
class FrontIndexController extends Controller
|
|
{
|
|
private $limit = 15;
|
|
|
|
public function start()
|
|
{
|
|
$locations = Location::where("active", true)->get();
|
|
$count = count($locations);
|
|
$recent = Location::where("active", true)
|
|
->limit(5)->orderByDesc('updated_at')->get();
|
|
|
|
//$result = DB::select("SELECT * FROM searchlocations('$terms')");
|
|
|
|
return view('front.index', [
|
|
'count' => $count,
|
|
'recent' => $recent,
|
|
'title' => "The Bad Space"
|
|
]);
|
|
}
|
|
|
|
public function indexSearch(Request $request)
|
|
{
|
|
$terms = $request->index_search;
|
|
$rawSearch = $terms;
|
|
$terms = str_replace(",", "", $terms);
|
|
$terms = str_replace(" ", "|", $terms);
|
|
$results = DB::select("SELECT * FROM searchlocations('$terms')");
|
|
|
|
$locations = Location::where("active", true)->get();
|
|
$count = count($locations);
|
|
$recent = Location::where("active", true)
|
|
->limit(5)->orderByDesc('updated_at')->get();
|
|
|
|
return view('front.index', [
|
|
'count' => $count,
|
|
'recent' => $recent,
|
|
'title' => "The Bad Space",
|
|
'results' => $results
|
|
]);
|
|
}
|
|
|
|
public function about()
|
|
{
|
|
return view('front.about', [
|
|
'title' => "ABOUT"
|
|
]);
|
|
}
|
|
|
|
public function location(string $uuid = "1")
|
|
{
|
|
$location = Location::where("uuid", $uuid)->first();
|
|
$name = "NO LOCATION FOUND";
|
|
if ($location) {
|
|
$name = $location->name;
|
|
}
|
|
return view('front.location', [
|
|
'title' => str_replace(".", " ", $name),
|
|
'location' => $location,
|
|
'images' => json_decode($location->images),
|
|
'updated' => $location->updated_at->format('Y M d'),
|
|
]);
|
|
}
|
|
|
|
public function listings(int $pageNum = 1)
|
|
{
|
|
$range = $pageNum * $this->limit - $this->limit;
|
|
$active = Location::where("active", true)->where('block_count', '>', 2)->get();
|
|
$locations = Location::where("active", true)->where('block_count', '>', 2)
|
|
->limit($this->limit)->offset($range)->orderByDesc('id')->get();
|
|
$pageCount = ceil(count($active) / $this->limit);
|
|
|
|
$next = $pageNum + 1;
|
|
if ($next > $pageCount) {
|
|
$next = 1;
|
|
}
|
|
|
|
$prev = $pageNum - 1;
|
|
|
|
if ($prev <= 0) {
|
|
$prev = $pageCount;
|
|
}
|
|
|
|
return view('front.listing', [
|
|
'title' => "Listings",
|
|
"totalPages" => $pageCount,
|
|
"prev" => $prev,
|
|
"next" => $next,
|
|
'pageNum' => $pageNum,
|
|
'locations' => $locations
|
|
]);
|
|
}
|
|
}
|