shieldfroce/datatable

Pacote datatable server-side

v1.0.0 2022-07-21 17:54 UTC

This package is auto-updated.

Last update: 2024-04-25 03:17:51 UTC


README

Pacote datatable Shieldforce

Muito importante salientar que esta versão só é utilizado o boostrap 5 então, pode ser que altere alguma coisa no seu estilo, se não estiver usando bootstrap.

Muito importante salientar que esta versão só é utilizado o jquery-3.5.1 então, pode ser que altere alguma coisa na usabilidade caso sua versão do jquery seja diferente.

A parte legal é que como as tags são isoladas, você pode chamar em determinado lugar do seu código e não influênciar todo projeto!

Requisitos:

  • PHP >= 8.1
  • Composer >= 2
  • Autoload Ligado

Instalando pacote:

composer require shieldfroce/datatable:1.0.0

Exemplo de implementação simples (Frontend)!:

img.png

Responsável por renderizar a chamada do css:

<?php echo \Shieldforce\Frontend\CssRender\Ghost::head() ?>

Responsável por criar as colunas:

<?php 
    echo \Shieldforce\Backend\DatatableRender::renderHtmlTable([
        [ "name" => "id",     "data" => "id",     "title" => "#",     "class" => 'text-danger', 'width' => '10%', "orderable" => true, ],
        [ "name" => "name",   "data" => "name",   "title" => "Nome",  "class" => 'text-dark',   'width' => '50%', "orderable" => true  ],
        [ "name" => "age",    "data" => "age",    "title" => "Idade", "class" => 'text-dark',   'width' => '20%', "orderable" => true  ],
        [ "name" => "action", "data" => "action", "title" => "Ação",  "class" => 'text-dark',   'width' => '20%', "orderable" => true  ],
    ]);
?>

Responsável por renderizar a chamada do javascript:

<?php echo \Shieldforce\Frontend\JsRender\Ghost::js() ?>

Responsável por renderizar a lógica do javascript:

<?php echo \Shieldforce\Frontend\JsRender\GhostExecution::js("server.php") ?>

Exemplo de implementação simples (Backend)!:

img_1.png

// Array de data simulado para exemplo:

$list = [];
for ($i=1;$i<=50000;$i++) {
    $age = rand(10, 80);
    $list[$i] = ["id"=>"{$i}", "name"=>"Firstname Lastname {$i}", "age"=>"{$age}"];
}

// Monta e rendeniza o resultado da datatable:

echo \Shieldforce\Backend\DatatableReturn::baseReturn($_POST, $list, function ($nestedData, $col, $r){

    // Configura as colunas de retorno com opção de criar lógica customizada!
    
    if($col=="id") {
        $nestedData["$col"] = $r["id"] ?? "-";
    } elseif($col=="name") {
        $nestedData["$col"] = $r["name"] ?? "-";
    } elseif($col=="age") {
        $nestedData["$col"] = $r["age"] ?? "-";
    } elseif($col=="action") {
        $nestedData["$col"]   = "-";
    } else {
        $nestedData["$col"] = "-";
    }

    // Retorna as colunas de resultado
    
    return $nestedData;
});