60 lines
1.5 KiB
PHP
60 lines
1.5 KiB
PHP
<?php
|
||
|
||
require_once "../vendor/autoload.php";
|
||
|
||
use Itguild\Tables\ListJsonTable;
|
||
|
||
$json = file_get_contents('simple.json');
|
||
$table = new ListJsonTable($json);
|
||
|
||
$table->columns([
|
||
"created_at" => [
|
||
"format" => "date:Y-m-d",
|
||
'filter' => ["input" => "date"]
|
||
],
|
||
'description' => [
|
||
"format" => "html",
|
||
"style" => ["width" => "300px"],
|
||
"filter" => ["input" => ["radio" => ["hello", "bye"]]],
|
||
"value" => function ($cell) {
|
||
return "<span style='color: sienna'>$cell</span>";
|
||
}
|
||
],
|
||
'description2' => [
|
||
"filter" => ["input" => "text"],
|
||
],
|
||
'status' => [
|
||
"format" => "integer",
|
||
"filter" => ["select" => getStatusLabel()],
|
||
"value" => function ($cell) {
|
||
return getStatusLabel()[$cell];
|
||
}],
|
||
'email' => function ($cell) {
|
||
return "<span style='color: aqua'>$cell</span>";
|
||
},
|
||
]);
|
||
//$table->setBeforePrintCell(function ($key, $data) {
|
||
// return $key == "email" ? "<span style='color: aqua'>$data</span>" : $data;
|
||
//});
|
||
$table->afterPrint(function ($meta) {
|
||
return "<div>After Print</div>";
|
||
});
|
||
$table->addColumn("Колонка 33", "k33", function ($id) {
|
||
return "my ID: " . $id;
|
||
});
|
||
$table->addColumn("Колонка 34", "k34", function ($id) {
|
||
return "some34";
|
||
});
|
||
$table->create();
|
||
$table->render();
|
||
|
||
|
||
function getStatusLabel(): array
|
||
{
|
||
return [
|
||
0 => "На модерации",
|
||
1 => "Активный",
|
||
2 => "Модератор",
|
||
99 => "Удален",
|
||
];
|
||
} |