<?php namespace Onestartup\Landings\Controller; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; use Onestartup\Landings\Model\Landing; use Onestartup\Landings\Requests\RequestCreateLanding; use Onestartup\Landings\Requests\RequestEditLanding; class AdminLandingsController extends Controller{ public function index(){ $landings = Landing::paginate(30); return view("landings::landings.index")->with("landings", $landings); } public function create(){ $formats = $this->formats(); return view("landings::landings.create")->with("formats", $formats); } public function edit($id){ $formats = $this->formats(); $landing = Landing::findOrFail($id); return view("landings::landings.edit")->with("landing", $landing)->with("formats", $formats); } public function store(RequestCreateLanding $request){ $landing = new Landing($request->all()); $landing->save(); if (isset($request->portada)) { $file = $request->file('portada'); $nombre = $file->getClientOriginalName(); $nombre_file = str_replace(' ', '_', $nombre); $ubicacion_donde_guarda ='landings/banners/'.$landing->id.'/'.$nombre_file; \Storage::disk('local')->put($ubicacion_donde_guarda, \File::get($file)); $landing->image_path = $ubicacion_donde_guarda; $landing->save(); } return redirect()->route("landings.admin.landings.index")->with('message_success', "Landing guardada correctamente."); } public function update(RequestEditLanding $request, $id){ $landing = Landing::findOrFail($id); $landing->fill($request->all()); $landing->save(); if (isset($request->portada)) { $file = $request->file('portada'); $nombre = $file->getClientOriginalName(); $nombre_file = str_replace(' ', '_', $nombre); $ubicacion_donde_guarda ='landings/banners/'.$landing->id.'/'.$nombre_file; \Storage::disk('local')->put($ubicacion_donde_guarda, \File::get($file)); $landing->image_path = $ubicacion_donde_guarda; $landing->save(); } return redirect()->route("landings.admin.landings.index")->with('message_success', "Landing guardada correctamente."); } public function destroy($id){ $landing = Landing::findOrFail($id); $landing->delete(); return redirect() ->back() ->with('message_danger', 'Landing eliminada correctamente.'); } public function deleteBanner($id){ $landing = Landing::findOrFail($id); $landing->image_path = null; $landing->save(); return redirect() ->back() ->with('message_success', 'Imagen eliminada correctamente'); } private function formats(){ $formats = []; if (is_dir(base_path() . '/resources/views/vendor/onestartup/landings/landing/layouts')) { $files = \File::allFiles(resource_path('views/vendor/onestartup/landings/landing/layouts/')); }else{ $files = \File::allFiles(__DIR__.'/../views/public/layouts'); } foreach($files as $file){ $name = str_replace(".blade.php", "", basename((string)$file)); $formats[$name] = $name; } return $formats; } }