export-model.php
См. документацию.
1 <?php
2 
3 /**
4  * @file
5  * @brief обработчик экспорта модели
6  */
7 
8 isset($user) or require $_SERVER['DOCUMENT_ROOT'] . '/page/404.php';
9 
10 if (!($row = Wrong\Database\Controller::find($_REQUEST['id'], 'id', $_REQUEST['table']))) {
11  exit('errorToast("Ошибка!");');
12 }
13 
14 if (!$user->access()->write($row, true)) {
15  if (isset($_POST['copy'])) {
16  exit(json_encode(['error' => 'Недостаточно прав!']));
17  }
18  exit('errorToast("Недостаточно прав!");');
19 }
20 
21 if (!isset($_POST['copy'])) {
22  !isset($_GET['save']) && exit('location.href="' . $request . '?save&id=' . $_REQUEST['id'] . '&table=' . $_REQUEST['table'] . '";');
23 }
24 
25 $zipname = Wrong\Start\Env::$e->TEMP_PATH . '/model-' . $_REQUEST['table'] . '-' . $_REQUEST['id'] . '.zip';
26 
27 $zip = new ZipArchive;
28 $zip->open($zipname, ZipArchive::CREATE);
29 $zip->addFromString('model.json', json_encode($row));
30 $zip->addFromString('name.txt', $_REQUEST['table']);
31 if ($row->file) {
32  $zip->addFile($_SERVER['DOCUMENT_ROOT'] . $row->file, basename($row->file));
33 }
34 $zip->close();
35 
36 if (isset($_POST['copy'])) {
37  $_FILES['file']['name'] = $zipname;
38  $_FILES['file']['tmp_name'] = $zipname;
39  require 'import-model.php';
40  unlink($zipname);
41 }
42 
43 
44 header('Content-Type: application/zip');
45 header('Content-disposition: attachment; filename=' . basename($zipname));
46 header('Content-Length: ' . filesize($zipname));
47 readfile($zipname);
48 unlink($zipname);
$_POST['groups']
Definition: add-action.php:16
static $e
Definition: Env.php:22
if(!($row=Wrong\Database\Controller::find($_REQUEST['id'], 'id', $_REQUEST['table']))) if(! $user->access() ->write($row, true)) if(!isset($_POST['copy'])) $zipname
$zip
$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
catch(\Throwable $th) $request
Definition: session.php:28