49 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace kernel\IGTabel;
 | |
| 
 | |
| use app\helpers\Debug;
 | |
| 
 | |
| class JSONCreator
 | |
| {
 | |
|     protected array $informationArray = [];
 | |
| 
 | |
|     public function __construct(array $meta, array $data)
 | |
|     {
 | |
| 
 | |
|         $params = empty($meta['params']) ? ["class" => "table table-bordered", "border" => "1"] : $meta['params'];
 | |
|         if ($meta && $data) {
 | |
|             $this->informationArray = [
 | |
|                 "meta" => [
 | |
|                     "columns" => $meta['columns'],
 | |
|                     "perPage" => $meta['perPage'] ?? 10,
 | |
|                     "currentPage" => $meta['currentPage'] ?? 1,
 | |
|                     "baseUrl" => $meta['baseUrl'] ?? '',
 | |
|                     "actions" => $meta['actions'] ?? '',
 | |
|                     "params" => $params
 | |
| 
 | |
|                 ],
 | |
|                 "data" => $data
 | |
|             ];
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @param array $infArr
 | |
|      * @return string|null
 | |
|      */
 | |
|     protected function toJson(array $infArr): ?string
 | |
|     {
 | |
|         if ($infArr)
 | |
|             return json_encode($infArr, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
 | |
|         return null;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @return string|null
 | |
|      */
 | |
|     public function getJson(): ?string
 | |
|     {
 | |
|         return $this->toJson($this->informationArray);
 | |
|     }
 | |
| } |