-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
144 changed files
with
10,292 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# Changelog | ||
|
||
## [Released] | ||
|
||
## [0.4.5] - 2018-05-04 | ||
### Added | ||
- Генератор текста LoremIpsum | ||
- Реализованы события загрузчика генераторов и сущности | ||
|
||
## [0.4.0] - 2018-04-30 | ||
### Added | ||
- Генератор привязки Highload элементов для пользовательского поля hlblock | ||
- Генератор для ORM полей Boolean, Enum | ||
- Генератор словарь для полей совместимых с типом string | ||
- Рефакторинг кода | ||
|
||
## [0.3.6] - 2018-04-29 | ||
### Added | ||
- Рефакторинг кода | ||
|
||
## [0.3.5] - 2018-04-25 | ||
### Added | ||
- Генерация ORM элементов | ||
- Генерация Highload элементов | ||
- Генераторы: Числа float, файлов в формате ОРМ, перечислений ORM | ||
|
||
## [0.3.0] - 2018-03-26 | ||
### Added | ||
- Добавлено описание и документация | ||
|
||
## [Unreleased] | ||
|
||
## [0.2.0] - 2018-03-23 | ||
### Added | ||
- Генерация элементов инфоблока | ||
- Генераторы раздела, элемента, списка | ||
- Доработан интерфейс администратора | ||
- Реализовано удаление профилей | ||
- Реализованы множественные типы данных у полей сущностей | ||
|
||
## [0.1.0] - 2018-03-19 | ||
|
||
### Added | ||
- Генерация пользователей | ||
- Генераторы чекбокса, даты, email, числа, пароля, изображение, строки, страна, пол, группа пользователя |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
## Установка | ||
``` | ||
$ cd local/modules | ||
$ git clone https://github.com/ylabio/ylab.ddata.git | ||
``` | ||
В папку `local/modules` будет склонирован репозиторий модуля, после этого, необходимо в панели администратора установить | ||
модуль: `Рабочий стол -> Marketplace -> Установленные решения`. | ||
|
||
|
||
## Bitrix модуль генерации демо данных | ||
|
||
Модуль ylab.ddata реализует генерацию сущностей Bitrix заполненых случайными данными. Модуль поможет при отладке | ||
публичной части сайта, API и в других ситуациях, когда необходимы сущности (ИБ, HL, Пользователи) заполненные тестовыми | ||
данными. | ||
|
||
Генерация производится на основе преднастроенного профиля в административном разделе. | ||
|
||
Из коробки доступны: | ||
* Сущности | ||
* Пользователь | ||
* Элемент инфоблока | ||
* Элемент highload-блока | ||
* Элемент ORM сущности | ||
|
||
Настройка профиля производится в разделе `Рабочий стол -> Сервисы -> Ylab Демо данные -> Профили сущностей`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +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: "Сохранить", | ||
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> | ||
<? } ?> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
<?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(); | ||
$objLoadUnits = new LoadUnits(); | ||
$arEntityUnits = $objLoadUnits->getEntityUnits(); | ||
$arPrepareRequest = $request->get('prepare'); | ||
$isValidEntityPrepareForm = false; | ||
if ($request->isPost() && !empty($arPrepareRequest['entity_id'])) { | ||
$entityIndex = array_search($arPrepareRequest['entity_id'], array_column($arEntityUnits, 'ID')); | ||
$class = $arEntityUnits[$entityIndex]['CLASS']; | ||
$entityPrepareForm = $class::getPrepareForm($request); | ||
$isValidEntityPrepareForm = $class::isValidPrepareForm($request); | ||
} | ||
} catch (\Exception $e) { | ||
$error = $e->getMessage(); | ||
} | ||
|
||
if (isset($error)) { | ||
CAdminMessage::ShowMessage([ | ||
"MESSAGE" => $error, | ||
"TYPE" => "ERROR", | ||
]); | ||
} | ||
|
||
?> | ||
<form action="<? echo $APPLICATION->GetCurPage(); ?>" method="post" id="WindowEntityPrepareForm"> | ||
<table class="adm-detail-content-table edit-table"> | ||
<tbody> | ||
<tr> | ||
<td width="40%" | ||
class="adm-detail-content-cell-l"><?= Loc::getMessage("YLAB_DDATA_ENTITY_PREPARE_FORM_FIELD_ENTITY_ID") ?></td> | ||
<td class="adm-detail-content-cell-r"> | ||
<select name="prepare[entity_id]" id="entity_id"> | ||
<option value="">-</option> | ||
<? foreach ($arEntityUnits as $entityUnit): ?> | ||
<option value="<?= $entityUnit['ID'] ?>" <?= ($arPrepareRequest['entity_id'] == $entityUnit['ID'] ? "selected" : "") ?>><?= $entityUnit['NAME'] ?></option> | ||
<? endforeach; ?> | ||
</select> | ||
</td> | ||
</tr> | ||
<? if (isset($entityPrepareForm) && !empty($entityPrepareForm)) { | ||
echo $entityPrepareForm; | ||
} ?> | ||
</tbody> | ||
</table> | ||
<script type="text/javascript"> | ||
BX.bind(BX('entity_id'), 'change', function () { | ||
window.YlabDdata.WindowEntityPrepareForm.PostParameters(); | ||
}); | ||
|
||
var saveBtn = { | ||
title: "Сохранить", | ||
id: "savebtn", | ||
name: "savebtn", | ||
className: "adm-btn-save", | ||
action: function () { | ||
window.location.replace("/bitrix/admin/ylab.ddata_entity_profile_edit.php?<?=http_build_query(['prepare'=> $arPrepareRequest]);?>") | ||
} | ||
}; | ||
|
||
window.YlabDdata.WindowEntityPrepareForm.SetButtons([<?=($isValidEntityPrepareForm ? "saveBtn," : "")?> BX.CDialog.prototype.btnCancel]); | ||
</script> | ||
</form> | ||
|
Oops, something went wrong.