8 isset(
$user) or require
$_SERVER[
'DOCUMENT_ROOT'] .
'/page/404.php';
9 $name = htmlspecialchars($_GET[
'name'], ENT_QUOTES);
12 <div
class=
"modal fade" id=
"<?= $basename ?>" tabindex=
"-1" data-backdrop=
"static" data-keyboard=
"false">
13 <div
class=
"modal-dialog modal-lg modal-dialog-centered" role=
"document">
14 <div
class=
"modal-content">
15 <div
class=
"modal-header">
16 <h5
class=
"modal-title"><i
class=
"fa fa-cubes"></i> Конструктор триггера модального окна</h5>
17 <button type=
"button" class=
"close" data-dismiss=
"modal" aria-label=
"Close">
18 <span aria-hidden=
"true">×</span>
21 <div
class=
"modal-body">
22 <form onsubmit=
"return false;">
23 <div
class=
"input-group input-group-sm">
24 <div
class=
"input-group-prepend w-50">
25 <span
class=
"input-group-text w-100">Тип тега</span>
27 <select name=
"tag" class=
"custom-select">
28 <option value=
"a"><a></option>
29 <option value=
"button"><button></option>
30 <option value=
"div"><div></option>
33 <div
class=
"input-group input-group-sm mt-2">
34 <div
class=
"input-group-prepend w-50">
35 <span
class=
"input-group-text w-100">Анкор</span>
37 <input type=
"text" name=
"anchor" class=
"form-control" value=
"Кнопка" placeholder=
"Анкор" autocomplete=
"off">
39 <div
class=
"input-group input-group-sm mt-2">
40 <div
class=
"input-group-prepend w-50">
41 <span
class=
"input-group-text w-100">Целевое окно</span>
43 <input type=
"text" name=
"name" class=
"form-control" value=
"#<?= $name ?>" placeholder=
"Имя действия" autocomplete=
"off" readonly>
45 <div
class=
"input-group input-group-sm mt-2">
46 <div
class=
"input-group-prepend w-50">
47 <span
class=
"input-group-text w-100">Callback функция</span>
49 <input type=
"text" name=
"callback" class=
"form-control" value=
"" placeholder=
"" autocomplete=
"off">
51 <ul
class=
"rounded bg-light-info border small mt-2 p-2 pl-4 mb-0">
52 <li>Можно добавить любые data-* аттрибуты, они все будут переданы в $_GET[*] переменных на скрипт обработчик</li>
53 <li>Если задана callback функция - она будет вызвана после добавления модального окна в DOM</li>
55 <div
class=
"position-relative">
56 <textarea name=
"result-button" class=
"mt-2 form-control p-1" rows=
"1" style=
"font-size:14px;"></textarea>
57 <a style=
"position:absolute;top:0;right:4px;" title=
"Копировать код" href=
"#"><i
class=
"fa fa-copy" aria-hidden=
"true"></i></a>
59 <div
class=
"position-relative" style=
"display:none;">
60 <textarea name=
"result-function" class=
"mt-2 form-control p-1" rows=
"7" style=
"font-size:14px;"></textarea>
61 <a style=
"position:absolute;top:0;right:4px;" title=
"Копировать код" href=
"#"><i
class=
"fa fa-copy" aria-hidden=
"true"></i></a>
70 function construct() {
71 let action = $(
'#<?= $basename ?> [name=name]').val().trim();
72 let code = $(
'<a class="btn btn-primary" data-toggle="modal" data-target="' + action +
'"></a>');
73 let anchor = $(
'#<?= $basename ?> [name=anchor]').val().trim();
75 let callback = $(
'#<?= $basename ?> [name=callback]').val().trim();
76 $(
'#<?= $basename ?> [name=result-function]').val(
'');
78 code.attr(
'data-callback', callback);
79 $(
'#<?= $basename ?> [name=result-function]').val(
'function ' + callback +
'() {\n $("#<?= $name ?> .modal-header").html("Replaced header");\n}');
80 $(
'#<?= $basename ?> [name=result-function]').parent().slideDown();
82 $(
'#<?= $basename ?> [name=result-function]').parent().slideUp();
85 code = code[0].outerHTML;
86 let tag = $(
'#<?= $basename ?> [name=tag]').val();
87 code = code.replace(/^<[a-z]+/,
'<' + tag);
88 code = code.replace(/[a-z]+>$/, tag +
'>');
90 $(
'#<?= $basename ?> [name=result-button]').val(code);
91 $(
'#<?= $basename ?> [name=result-button]').css({
94 $(
'#<?= $basename ?> [name=result-button]').css({
95 'height': ($(
'#<?= $basename ?> [name=result-button]')[0].scrollHeight + 3) +
'px'
100 $(
'#<?= $basename ?> form').on(
'input keyup', construct);
102 $(
'#<?= $basename ?> form').trigger(
'keyup');
105 $(
'#<?= $basename ?> textarea').next().click(
function(e) {
107 $(
this).prev().focus();
108 $(
this).prev().select();
109 document.execCommand(
'copy',
false);
110 successToast(
'Скопировано в буфер');
112 window.getSelection().removeAllRanges();
setcookie('FROM_UID', $uid, [ 'expires'=> time()+31536000, 'path'=> '/', 'domain'=> $_SERVER['HTTP_HOST'], 'secure'=> Wrong\Start\Env::$e->IS_SECURE, 'httponly'=> false, 'samesite'=> Wrong\Start\Env::$e->IS_SECURE ? 'None' :'Lax']) or setcookie('FROM_UID' $_SERVER['HTTP_HOST']