columns
This commit is contained in:
parent
433cc85f54
commit
8d1dce0222
@ -9,14 +9,18 @@ $table = new ListJsonTable($json);
|
|||||||
//$table->column("status", function ($ceil){
|
//$table->column("status", function ($ceil){
|
||||||
// return getStatusLabel()[$ceil];
|
// return getStatusLabel()[$ceil];
|
||||||
//});
|
//});
|
||||||
//$table->columns([
|
|
||||||
// 'status' => function ($ceil) {
|
$table->columns([
|
||||||
// return getStatusLabel()[$ceil];
|
'status' => function ($ceil) {
|
||||||
// },
|
return getStatusLabel()[$ceil];
|
||||||
// 'email' => function ($ceil) {
|
},
|
||||||
// return "<span style='color: aqua'>$ceil</span>";
|
'email' => function ($ceil) {
|
||||||
// }
|
return "<span style='color: aqua'>$ceil</span>";
|
||||||
//]);
|
},
|
||||||
|
'description' => function ($ceil) {
|
||||||
|
return "<span style='color: sienna'>$ceil</span>";
|
||||||
|
}
|
||||||
|
]);
|
||||||
//$table->setBeforePrintCell(function ($key, $data) {
|
//$table->setBeforePrintCell(function ($key, $data) {
|
||||||
// return $key == "email" ? "<span style='color: aqua'>$data</span>" : $data;
|
// return $key == "email" ? "<span style='color: aqua'>$data</span>" : $data;
|
||||||
//});
|
//});
|
||||||
|
@ -18,7 +18,8 @@ class ListJsonTable
|
|||||||
private string $json;
|
private string $json;
|
||||||
|
|
||||||
private int $count = 0;
|
private int $count = 0;
|
||||||
private \Closure|false $beforePrintCell;
|
// private \Closure|false $beforePrintCell;
|
||||||
|
private array $beforePrintCell;
|
||||||
private \Closure|false $beforePrintHook;
|
private \Closure|false $beforePrintHook;
|
||||||
private \Closure|false $afterPrintHook;
|
private \Closure|false $afterPrintHook;
|
||||||
private string $baseUrl;
|
private string $baseUrl;
|
||||||
@ -34,7 +35,8 @@ class ListJsonTable
|
|||||||
|
|
||||||
#[NoReturn] public function __construct(string $json)
|
#[NoReturn] public function __construct(string $json)
|
||||||
{
|
{
|
||||||
$this->beforePrintCell = false;
|
// $this->beforePrintCell = false;
|
||||||
|
$this->beforePrintCell = [];
|
||||||
$this->json = $json;
|
$this->json = $json;
|
||||||
$this->data = json_decode($this->json, true);
|
$this->data = json_decode($this->json, true);
|
||||||
$this->baseUrl = $this->data['meta']['baseUrl'] ?? '';
|
$this->baseUrl = $this->data['meta']['baseUrl'] ?? '';
|
||||||
@ -131,9 +133,15 @@ class ListJsonTable
|
|||||||
}
|
}
|
||||||
foreach ($row as $key => $ceil) {
|
foreach ($row as $key => $ceil) {
|
||||||
if ($this->issetColumn($key) and $this->is_fillable($key)) {
|
if ($this->issetColumn($key) and $this->is_fillable($key)) {
|
||||||
if ($this->beforePrintCell) {
|
foreach ($this->beforePrintCell as $column => $closure) {
|
||||||
$hook = $this->beforePrintCell;
|
// if ($this->beforePrintCell) {
|
||||||
$ceil = $hook($key, $ceil);
|
// $hook = $this->beforePrintCell;
|
||||||
|
// $ceil = $hook($key, $ceil);
|
||||||
|
// }
|
||||||
|
if ($key == $column) {
|
||||||
|
$hook = $closure;
|
||||||
|
$ceil = $hook($ceil);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$this->html .= "<td>" . $ceil . "</td>";
|
$this->html .= "<td>" . $ceil . "</td>";
|
||||||
}
|
}
|
||||||
@ -199,7 +207,7 @@ class ListJsonTable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getCustomColumnKeys()
|
protected function getCustomColumnKeys(): array
|
||||||
{
|
{
|
||||||
$keys = [];
|
$keys = [];
|
||||||
foreach ($this->customColumnsArray as $item) {
|
foreach ($this->customColumnsArray as $item) {
|
||||||
@ -252,17 +260,6 @@ class ListJsonTable
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// private function getColumns(int $id): string
|
|
||||||
// {
|
|
||||||
// $columns = [];
|
|
||||||
// foreach ($this->actionsArray as $item) {
|
|
||||||
// $objItem = new $item($this->baseUrl, $id);
|
|
||||||
// $columns .= $objItem->fetch();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// return $columns;
|
|
||||||
// }
|
|
||||||
|
|
||||||
private function getActions(int $id): string
|
private function getActions(int $id): string
|
||||||
{
|
{
|
||||||
$actions = "";
|
$actions = "";
|
||||||
@ -326,8 +323,15 @@ class ListJsonTable
|
|||||||
echo $this->html;
|
echo $this->html;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setBeforePrintCell(\Closure $closure): void
|
public function setBeforePrintCell(string $col, \Closure $closure): void
|
||||||
{
|
{
|
||||||
$this->beforePrintCell = $closure;
|
$this->beforePrintCell[$col] = $closure;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function columns(array $data): void
|
||||||
|
{
|
||||||
|
foreach ($data as $key => $value) {
|
||||||
|
$this->setBeforePrintCell($key, $value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user