HEX
Server: Apache/2.4.61 (Ubuntu)
System: Linux hosting106 7.0.12-1-pve #1 SMP PREEMPT_DYNAMIC PMX 7.0.12-1 (2026-06-09T21:07Z) x86_64
User: clinicadentalargarate.com (1193)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //home/cursos.ril.es/app/Http/Controllers/AdminCursosController.php
<?php

namespace App\Http\Controllers;

use App\Categorias;
use App\Profesores;
use App\UsersCursos;
use Illuminate\Http\Request;
use App\Cursos;
use App\Http\Requests;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator;

class AdminCursosController extends Controller
{

    function devolver(){
        $categorias = Categorias::all();
        $profesores = Profesores::all();
        return view('admin.cursos')->with('curso', false)->with('categorias', $categorias)->with('profesores', $profesores)->with('fallo', 'no');
    }

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return $this->devolver();
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return $this->devolver();
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {

        $rules = array(
            'duracion'    => 'required',
            'resumen'     => 'required',
            'lugar'       => 'required',
            'precios'     => 'required',
            'slug'        => 'required|unique:cursos',
            'numMax'      => 'required|integer|between:6,15',
            'numMin'      => 'required|integer|between:4,6',
            'fechaInicio' => 'required|date'
        );

        $messages = [
            'required' => 'El campo :attribute es requerido.',
            'integer' => 'El campo :attribute tiene que ser numero entero.',
            'numMax.between' => 'El campo :attribute tiene que ser un valor entre el 6 y el 15.',
            'numMin.between' => 'El campo :attribute tiene que ser un valor entre el 4 y el 6.',
            'date' => 'El campo :attribute tiene que ser fecha con formato: YYYY/MM/DD.',
            'unique' => 'El campo :attribute tiene que ser Ășnico.',
        ];

        $validator = Validator::make($request->all(), $rules, $messages);

        if ($validator->fails()) {

            Input::flash();
            $categorias = Categorias::all();
            $profesores = Profesores::all();
            return view('admin.cursos')->with('curso', false)->with('categorias', $categorias)->with('profesores', $profesores)->withInput(Input::all())->withErrors($validator)->with('fallo', 'si');

        } else {

            $partialPath = $this->generateImagePath($request);

            Cursos::create($request->all());

            $curso = Cursos::all()->last();
            $curso->imagen = $partialPath;
            $curso->save();

            return redirect('/admin/cursos');

        }
    }

    public function generateImagePath($request) {

        $partialPath = '/img/cursos/default.png';

        if ($request->hasFile('foto') && $request->file('foto')->isValid()) {
            $frendlyPathName = str_slug($request->input('slug')) . '.' . $request->file('foto')->getClientOriginalExtension();
            $partialPath = '/img/cursos/' . $frendlyPathName;


            $path = public_path() . '/img/cursos/';
            $request->file('foto')->move($path, $frendlyPathName);
        }

        return $partialPath;
    }

    /**
     * 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)
    {
        $curso = Cursos::find($id);
        $categorias = Categorias::all();
        $profesores = Profesores::all();
        return view('admin.cursos')->with('curso', $curso)->with('categorias', $categorias)->with('profesores', $profesores)->with('fallo', 'no');
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $rules = array(
            'resumen'     => 'required',
            'lugar'       => 'required',
            'precios'     => 'required',
            'slug'        => 'required',
            'numMax'      => 'required|integer',
            'numMin'      => 'required|integer',
            'fechaInicio' => 'required|date'
        );

        $messages = [
            'required' => 'El campo :attribute es requerido.',
            'integer' => 'El campo :attribute tiene que ser numero entero.',
            'numMax.between' => 'El campo :attribute tiene que ser un valor entre el 6 y el 15.',
            'numMin.between' => 'El campo :attribute tiene que ser un valor entre el 4 y el 6.',
            'date' => 'El campo :attribute tiene que tener la fecha y la hora.',
        ];

        $validator = Validator::make(Input::all(), $rules, $messages);

        if ($validator->fails()) {
            $categorias = Categorias::all();
            $profesores = Profesores::all();
            $cur = Cursos::find($id);
            Input::flash();
            return view('admin.cursos')->with('curso', $cur)->with('categorias', $categorias)->with('profesores', $profesores)->withInput(Input::all())->withErrors($validator)->with('fallo', 'sisi');
        } else {

            $curso = Cursos::find($id);
            $curso->idCategoria = Input::get('idCategoria');
            $curso->idProfesor  = Input::get('idProfesor');
            $curso->numMax      = Input::get('numMax');
            $curso->numMin      = Input::get('numMin');
            $curso->fechaInicio = Input::get('fechaInicio');
            $curso->duracion    = Input::get('duracion');
            $curso->resumen     = Input::get('resumen');
            $curso->descripcion = Input::get('descripcion');
            $curso->lugar       = Input::get('lugar');
            $curso->horario     = Input::get('horario');
            $curso->precios     = Input::get('precios');
            $curso->slug        = Input::get('slug');
            $curso->contenidoHtml = Input::get('contenidoHtml');
            $curso->fechaInfo = Input::get('fechaInfo');
            $curso->faq = Input::get('faq');
            $curso->programa = Input::get('programa');
            $curso->informacion = Input::get('informacion');
            $curso->mailAntes = Input::get('mailAntes');
            $curso->mailDespues = Input::get('mailDespues');
            $curso->fechaFin = Input::get('fechaFin');
            $curso->metas = Input::get('metas');
            $curso->encabezado = Input::get('encabezado');
            $curso->mensaje = Input::get('mensaje');
            $curso->mensaje_regalo = Input::get('mensaje_regalo');
            $curso->precios_texto = Input::get('precios_texto');
            $curso->plazas = Input::get('plazas');
            $curso->title_seo = Input::get('title_seo');
            $curso->fecha_texto = Input::get('fecha_texto');

            if($request->hasFile('foto')) {
                $partialPath = $this->generateImagePath($request);
                $curso->imagen = $partialPath;
            }


            $curso->update();

            return redirect()->back();
        }
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */

    public function destroy($id)
    {
        $curso = Cursos::find($id);
        $res = UsersCursos::mirarCursos($curso);
        if($res){
            foreach($res as $alumcurs){
                $alumcurs->delete();
            }
        }
        Storage::delete('curso-'.$curso->slug.'.jpg');
        $curso->delete();

        return Redirect('/admin/cursos');
    }
}