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/CursosController.php
<?php

namespace App\Http\Controllers;

use App\Categorias;
use App\Cursos;
use App\Profesores;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Http\Request;

use App\Http\Requests;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;

class CursosController extends Controller
{

    public function all() {
        return Cursos::orderBy('fechaInicio', 'DESC')->get();
    }

    public function last() {
        return Cursos::orderBy('fechaInicio', 'DESC')->take(3)->get();
    }
    /**
     * Genera una respuesta con la ruta de la imagen
     *
     * @param $filename nombre de la imagen
     * @return Response
     */


    public function getPlazas($id) {
        $curso  = Cursos::find($id);
        return $curso->numMax - $curso->userscursos()->count();
    }

    public function withPlazas($cursos) {
        $cursos = $cursos->get();
        $ids = [];
        foreach ($cursos as $curso) {
            if ($this->getPlazas($curso->id)) {
                $ids[] = $curso->id;
            }
        }

        return Cursos::whereIn('id',$ids);
    }

    public function getImagenCurso($filename){
        $file = Storage::disk('local')->get($filename);
        return new Response($file, 200);
    }

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {


        $cursos = $this->orderCursos();

        if (isset($_GET['plazas'])) {
            $cursos = $this->withPlazas($cursos);
            $cursos = $this->orderCursosWithPlazas($cursos);
        }

        if (isset($_GET['finalizados'])) {
            $cursos = $cursos->activos();
        }



        $categorias = Categorias::all();

        return view('inicio')->with(['cursos' => $cursos->paginate(9), 'categorias' => $categorias]);
    }


    public function orderCursosWithPlazas($cursos) {
        $orderBy = 'fechaInicio';
        $direction = 'DESC';

        if(isset($_GET['direction'])) {
            $direction = $_GET['direction'];
        };

        if(isset($_GET['orderBy'])) {
            $orderBy = $_GET['orderBy'];
        };

        return $cursos->orderBy($orderBy, $direction);
    }

    public function orderCursos() {

        $orderBy = 'fechaInicio';
        $direction = 'DESC';

        if(isset($_GET['direction'])) {
            $direction = $_GET['direction'];
        };

        if(isset($_GET['orderBy'])) {
            $orderBy = $_GET['orderBy'];
        };

        if(isset($_GET['orderBy']) && Auth::check() && $_GET['orderBy'] == 'interes')  {
            return Auth::user()->intereses();
        };


        return Cursos::orderBy($orderBy, $direction);

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

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

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
       //
    }

    public function getCurso($slug){
        
        $curso = Cursos::where('slug', $slug)->firstOrFail();
        return view('cursos')->with(['curso' => $curso, 'categoria' => $curso->categoria()->first(),'profesor' => $curso->profesor()->first()]);
        
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}