Skip to content

Commit

Permalink
Merge pull request #6 from Galamoon/master
Browse files Browse the repository at this point in the history
Релиз на marketplace.bitrix.ru [v0.7.1]
  • Loading branch information
shvykov committed Nov 9, 2018
2 parents 0d40d12 + 3c59d42 commit 0d9dda8
Show file tree
Hide file tree
Showing 110 changed files with 5,620 additions and 3,313 deletions.
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,30 @@

## [Released]

## [0.7.1] - 2018-10-18
### Fix
- Исправления генератора типа список
- Небольшие исправления
### Added
- Генерация множественных свойств
- Удаление настройки генератора

## [0.7.0] - 2018-08-12
### Added
- Генерация элементов торгового каталогов

## [0.6.0] - 2018-09-12
### Fix
- Незначительные исправления
### Added
- Функции импорта/экспорта профилей
- Генератор синонимов для имени элемента

## [0.5.2] - 2018-08-25
### Fix
- ArgumentCountError Exception (php7.1)
- Незначительные исправления

## [0.5.1] - 2018-06-25
### Fix
- ArgumentCountError Exception (php7.1)
Expand Down
39 changes: 26 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,3 @@
## Установка
```
$ cd local/modules
$ git clone https://github.com/ylabio/ylab.ddata.git
```
В папку `local/modules` будет склонирован репозиторий модуля, после этого, необходимо в панели администратора установить
модуль: `Рабочий стол -> Marketplace -> Установленные решения`.

##Требования
1. Требуется версия 1С-Битрикс от 17.0.0.
2. Требуется версия PHP >= 7.0

## Bitrix модуль генерации демо данных

Модуль ylab.ddata реализует генерацию сущностей Bitrix заполненых случайными данными. Модуль поможет при отладке
Expand All @@ -22,7 +10,32 @@ $ git clone https://github.com/ylabio/ylab.ddata.git
* Сущности
* Пользователь
* Элемент инфоблока
* Элемент каталога
* Элемент highload-блока
* Элемент ORM сущности

Настройка профиля производится в разделе `Рабочий стол -> Сервисы -> Ylab Демо данные -> Профили сущностей`.
Настройка профиля производится в разделе `Рабочий стол -> Сервисы -> Ylab Демо данные -> Профили сущностей`.

## Требования
1. Требуется версия 1С-Битрикс от 17.0.0.
2. Требуется версия PHP >= 7.0

## Установка
```
$ cd local/modules
$ git clone https://github.com/ylabio/ylab.ddata.git
```
В папку `local/modules` будет склонирован репозиторий модуля, после этого, необходимо в панели администратора установить
модуль: `Рабочий стол -> Marketplace -> Установленные решения`.

Ведущие разработчики:

- [Alexandr Zemlyanoy (Galamoon)](https://github.com/Galamoon)
- [Roman Shvykov (shvykov)](https://github.com/shvykov)

Разработчики:

- [Vladimir Admaev (vladimiradmaev)](https://github.com/vladimiradmaev)
- [Lev Dmitriev (LevDmitriev)](https://github.com/LevDmitriev)
- [Anton (ivanovQQQ)](https://github.com/ivanovQQQ)

240 changes: 120 additions & 120 deletions admin/entity_data_form.php
Original file line number Diff line number Diff line change
@@ -1,120 +1,120 @@
<?php
require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php");

use Bitrix\Main\Loader;
use Bitrix\Main\Localization\Loc;
use Ylab\Ddata\LoadUnits;

try {
define('MODULE_ID', 'ylab.ddata');
Loader::includeModule(MODULE_ID);

Loc::loadMessages(__FILE__);
$ctx = \Bitrix\Main\Application::getInstance()->getContext();
$request = $ctx->getRequest();
$sGeneratorID = $request->get('generator');
$sFieldID = $request->get('field');
$sPropertyName = $request->get('property-name');
$sProfileID = $request->get('profile_id');
$arRequest = $request->toArray();
$arOptions = $arRequest['option'];

$objLoadUnits = new LoadUnits();
$arDataUnits = $objLoadUnits->getDataUnits();
foreach ($arDataUnits as $arData) {
if ($arData['ID'] == $sGeneratorID) {
$arDataForm = $arData;
break;
}
}
$sDataClass = $arDataForm['CLASS'];
$sForm = $sDataClass::getOptionForm($request);

$isValidateOptions = false;
if ($request->isPost() && !empty($request->get('validate'))) {
$isValidateOptions = $sDataClass::isValidateOptions($request);
if (!$isValidateOptions) {
throw new Exception(Loc::getMessage('ERROR_OPTION'));
}
}

} catch (\Exception $e) {
$error = $e->getMessage();
}

if (isset($error)) {
CAdminMessage::ShowMessage([
"MESSAGE" => $error,
"TYPE" => "ERROR",
]);
}

if (!empty($sForm) && !$isValidateOptions) { ?>
<form action="<?= $APPLICATION->GetCurPage() ?>" method='post' name="WindowEntityDataForm" id='WindowEntityDataForm'>
<?= $sForm ?>
<script type="text/javascript">
var saveBtn = {
title: "<?= Loc::getMessage('YLAB_DDATA_BTN_JS_SAVE')?>",
id: "savebtn",
name: "savebtn",
className: "adm-btn-save",
action: function () {
window.YlabDdata.WindowEntityDataForm.PostParameters("validate=Y");
}
};
window.YlabDdata.WindowEntityDataForm.SetButtons([saveBtn, BX.CDialog.btnCancel]);
</script>
</form>
<? } else { ?>
<script>
BX.ready(function () {
var inputButton = BX.findChild(
BX(document),
{
className: 'DataFieldButton',
attribute: {
'data-name': '<?= $sPropertyName ?>'
}
},
true,
true
)[0];
var inputOptions = BX.findChild(
BX(document),
{
attribute: {
'name': '<?= $sPropertyName ?>[<?= $sGeneratorID ?>]'
}
},
true,
true
)[0];
if (inputOptions == undefined) {
BX.prepend(BX.create('input', {
attrs: {
'type': 'hidden',
'class': 'options-input',
'name': '<?= $sPropertyName ?>[<?= $sGeneratorID ?>]',
'value': '<?= json_encode($arOptions) ?>',
'id': '<?= $sGeneratorID ?>'
}
}), BX.findParent(inputButton, {}));
} else {

BX.remove(inputOptions);

BX.prepend(BX.create('input', {
attrs: {
'type': 'hidden',
'class': 'options-input',
'name': '<?= $sPropertyName ?>[<?= $sGeneratorID ?>]',
'value': '<?= json_encode($arOptions) ?>',
'id': '<?= $sGeneratorID ?>'
}
}), BX.findParent(inputButton, {}));
}
});
window.YlabDdata.WindowEntityDataForm.Close();
</script>
<? } ?>

<?php
require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php");

use Bitrix\Main\Loader;
use Bitrix\Main\Localization\Loc;
use Ylab\Ddata\LoadUnits;

try {
define('MODULE_ID', 'ylab.ddata');
Loader::includeModule(MODULE_ID);

Loc::loadMessages(__FILE__);
$ctx = \Bitrix\Main\Application::getInstance()->getContext();
$request = $ctx->getRequest();
$sGeneratorID = $request->get('generator');
$sFieldID = $request->get('field');
$sPropertyName = $request->get('property-name');
$sProfileID = $request->get('profile_id');
$arRequest = $request->toArray();
$arOptions = $arRequest['option'];

$objLoadUnits = new LoadUnits();
$arDataUnits = $objLoadUnits->getDataUnits();
foreach ($arDataUnits as $arData) {
if ($arData['ID'] == $sGeneratorID) {
$arDataForm = $arData;
break;
}
}
$sDataClass = $arDataForm['CLASS'];
$sForm = $sDataClass::getOptionForm($request);

$isValidateOptions = false;
if ($request->isPost() && !empty($request->get('validate'))) {
$isValidateOptions = $sDataClass::isValidateOptions($request);
if (!$isValidateOptions) {
throw new Exception(Loc::getMessage('ERROR_OPTION'));
}
}

} catch (\Exception $e) {
$error = $e->getMessage();
}

if (isset($error)) {
CAdminMessage::ShowMessage([
"MESSAGE" => $error,
"TYPE" => "ERROR",
]);
}

if (!empty($sForm) && !$isValidateOptions) { ?>
<form action="<?= $APPLICATION->GetCurPage() ?>" method='post' name="WindowEntityDataForm" id='WindowEntityDataForm'>
<?= $sForm ?>
<script type="text/javascript">
var saveBtn = {
title: "<?= Loc::getMessage('YLAB_DDATA_BTN_JS_SAVE')?>",
id: "savebtn",
name: "savebtn",
className: "adm-btn-save",
action: function () {
window.YlabDdata.WindowEntityDataForm.PostParameters("validate=Y");
}
};
window.YlabDdata.WindowEntityDataForm.SetButtons([saveBtn, BX.CDialog.btnCancel]);
</script>
</form>
<? } else { ?>
<script>
BX.ready(function () {
var inputButton = BX.findChild(
BX(document),
{
className: 'DataFieldButton',
attribute: {
'data-name': '<?= $sPropertyName ?>'
}
},
true,
true
)[0];
var inputOptions = BX.findChild(
BX(document),
{
attribute: {
'name': '<?= $sPropertyName ?>[<?= $sGeneratorID ?>]'
}
},
true,
true
)[0];
if (inputOptions == undefined) {
BX.prepend(BX.create('input', {
attrs: {
'type': 'hidden',
'class': 'options-input',
'name': '<?= $sPropertyName ?>[<?= $sGeneratorID ?>]',
'value': '<?= json_encode($arOptions) ?>',
'id': '<?= $sGeneratorID ?>'
}
}), BX.findParent(inputButton, {}));
} else {

BX.remove(inputOptions);

BX.prepend(BX.create('input', {
attrs: {
'type': 'hidden',
'class': 'options-input',
'name': '<?= $sPropertyName ?>[<?= $sGeneratorID ?>]',
'value': '<?= json_encode($arOptions) ?>',
'id': '<?= $sGeneratorID ?>'
}
}), BX.findParent(inputButton, {}));
}
});
window.YlabDdata.WindowEntityDataForm.Close();
</script>
<? } ?>
Loading

0 comments on commit 0d9dda8

Please sign in to comment.