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

namespace App\Http\Controllers;

use App\Categorias;
use App\Cursos;
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 CategoriasController extends Controller
{


    public function all() {
        return Categorias::all();
    }

    /**
     * Genera una respuesta con la ruta de la imagen
     *
     * @param $filename nombre de la imagen
     * @return Response
     */
    public function getImagenCategoria($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()
    {
        //
    }

    /**
     * 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 getCategoria($slug)
    {

        $categoria = Categorias::where('slug', $slug)->firstOrFail();

        $cursos = $categoria->cursos();

        $cursos = $this->orderCursos($cursos, $categoria);

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

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

        return view('categorias')->with(['categorias' => Categorias::all(), 'categoria' => $categoria , 'cursos' => $cursos->paginate(6)]);

    }

    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 orderCursos($cursos,$categoria) {

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

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

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

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

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

    }

    /**
     * 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)
    {
        //
    }
}