| Server IP : / Your IP : 10.244.4.16 [ Web Server : nginx/1.25.3 System : Linux escuela-portal-app-54f56585bc-kst6g 5.15.0-1084-azure #93-Ubuntu SMP Sat Mar 15 14:12:29 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.2.13 Disable Function : 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, Domains : 0 Domains MySQL : OFF | cURL : ON | WGET : OFF | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/app/app/Models/ |
Upload File : |
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Route;
class Section extends Model
{
use HasFactory;
protected $fillable = [
'id', 'name', 'component', 'data'
];
protected $casts = [
'data' => 'array',
];
public function getData()
{
$data = null;
switch ($this->data['getData']) {
case 'alliances':
$data = $this->getAlliances();
break;
case 'sliderCourse':
$data = $this->getSliderCourses();
break;
case 'sliderCycle':
$data = $this->getSliderCycles();
break;
case 'sliderConference':
$data = $this->getConferences();
break;
case 'courses':
$data = $this->getCourses();
break;
case 'cycles':
$data = $this->getCycles();
break;
case 'courseForCycle':
$data = $this->courseForCycle();
break;
case 'herramientas-pedagogicas':
$data = $this->getLibrary('Herramientas Pedagogicas');
break;
case 'datos-abiertos':
$data = $this->getLibrary('Datos Abiertos');
break;
case 'socialService':
$data = $this->getCoursesSocialService();
break;
default:
$data = $this->getOptions($this->data['getData']);
break;
}
return $data;
}
public function getAlliances()
{
return Alliance::orderBy('order')->get();
}
public function getSliderCourses()
{
$today = now();
return Course::where('start_date', '<=', $today)
->where('end_date', '>=', $today)
->take(8)
->get();
}
public function getSliderCycles()
{
return Cycle::orderBy('name')->take(8)->get();
}
public function getConferences()
{
return Conference::select('id', 'name', 'slug', 'start_date', 'icon')->get();
}
public function getOptions($type)
{
return Option::where('type', $type)->get();
}
public function getLibrary($type)
{
return Library::where('type', $type)->get();
}
public function getCourses()
{
$today = now();
return Course::where('start_date', '<=', $today)->where('end_date', '>=', $today)->get();
}
public function getCoursesSocialService(){
return Course::where('social_service', true)->get();
}
public function getCycles()
{
return Cycle::get();
}
public function courseForCycle()
{
$slug = Route::current()->parameter('slug');
return Cycle::where('slug', $slug)->first()->courses;
}
}