50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.3 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'] ?? [],
 | 
						|
                    "rows" => $meta['rows'] ?? [],
 | 
						|
                    "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);
 | 
						|
    }
 | 
						|
} |