envy/project-tools

Tools for bitrix dev

dev-main 2022-03-22 11:14 UTC

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();