X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=app%2FHttp%2FControllers%2FTechniqueController.php;h=b88b5a3c21645a94f2370b4ff2b76ab324f96d2a;hb=147c5f43c5d41fa18e82edb6651fe5a37c789353;hp=59559a94a1883edb46c50c7f71e33cd33f87b072;hpb=7c6716036321ba09846785720e81459aad55a323;p=alttp.git diff --git a/app/Http/Controllers/TechniqueController.php b/app/Http/Controllers/TechniqueController.php index 59559a9..b88b5a3 100644 --- a/app/Http/Controllers/TechniqueController.php +++ b/app/Http/Controllers/TechniqueController.php @@ -6,6 +6,7 @@ use App\Models\Technique; use App\Models\TechniqueMap; use App\Models\TechniqueTranslation; use Illuminate\Database\Eloquent\Builder; +use Illuminate\Database\Eloquent\ModelNotFoundException; use Illuminate\Http\Request; class TechniqueController extends Controller @@ -68,6 +69,33 @@ class TechniqueController extends Controller return $result->toJson(); } + public function web(Request $request, $type, $name) { + $tech = Technique::where('type', '=', $type)->where('name', '=', $name)->first(); + if ($tech) { + $view = view('app') + ->with('title', $tech->getTranslatedProperty('title')) + ->with('description', $tech->getTranslatedProperty('short')); + if ($tech->image) { + $view = $view->with('image', url($tech->image)); + } else if ($tech->gif) { + $view = $view->with('image', url($tech->gif)); + } + return $view; + } + $url_map = [ + 'dungeon' => 'dungeons', + 'location' => 'locations', + 'mode' => 'modes', + 'ruleset' => 'rulesets', + 'tech' => 'tech', + ]; + $tech = Technique::where('name', '=', $name)->whereIn('type', array_keys($url_map))->first(); + if ($tech && isset($url_map[$tech->type])) { + return redirect('/'.$url_map[$tech->type].'/'.$tech->name); + } + throw new ModelNotFoundException(); + } + private function applyLocalizedValues($validatedData, $content) { foreach (['attribution', 'description', 'short', 'title'] as $name) { if (isset($validatedData[$name])) {