EVOLUTION-MANAGER
Edit File: articuloController.php
<?php namespace App\Http\Controllers; use mPDF; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; use App\articuloModel; use App\tipoarticuloModel; use View; use Auth; use Session; use Redirect; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Input; use File; use App\archivoModel; class articuloController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function __construct() { $this->middleware('auth'); } public function index() { if(\Auth::user()->tipo_usuario->codigo=='NOTI'){ $articulos = articuloModel::join('tipo_articulo','tipo_articulo.id','=','articulo.tipo_articulo_id') ->where(function($query){ $query->where('tipo_articulo.tipo', 'NOTICIAS') ->orwhere('tipo_articulo.tipo', 'Noticias') ->orwhere('tipo_articulo.tipo', 'noticias') ->orwhere('tipo_articulo.tipo', 'NOTICIA') ->orwhere('tipo_articulo.tipo', 'Noticia') ->orwhere('tipo_articulo.tipo', 'noticia'); }) ->whereNull("articulo.deleted_at") ->get(['titulo','articulo.id','url_direccion','tipo_articulo.tipo','articulo.tipo_articulo_id','articulo.destacado']); }else{ $articulos = articuloModel::join('tipo_articulo','tipo_articulo.id','=','articulo.tipo_articulo_id') ->whereNull("articulo.deleted_at") ->get(['titulo','articulo.id','url_direccion','tipo_articulo.tipo','articulo.tipo_articulo_id','articulo.destacado']); } return View::make('admin.articulos.index', compact('articulos')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $tipos=tipoarticuloModel::where('id','<>',12)->pluck('tipo','id'); $lista_tipos=tipoarticuloModel::where('id','<>',12)->get(); return View::make('admin.articulos.crear',compact('tipos', 'lista_tipos')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { //dd($request->all()); $this->validate($request, [ 'titulo' => 'required', ] ); DB::beginTransaction(); try { $tiposave = new articuloModel(); $tiposave->titulo=$request->titulo; $tiposave->tipo_articulo_id=$request->tipo_articulo_id; $tiposave->detalle=$request->descripcion; $tiposave->url_direccion=$request->url_direccion; $tiposave->video=$request->video; $tiposave->orden=$request->orden; $tiposave->tipo=$request->tipo; $tiposave->destacado=$request->destacado; $tiposave->titulo_sub=$this->sanear_string($request->titulo); if (!$request->destacado) { $tiposave->destacado=1; } if ($request->tipo_articulo_id == 3) { $articulo_anterior = articuloModel::where('tipo_articulo_id',3)->where('destacado','>',$request->destacado)->get(); if ($articulo_anterior->first()) { foreach ($articulo_anterior as $key => $art) { $art->destacado = $art->destacado+1; $art->save(); } } } if ($request->tipo_articulo_id == 4) { $articulo_anterior = articuloModel::where('tipo_articulo_id',4)->where('orden','>',$request->orden)->get(); if ($articulo_anterior->first()) { foreach ($articulo_anterior as $key => $art) { $art->orden = $art->orden+1; $art->save(); } } } if ($request->tipo_articulo_id == 10) { $articulo_anterior = articuloModel::where('tipo_articulo_id',10)->where('orden','>',$request->orden)->get(); if ($articulo_anterior->first()) { foreach ($articulo_anterior as $key => $art) { $art->orden = $art->orden+1; $art->save(); } } } if ($request->tipo_articulo_id == 14) { // 'https://www.youtube.com/watch?v=eI254bZmFtQ&feature=youtu.be' $link = explode("watch?v=",$request->video); $parte1 = $link[1]; $parte2 = explode("&feature",$parte1); $codigo_youtube = $parte2[0]; $tiposave->video=$codigo_youtube; $tiposave->url_direccion=$request->video; } $tiposave->save(); //foto principal if (Input::hasFile('foto')) { $dir = public_path().'/fotos-articulos/'; $foto = $request->file('foto'); $fileName = $tiposave->id.$foto->getClientOriginalName(); $foto->move($dir, $fileName); $tiposave->foto=$fileName; $tiposave->save(); } //fotos adicionales if (Input::hasFile('fotos')) { $fotos=$request->fotos; foreach ($fotos as $fot) { $nueva_foto=new archivoModel(); $nueva_foto->tipo_archivo_id=1; $nueva_foto->articulo_id=$tiposave->id; $nueva_foto->titulo=$fot->getClientOriginalName(); $nueva_foto->save(); $dir = public_path().'/fotos-articulos/'; $fileNamefoto = $tiposave->id.'-'.$nueva_foto->id.'-'.$foto->getClientOriginalName(); $fot->move($dir, $fileNamefoto); $nueva_foto->path=$fileNamefoto; $nueva_foto->save(); } } //fotos adicionales if (Input::hasFile('archivos')) { $archivos=$request->archivos; foreach ($archivos as $arc) { $nuevo_archivo=new archivoModel(); $nuevo_archivo->tipo_archivo_id=2; $nuevo_archivo->articulo_id=$tiposave->id; $nuevo_archivo->titulo=$arc->getClientOriginalName(); $nuevo_archivo->save(); $dir = public_path().'/fotos-articulos/'; $fileNamearc = $tiposave->id.'-'.$nuevo_archivo->id.'-'.$arc->getClientOriginalName(); $arc->move($dir, $fileNamearc); $nuevo_archivo->path=$fileNamearc; $nuevo_archivo->save(); } } DB::commit(); Session::flash('message','Se ha ingresado un nuevo Articulo al Sistema'); } catch (Exception $e) { DB::rollBack(); Session::flash('message-error','Error al ingresar articulo'); } return Redirect::to('administracion/articulos'); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $tipos=tipoarticuloModel::where('id','<>',12)->pluck('tipo','id'); $articulo=articuloModel::find($id); $fotos_adicionales=archivoModel::where('tipo_archivo_id',1)->where('articulo_id',$id)->get(['titulo','path','id']); $archivos=archivoModel::where('tipo_archivo_id',2)->where('articulo_id',$id)->get(['titulo','path','id']); // $articulo->video = $articulo->url_direccion; // dd($articulo); return View::make('admin.articulos.editar', compact('articulo','tipos','id','fotos_adicionales','archivos')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $this->validate($request, [ 'titulo' => 'required', ] ); DB::beginTransaction(); try { $tiposave = articuloModel::find($id); $tiposave->titulo=$request->titulo; $tiposave->tipo_articulo_id=$request->tipo_articulo_id; $tiposave->detalle=$request->descripcion; $tiposave->url_direccion=$request->url_direccion; $tiposave->video=$request->video; $tiposave->orden=$request->orden; $tiposave->tipo=$request->tipo; $tiposave->destacado=$request->destacado; $tiposave->titulo_sub=$this->sanear_string($request->titulo); if (!$request->destacado) { $tiposave->destacado=1; } if ($request->tipo_articulo_id == 3) { $articulo_anterior = articuloModel::where('tipo_articulo_id',3)->where('destacado','>',$request->destacado)->get(); if ($articulo_anterior->first()) { foreach ($articulo_anterior as $key => $art) { if ($art->destacado > 6) { $art->destacado = $art->destacado-1; $art->save(); } } } } if ($request->tipo_articulo_id == 4) { $articulo_anterior = articuloModel::where('tipo_articulo_id',4)->where('orden','<',$request->orden)->get(); if ($articulo_anterior->first()) { foreach ($articulo_anterior as $key => $art) { $art->orden = $art->orden+1; $art->save(); } } } if ($request->tipo_articulo_id == 10) { $articulo_anterior = articuloModel::where('tipo_articulo_id',10)->where('orden','>',$request->orden)->get(); if ($articulo_anterior->first()) { foreach ($articulo_anterior as $key => $art) { $art->orden = $art->orden+1; $art->save(); } } } if ($request->tipo_articulo_id == 14) { // 'https://www.youtube.com/watch?v=eI254bZmFtQ&feature=youtu.be' $link = explode("watch?v=",$request->video); $parte1 = $link[1]; $parte2 = explode("&feature",$parte1); $codigo_youtube = $parte2[0]; $tiposave->video=$codigo_youtube; $tiposave->url_direccion=$request->video; } if ($request->tipo_articulo_id == 4) { } $tiposave->save(); //foto principal if (Input::hasFile('foto')) { $dir = public_path().'/fotos-articulos/'; $foto = $request->file('foto'); $fileName = $tiposave->id.$foto->getClientOriginalName(); $foto->move($dir, $fileName); $tiposave->foto=$fileName; $tiposave->save(); } //fotos adicionales if (Input::hasFile('fotos')) { $fotos=$request->fotos; foreach ($fotos as $fot) { $nueva_foto=new archivoModel(); $nueva_foto->tipo_archivo_id=1; $nueva_foto->articulo_id=$tiposave->id; $nueva_foto->titulo=$fot->getClientOriginalName(); $nueva_foto->save(); $dir = public_path().'/fotos-articulos/'; $fileNamefoto = $tiposave->id.'-'.$nueva_foto->id.'-'.$fot->getClientOriginalName(); $fot->move($dir, $fileNamefoto); $nueva_foto->path=$fileNamefoto; $nueva_foto->save(); } } //fotos adicionales if (Input::hasFile('archivos')) { $archivos=$request->archivos; foreach ($archivos as $arc) { $nuevo_archivo=new archivoModel(); $nuevo_archivo->tipo_archivo_id=2; $nuevo_archivo->articulo_id=$tiposave->id; $nuevo_archivo->titulo=$arc->getClientOriginalName(); $nuevo_archivo->save(); $dir = public_path().'/fotos-articulos/'; $fileNamearc = $tiposave->id.'-'.$nuevo_archivo->id.'-'.$arc->getClientOriginalName(); $arc->move($dir, $fileNamearc); $nuevo_archivo->path=$fileNamearc; $nuevo_archivo->save(); } } DB::commit(); Session::flash('message','Se ha editado el Articulo exitosamente'); } catch (Exception $e) { DB::rollBack(); Session::flash('message-error','Error al ingresar articulo'); } return Redirect::to('administracion/articulos'); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { try{ $articulo=articuloModel::find($id); // if($articulo->foto!=null) // { // File::delete(public_path().'/fotos-articulos/'.$articulo->foto); // } // $fotos_archivos=archivoModel::where('articulo_id',$id)->get(); // if(count($fotos_archivos)) // { // foreach ($fotos_archivos as $fot_arc) { // File::delete(public_path().'/fotos-articulos/'.$fot_arc->path); // $fot_arc->delete(); } // } // $articulo->delete(); $articulo->deleted_at = date("Y-m-d H:i:s"); $articulo->save(); Session::flash('message','Se ha eliminado correctamente el tipo de articulo'); } catch (\Illuminate\Database\QueryException $e) { Session::flash('message-error','Existen articulos con este tipo'); } return Redirect::to('administracion/articulos'); } public function borrarfotoprincipal(Request $request) { $consulta=articuloModel::find($request->key); File::delete(public_path().'/fotos-articulos/'.$consulta->foto); $consulta->foto=null; $consulta->save(); return 1; } public function borrarfotoadicional(Request $request) { $consulta=archivoModel::find($request->key); File::delete(public_path().'/fotos-articulos/'.$consulta->path); $consulta->delete(); return 1; } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ function sanear_string($s){ $s = mb_convert_encoding($s, 'UTF-8','UTF-8'); $s = preg_replace("/á|à|â|ã|ª/","a",$s); $s = preg_replace("/Á|À|Â|Ã/","A",$s); $s = preg_replace("/é|è|ê/","e",$s); $s = preg_replace("/É|È|Ê/","E",$s); $s = preg_replace("/í|ì|î/","i",$s); $s = preg_replace("/Í|Ì|Î/","I",$s); $s = preg_replace("/ó|ò|ô|õ|º/","o",$s); $s = preg_replace("/Ó|Ò|Ô|Õ/","O",$s); $s = preg_replace("/ú|ù|û/","u",$s); $s = preg_replace("/Ú|Ù|Û/","U",$s); $s = str_replace(" ","_",$s); $s = str_replace("ñ","n",$s); $s = str_replace("Ñ","N",$s); $s = preg_replace('/[^a-zA-Z0-9_.-]/', '', $s); return $s; } }