-
Notifications
You must be signed in to change notification settings - Fork 15
/
options.php
executable file
·80 lines (71 loc) · 2.08 KB
/
options.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
include __DIR__.'/prolog.php';
/** @var CMain $APPLICATION */
$APPLICATION;
$module = \WS\ReduceMigrations\Module::getInstance();
$localization = $module->getLocalization('setup');
$options = $module->getOptions();
$errors = array();
$fCreateDir = function ($dir) {
$parts = explode('/', $dir);
$dir = rtrim($_SERVER['DOCUMENT_ROOT'], '/');
foreach ($parts as $part) {
if (!$part) {
continue;
}
$dir .= '/'.$part;
if (!mkdir($dir)) {
return false;
}
chmod($dir, 0777);
}
return true;
};
$fSave = function ($data) use (& $errors, $module, $options, $localization, $fCreateDir) {
$catalog = $data['catalog'];
$catalogError = false;
if (!$catalog) {
$errors[] = $localization->getDataByPath('errors.catalogFieldEmpty');
$catalogError = true;
}
$dir = $_SERVER['DOCUMENT_ROOT'] .$catalog;
if (!$catalogError && !is_dir($dir) && !$fCreateDir($catalog)) {
$catalogError = true;
$errors[] = $localization->getDataByPath('errors.notCreateDir');
}
if (!$catalogError && !is_dir($dir)) {
$errors[] = $localization->getDataByPath('errors.notCreateDir');
} elseif(!$catalogError) {
$catalog && $options->catalogPath = $catalog;
}
$options->useAutotests = (bool)$data['tests'];
};
$_POST['data'] && $fSave($_POST['data']);
$errors && CAdminMessage::ShowMessage(
array(
"MESSAGE" => implode(', ', $errors),
"TYPE" => "ERROR"
)
);
$form = new CAdminForm('form', array(
array(
'DIV' => 't1',
'TAB' => $localization->getDataByPath('tab'),
)
));
echo BeginNote();
echo $localization->getDataByPath('description');
echo EndNote();
$form->Begin(array(
'FORM_ACTION' => $APPLICATION->GetCurUri()
));
$form->BeginNextFormTab();
$form->AddEditField(
'data[catalog]',
$localization->getDataByPath('fields.catalog'),
true,
array(),
$options->catalogPath ?: '/bitrix/php_interface/reducemigrations'
);
$form->Buttons(array('btnSave' => false, 'btnApply' => true));
$form->Show();