envy / project-tools
Tools for bitrix dev
dev-main
2022-03-22 11:14 UTC
Requires
- php: >=7.1.0
- google/recaptcha: ^1.2
- phpoffice/phpspreadsheet: ^1.22
- phpoffice/phpword: ^0.18
This package is auto-updated.
Last update: 2024-04-22 16:09:40 UTC
README
init.php:
- (new ProjectTools\Captcha())->initScripts();
Ajax
init.php:
- \ProjectTools\Ajax\Events::init();
- \ProjectTools\Ajax\Catcher::addAjaxCatch('component_code_1', 'namespace:component.1');
- ...
component/template dir:
- create file ajax.php
component.php/result_modifier.php:
- \ProjectTools\Ajax\ComponentTools::initVariables($arResult, $arParams, $this, 'ajax_name');
template.php:
- <?=Custom\Ajax\ComponentTools::initJS($arResult["TOKEN"], $arResult["CLASS_NAME"], $templateName, $arResult["PARAMS_HASH"]);?>
- <script>
document.addEventListener('DOMContentLoaded', function() {
$(document).ready(function() {
let ajax = new Contr_Ajax('<?=$arResult['CLASS_NAME'];?>');
ajax.addEventListener('ajaxCallbackAction', function($element, data) { ... });
ajax.addEventListener('ajaxCallbackActionSuccess', function($element, data, settings, request) { ... });
ajax.addEventListener('ajaxCallbackActionFail', function($element, data) { ... });
});
});
</script>
script.js:
- let ajax = getAjaxSender('ajax_name');
if(!ajax || ajax.isSendProcessing())
return false;
ajax.setElement($form);
ajax.initData();
ajax.addRequest('KEY_1', 'value_1');
...
ajax.addRequest('KEY_N', 'value_N');
ajax.send();