UnknownSec Bypass
403
:
/
mnt
/
lmsestudio-instance-vol002
/
lms_befb04e4bd4a
/
app
/
Models
/
Courses
/
Course
/ [
drwxr-xr-x
]
Menu
Upload
Mass depes
Mass delete
Terminal
Info server
About
name :
Course.php
<?php namespace EstudioLMS\Models\Courses\Course; use Carbon\Carbon; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; /** * EstudioLMS\Models\Courses\Course\Course * * @property int $id * @property string $name * @property string $short_description * @property int $course_category_id * @property int $user_id * @property int $level_id * @property int $type_id * @property int $requirement_certificate_id * @property int $course_load * @property int $average * @property string $description * @property string $main_image * @property string $cover_video * @property string $cover_image * @property string $prerequisites * @property string $meta_title * @property string $slug * @property string $meta_description * @property string $canonical_url * @property string $redirect_url * @property int $robot_index * @property int $robot_follow * @property bool $is_free * @property bool $published * @property null|string $published_at * @property null|string $unpublished_at * @property \Carbon\Carbon $created_at * @property \Carbon\Carbon $updated_at * @property string $deleted_at * @property-read \EstudioLMS\Models\Courses\Category\CourseCategory $category * @property-read \Illuminate\Database\Eloquent\Collection|\EstudioLMS\Models\Config\Gateway[] $gateways * @property-read null|string $landing_date * @property-read mixed $price_with_registration * @property-read mixed|string $short_descr * @property-read \Illuminate\Database\Eloquent\Collection|\EstudioLMS\Models\Environment\HiredCourse[] $hiredCourses * @property-read \EstudioLMS\Models\Courses\Course\Level $level * @property-read \EstudioLMS\Models\Courses\Course\SupportMaterial $material * @property-read \Illuminate\Database\Eloquent\Collection|\EstudioLMS\Models\Courses\Course\Module[] $modules * @property-read \Illuminate\Database\Eloquent\Collection|\EstudioLMS\Models\Courses\Course\Module[] $modulesAvailable * @property-read \Illuminate\Database\Eloquent\Collection|\EstudioLMS\Models\Financial\Plan[] $plans * @property-read \EstudioLMS\Models\Auth\User $user * @method static \Illuminate\Database\Query\Builder|Course postsByCategory($slug) * @method static \Illuminate\Database\Query\Builder|Course publishedCoursesAndCategory() * @method static \Illuminate\Database\Query\Builder|Course publishedDates() * @method static \Illuminate\Database\Query\Builder|Course whereAverage($value) * @method static \Illuminate\Database\Query\Builder|Course whereCanonicalUrl($value) * @method static \Illuminate\Database\Query\Builder|Course whereCourseCategoryId($value) * @method static \Illuminate\Database\Query\Builder|Course whereCourseLoad($value) * @method static \Illuminate\Database\Query\Builder|Course whereCoverImage($value) * @method static \Illuminate\Database\Query\Builder|Course whereCoverVideo($value) * @method static \Illuminate\Database\Query\Builder|Course whereCreatedAt($value) * @method static \Illuminate\Database\Query\Builder|Course whereDeletedAt($value) * @method static \Illuminate\Database\Query\Builder|Course whereDescription($value) * @method static \Illuminate\Database\Query\Builder|Course whereId($value) * @method static \Illuminate\Database\Query\Builder|Course whereIsFree($value) * @method static \Illuminate\Database\Query\Builder|Course whereLevelId($value) * @method static \Illuminate\Database\Query\Builder|Course whereMainImage($value) * @method static \Illuminate\Database\Query\Builder|Course whereMetaDescription($value) * @method static \Illuminate\Database\Query\Builder|Course whereMetaTitle($value) * @method static \Illuminate\Database\Query\Builder|Course whereName($value) * @method static \Illuminate\Database\Query\Builder|Course wherePrerequisites($value) * @method static \Illuminate\Database\Query\Builder|Course wherePublished($value) * @method static \Illuminate\Database\Query\Builder|Course wherePublishedAt($value) * @method static \Illuminate\Database\Query\Builder|Course whereRedirectUrl($value) * @method static \Illuminate\Database\Query\Builder|Course whereRequirementCertificateId($value) * @method static \Illuminate\Database\Query\Builder|Course whereRobotFollow($value) * @method static \Illuminate\Database\Query\Builder|Course whereRobotIndex($value) * @method static \Illuminate\Database\Query\Builder|Course whereShortDescription($value) * @method static \Illuminate\Database\Query\Builder|Course whereSlug($value) * @method static \Illuminate\Database\Query\Builder|Course whereTypeId($value) * @method static \Illuminate\Database\Query\Builder|Course whereUnpublishedAt($value) * @method static \Illuminate\Database\Query\Builder|Course whereUpdatedAt($value) * @method static \Illuminate\Database\Query\Builder|Course whereUserId($value) * @mixin \Eloquent */ class Course extends Model { use SoftDeletes; protected $fillable = [ 'name', 'short_description', 'course_category_id', 'user_id', 'level_id', 'type_id', 'requirement_certificate_id', 'course_load', 'average', 'description', 'main_image', 'cover_video', 'cover_image', 'prerequisites', 'meta_title', 'slug', 'meta_description', 'canonical_url', 'redirect_url', 'robot_index', 'robot_follow', 'published', 'is_free', 'published_at', 'unpublished_at', 'course_status_id' ]; protected $appends = [ 'landing_date', 'short_descr', 'price_with_registration' ]; /** * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function user() { return $this->belongsTo('EstudioLMS\Models\Auth\User'); } /** * @return \Illuminate\Database\Eloquent\Relations\HasOne */ public function category() { return $this->hasOne('EstudioLMS\Models\Courses\Category\CourseCategory', 'id', 'course_category_id'); } /** * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function level() { return $this->belongsTo('EstudioLMS\Models\Courses\Course\Level'); } /** * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany */ public function plans() { return $this->belongsToMany('EstudioLMS\Models\Financial\Plan', 'course_plans') ->withPivot('id', 'price', 'default', 'registration', 'debit'); } /** * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function modules() { return $this->hasMany('EstudioLMS\Models\Courses\Course\Module'); } /** * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function modulesAvailable() { return $this->hasMany('EstudioLMS\Models\Courses\Course\Module') ->whereRaw('((modules.published_at <= now() OR modules.published_at is null) and ((modules.unpublished_at >= now() OR modules.unpublished_at is null)))')->whereRaw('((modules.published_at <= now() OR modules.published_at is null) and ((modules.unpublished_at >= now() OR modules.unpublished_at is null)))') ->where('modules.status_id', '=', true); } /** * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany */ public function gateways() { return $this->belongsToMany('EstudioLMS\Models\Config\Gateway', 'course_gateway') ->withPivot('installments'); } /** * @return \Illuminate\Database\Eloquent\Relations\HasOne */ public function material() { return $this->hasOne('EstudioLMS\Models\Courses\Course\SupportMaterial'); } /** * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function hiredCourses() { return $this->hasMany('\EstudioLMS\Models\Environment\HiredCourse'); } /** * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function status() { return $this->belongsTo('EstudioLMS\Models\Courses\Course\CourseStatus', 'course_status_id', 'id', 'course_statuses'); } /** * @return mixed */ public function countResources() { return $this->hasOne('EstudioLMS\Models\Courses\Course\CourseResource', 'course_id', 'id') ->selectRaw('course_id, count(*) as count') ->where('resource_type_id', '<>', 1) ->groupBy('course_id'); } /** * @return mixed */ public function countModules() { return $this->hasOne('EstudioLMS\Models\Courses\Course\Module') ->selectRaw('course_id, count(*) as count') ->groupBy('course_id'); } /** * @param $query * @param $slug * @return mixed */ public function scopePostsByCategory($query, $slug) { return $query->whereHas('category', function ($query) use ($slug) { $query->where('slug', '=', $slug); $query->where('deleted_at', '=', null); }); } /** * @param $query * @return mixed */ public function scopePublishedCoursesAndCategory($query) { return $query->whereHas('category', function ($query) { $query->where('published', '=', true); $query->where('deleted_at', '=', null); }); } /** * @param $query * @return mixed */ public function scopePublishedDates($query) { return $query->whereRaw('((published_at <= now() OR published_at is null) and ((unpublished_at >= now() OR unpublished_at is null)))'); } /** * @return null|string */ public function getLandingDateAttribute() { if (!empty($this->attributes['created_at'])) { return Carbon::createFromFormat('Y-m-d H:i:s', $this->attributes['created_at'])->format('d/m/Y'); } return null; } /** * @return mixed|string */ public function getShortDescrAttribute() { $string = $this->getOriginal('description'); $pattern = '/<[^>]*>/'; $replacement = ''; $text = preg_replace($pattern, $replacement, $string); if (strlen($text) > 100) { return $text = html_entity_decode(substr($text, 0, 99)); } return $text; } /** * @param $date * @return null|string */ public function getPublishedAtAttribute($date) { if (!empty($date)) { return Carbon::createFromFormat('Y-m-d H:i:s', $date)->format('d/m/Y'); } return null; } /** * @param $date */ public function setPublishedAtAttribute($date) { if ($date == "" || $date == '0000-00-00 00:00:00' || empty($date)) { $this->attributes['published_at'] = null; } else { $this->attributes['published_at'] = Carbon::createFromFormat('d/m/Y', $date)->format('Y-m-d H:i'); } } /** * @param $date * @return null|string */ public function getUnpublishedAtAttribute($date) { if (!empty($date)) { return Carbon::createFromFormat('Y-m-d H:i:s', $date)->format('d/m/Y'); } return null; } /** * @param $date */ public function setUnpublishedAtAttribute($date) { if ($date == "" || $date == '0000-00-00 00:00:00' || empty($date)) { $this->attributes['unpublished_at'] = null; } else { $this->attributes['unpublished_at'] = Carbon::createFromFormat('d/m/Y', $date)->format('Y-m-d H:i'); } } public static function boot() { parent::boot(); static::deleted(function ($course) { $course->modules()->delete(); }); static::restored(function ($course) { $course->modules()->withTrashed()->restore(); }); } /** * @return float|int */ public function getPriceWithRegistrationAttribute() { $defaultPlan = $this->plans()->where('default', '=', true)->first(); if (!$defaultPlan) { return 0; } $materialPrice = isset($this->material->price) ? $this->material->price : 0; if ($defaultPlan->pivot->registration > 0) { return $defaultPlan->pivot->price + $defaultPlan->pivot->registration + $materialPrice; } return $defaultPlan->pivot->price + $materialPrice; } }
Copyright © 2026 - UnknownSec