pages.php
См. документацию.
1 <?php
2 
3 /**
4  * @file
5  * @brief выборка моделей типа "страница"
6  */
7 
8 isset($user) or require $_SERVER['DOCUMENT_ROOT'] . '/page/404.php';
9 
10 header("Content-type: application/json");
11 
12 $table_name = basename($request);
13 
14 $columns = ['id', 'request', 'file', 'groups', 'owner_group', 'template_id', 'name', 'note', 'cache_time', 'act'];
15 
16 $order_column = isset($_GET['order'][0]['column']) && isset($columns[$_GET['order'][0]['column']]) ? $columns[$_GET['order'][0]['column']] : $columns[0];
17 $order_dir = isset($_GET['order'][0]['dir']) && $_GET['order'][0]['dir'] == 'asc' ? 'ASC' : 'DESC';
18 $start = abs(intval($_GET['start']));
19 $length = intval($_GET['length']);
20 
21 $query = "SELECT " . implode(', ', $columns) . " FROM `$table_name` ORDER BY `$order_column` $order_dir";
22 
23 $sth = $dbh->prepare($query);
24 $sth->execute();
25 $arr = $sth->fetchAll(PDO::FETCH_NUM);
26 
28 
30 
31 if (!empty($_GET['search']['value'])) {
32  $searchable_columns = [];
33  $arr_filtered = [];
34  foreach ($_GET['columns'] as $key => $item) {
35  if ($item['searchable']) {
36  $searchable_columns[] = $key;
37  }
38  }
39 
40  if ($searchable_columns) {
41  foreach ($arr as $key => $item) {
42  $arr_search = array_intersect_key($item, $searchable_columns);
43  foreach ($arr_search as $word) {
44  if (mb_stripos(strip_tags($word), $_GET['search']['value']) !== false) {
45  $arr_filtered[] = $arr[$key];
46  continue 2;
47  }
48  }
49  }
50  }
51 }
52 
53 $response = [];
54 $response['recordsTotal'] = count($arr);
55 $response['recordsFiltered'] = $response['recordsTotal'];
56 $length = $length == -1 ? $response['recordsTotal'] : $length;
57 $response['recordsFiltered'] = count($arr_filtered);
58 $response['data'] = array_slice($arr_filtered, $start, $length);
59 $response['draw'] = abs(intval($_GET['draw']));
60 
61 exit(json_encode($response, JSON_UNESCAPED_UNICODE));
static formatter($arr, $columns, $table)
Definition: Selects.php:68
$user
Definition: from-user.php:38
setcookie('FROM_UID', $uid, [ 'expires'=> time()+31536000, 'path'=> '/', 'domain'=> $_SERVER['HTTP_HOST'], 'secure'=> Wrong\Start\Env::$e->IS_SECURE, 'httponly'=> false, 'samesite'=> Wrong\Start\Env::$e->IS_SECURE ? 'None' :'Lax']) or setcookie('FROM_UID' $_SERVER['HTTP_HOST']
Definition: from-user.php:36
if(($dbh=Connect::getInstance(true) ->dbh) && $dbh->query("SHOW TABLES") ->fetchAll() && $dbh->query("SELECT COUNT(*) FROM `users`") ->fetchColumn()) if(!empty($_POST)) exit
Definition: install.php:198
$columns
Definition: pages.php:14
if(!empty($_GET['search']['value'])) $response
Definition: pages.php:53
$order_column
Definition: pages.php:16
$start
Definition: pages.php:18
$arr_filtered
Definition: pages.php:29
$arr
Definition: pages.php:25
$table_name
Definition: pages.php:12
$order_dir
Definition: pages.php:17
$length
Definition: pages.php:19
$query
Definition: pages.php:21
$sth
Definition: pages.php:23
catch(\Throwable $th) $request
Definition: session.php:28
$dbh
Definition: session.php:19