Actions.php
См. документацию.
1 <?php
2 
3 /**
4  * @file
5  * @brief контроллер управления моделями действий
6  *
7  */
8 
9 namespace Wrong\Models;
10 
13 use Wrong\File\Path;
14 
15 /**
16  * @brief Actions контроллер управления моделями действий, расширяет Controller
17  *
18  */
19 
20 class Actions extends Controller implements ModelsInterface
21 {
22 
23  /**
24  * создает в бд запись для новой модели типа "действие" и копирует файл шаблона
25  *
26  * @param array $arr массив данных модели
27  * @param array $replace_path массив путей для замены в файле и параметры запроса.
28  *
29  * @return int Последний вставленный идентификатор.
30  */
31  public static function create($arr, $replace_path = [])
32  {
33  $dbh = Connect::getInstance()->dbh;
34  if ($replace_path) {
35  $arr['file'] = strtr($arr['file'], $replace_path);
36  $arr['request'] = strtr($arr['request'], $replace_path);
37  }
38  Path::mkdir($_SERVER['DOCUMENT_ROOT'] . $arr['file']);
39  $arr['template_filename'] = Templates::all_available($arr['template_id'])[0]->file;
40  if (copy($_SERVER['DOCUMENT_ROOT'] . $arr['template_filename'], $_SERVER['DOCUMENT_ROOT'] . $arr['file'])) {
41  $sth = $dbh->prepare("INSERT INTO `actions` (`request`, `file`, `groups`, `owner_group`) VALUES (:request, :file, :groups, :owner_group)");
42  $arr['groups'] = json_encode($arr['groups']);
43  $sth->bindValue(':request', $arr['request']);
44  $sth->bindValue(':file', $arr['file']);
45  $sth->bindValue(':groups', $arr['groups']);
46  $sth->bindValue(':owner_group', $arr['owner_group']);
47  $sth->execute();
48  return $dbh->lastInsertId();
49  } else {
50  Path::rmdir($_SERVER['DOCUMENT_ROOT'] . $arr['file']);
51  }
52  }
53 
54  /**
55  * возвращает имя запроса по id строки
56  *
57  * @param int $id Идентификатор, имя для которого вы хотите получить.
58  *
59  * @return string имя запроса.
60  */
61  public static function name($id)
62  {
63  return preg_replace('#^/api/action/#', '', self::find($id)->request);
64  }
65 
66 }
if(!($row=Wrong\Models\Crontabs::find($_POST['id']))) if(! $user->access() ->write($row)) $sth
Definition: edit-cli.php:20
Connect создает подключение к базе данных
Definition: Connect.php:19
static getInstance($ignore_error=false)
Definition: Connect.php:50
Controller контроллер для запросов к БД
Definition: Controller.php:17
Path удаляет и очищает каталоги
Definition: Path.php:17
static mkdir($filename)
Definition: Path.php:23
static rmdir($filename)
Definition: Path.php:54
Actions контроллер управления моделями действий, расширяет Controller.
Definition: Actions.php:21
static create($arr, $replace_path=[])
Definition: Actions.php:31
static name($id)
Definition: Actions.php:61
static all_available($value='', $column='id', $table='')
Definition: Templates.php:68
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
ModelsInterface интерфейс управления моделями
$arr
Definition: actions.php:25
$dbh
Definition: session.php:19