editor.I18n.addMessages({ ru: { styleManager: { sectors: { 'general': 'Общие', 'dimension': 'Размер', 'typography': 'Типографика', 'decorations': 'Оформление', 'extra': 'Ещё больше', 'flex': 'Гибкий контейнер', }, properties: { 'background-repeat': 'Повторение', 'background-position': 'Позиция', 'width': 'Ширина', 'height': 'Высота', 'max-width': 'Макс. ширина', 'min-height': 'Мин. высота', 'margin': 'Отступ', 'padding': 'Внутр.отступ', 'font-family': 'Шрифт', 'font-size': 'Размер шрифта', 'font-weight': 'Толщина шрифта', 'color': 'Цвет текста', 'text-align': 'Вырав. текста', 'text-decoration': 'Оформ. текста', 'text-shadow': 'Текст. тень', 'opacity': 'Прозрачность', 'border-radius': 'Радиус скруг.', 'border': 'Граница', 'box-shadow': 'Тень блока', 'background': 'Фон', } }, blockManager: { labels: { 'responsive-image': 'Адаптивное изображение', 'centered-text': 'Центрированный текст', 'basic': 'Основные' } }, panels: { buttons: { 'open-code': 'Открыть код', 'gjs-open-import-webpage': 'Импортировать', } }, commands: { 'gjs-open-import-webpage': { title: 'Импортировать шаблон', label: '
Вставьте здесь ваш HTML/CSS и нажмите Импортировать
', } }, deviceManager: { devices: { 'desktop': 'ПК', 'tablet': 'Планшет', 'mobileLandscape': 'Тел. альбом', 'mobilePortrait': 'Тел. книга' } } } }); // Установка русского языка по умолчанию editor.I18n.setLocale('ru'); // Удаление ненужных блоков const unwantedBlocks = ['row', 'link', 'blogs']; unwantedBlocks.forEach(blockId => { editor.BlockManager.remove(blockId); }); // Добавление блока адаптивной картинки editor.BlockManager.add('responsive-image', { label: editor.I18n.t('blockManager.labels.responsive-image'), content: { type: 'image', style: { display: 'block', margin: 'auto', maxWidth: '100%', height: 'auto', objectFit: 'cover' }, attributes: { alt: 'Responsive Image' } }, attributes: { class: 'fa fa-image' } }); // Добавление блока центрированного текста editor.BlockManager.add('centered-text', { label: editor.I18n.t('blockManager.labels.centered-text'), content: { type: 'text', style: { textAlign: 'center' }, content: 'Centered Text' }, attributes: { class: 'fa fa-align-center' } }); // Создаем новый тип компонента для настройки подписной - 1 editor.Components.addType('avp_grup_v1-settings-block', { model: { defaults: { // HTML-код пустого блока с постоянным идентификатором content: '
', // Скрипт для обработки блока (если нужно) script: function(props) { window.avp = props.avp; window.grup = props.grup; window.red_url = props.red_url; window.hook = props.hook; // Теперь это будет булево значение (true/false) const initBlock = () => { console.log('Menu settings block initialized with props:', { avp, grup, red_url, hook }); }; const loadScript = (src, callback) => { const script = document.createElement('script'); script.src = src; script.onload = callback; document.body.appendChild(script); }; // Загружаем необходимые скрипты динамически if (typeof vkBridge === 'undefined') { loadScript('https://unpkg.com/@vkontakte/vk-bridge/dist/browser.min.js', () => { console.log('VK Bridge loaded!'); initBlock(); }); } else { initBlock(); } loadScript('https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/avp_grup_v1.js', () => { console.log('Custom script loaded!'); }); }, // Свойства, которые будут передаваться в скрипт 'script-props': ['avp', 'grup', 'red_url', 'hook'], // Настройки для изменения URL отправки traits: [ { type: 'text', name: 'avp', label: 'AVP', changeProp: true }, { type: 'text', name: 'grup', label: 'GRUP', changeProp: true }, { type: 'text', name: 'red_url', label: 'RED_URL', changeProp: true }, { type: 'checkbox', // Изменено на checkbox name: 'hook', label: 'HOOK', changeProp: true } ] } } }); editor.Blocks.add('avp_grup_v1-settings-block-block', { label: ` avp_grup_v1`, content: { type: 'avp_grup_v1-settings-block' }, category: 'ВК - Автопилот', // Добавляем категорию "Автопилот - ВК" }); editor.Components.addType('avp_form_v1-settings-block', { model: { defaults: { content: '
', script: function(props) { window.avp = props.avp; window.grup = props.grup; window.red_url = props.red_url; window.pol_a = props.pol_a; window.pol_b = props.pol_b; window.new_w = props.new_w; const initBlock = () => { console.log('Empty block initialized with props:', { avp, grup, red_url, pol_a, pol_b, new_w }); }; const loadScript = (src, callback) => { const script = document.createElement('script'); script.src = src; script.onload = callback; document.body.appendChild(script); }; if (typeof vkBridge === 'undefined') { loadScript('https://unpkg.com/@vkontakte/vk-bridge/dist/browser.min.js', () => { console.log('VK Bridge loaded!'); initBlock(); }); } else { initBlock(); } if (typeof VK === 'undefined') { loadScript('https://vk.com/js/api/openapi.js?169', () => { console.log('VK Open API loaded!'); }); } loadScript('https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/avp_form.js', () => { console.log('Custom script loaded!'); }); }, 'script-props': ['avp', 'grup', 'red_url', 'pol_a', 'pol_b', 'new_w'], traits: [ { type: 'text', name: 'avp', label: 'AVP', changeProp: true }, { type: 'text', name: 'grup', label: 'GRUP', changeProp: true }, { type: 'text', name: 'red_url', label: 'RED_URL', changeProp: true }, { type: 'text', name: 'pol_a', label: 'POL_A', changeProp: true }, { type: 'text', name: 'pol_b', label: 'POL_B', changeProp: true }, { type: 'checkbox', // Изменено на checkbox name: 'new_w', label: 'NEW_W', // Обновлен лейбл changeProp: true } ] } } }); editor.Blocks.add('avp_form_v1-settings-block-block', { label: ` avp_form_v1`, content: { type: 'avp_form_v1-settings-block' }, category: 'ВК - Автопилот', // Добавляем категорию "Автопилот - ВК" }); editor.Components.addType('avp_kol-settings-block', { model: { defaults: { content: '
', script: function(props) { window.idSpun = props.idSpun; window.but_text = props.but_text; window.color_but = props.color_but; window.sector = JSON.parse(props.sector); // Парсим JSON строку сектора window.delay = parseInt(props.delay, 10); // Парсим числовое значение delay window.avp = props.avp; window.grup = props.grup; window.red_url = props.red_url; window.new_w = props.new_w; window.hook = props.hook; const initBlock = () => { console.log('Empty block initialized with props:', { idSpun, but_text, color_but, sector, delay, avp, grup, red_url, new_w, hook }); console.log('Parsed sector:', sector); // Выводим сектор в консоль }; const loadScript = (src, callback) => { const script = document.createElement('script'); script.src = src; script.onload = callback; document.body.appendChild(script); }; if (typeof vkBridge === 'undefined') { loadScript('https://unpkg.com/@vkontakte/vk-bridge/dist/browser.min.js', () => { console.log('VK Bridge loaded!'); initBlock(); }); } else { initBlock(); } if (typeof VK === 'undefined') { loadScript('https://vk.com/js/api/openapi.js?169', () => { console.log('VK Open API loaded!'); }); } loadScript('https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/avp_koleso_v1.js', () => { console.log('Custom script loaded!'); }); }, 'script-props': ['idSpun', 'but_text', 'color_but', 'sector', 'delay', 'avp', 'grup', 'red_url', 'pol_a', 'pol_b', 'new_w'], traits: [ { type: 'text', name: 'idSpun', label: 'IDSPUN', changeProp: true }, { type: 'text', name: 'but_text', label: 'BUT_TEXT', changeProp: true }, { type: 'color', name: 'color_but', label: 'COLOR_BUT', changeProp: true }, { type: 'text', name: 'sector', label: 'SECTORS', changeProp: true }, { type: 'number', // Изменено на number name: 'delay', label: 'DELAY', changeProp: true, min: 100, // Минимальное значение max: 10000, // Минимальное значение step: 100, // Шаг изменения default: 500 // Значение по умолчанию }, { type: 'text', name: 'avp', label: 'AVP', changeProp: true }, { type: 'text', name: 'grup', label: 'GRUP', changeProp: true }, { type: 'text', name: 'red_url', label: 'RED_URL', changeProp: true }, { type: 'checkbox', // Изменено на checkbox name: 'new_w', label: 'NEW_W', // Обновлен лейбл changeProp: true }, { type: 'checkbox', // Изменено на checkbox name: 'hook', label: 'HOOK', changeProp: true } ] } } }); editor.Blocks.add('avp_kol-settings-block-block', { label: ` avp_kol`, content: { type: 'avp_kol-settings-block' }, category: 'ВК - Автопилот', // Добавляем категорию "Автопилот - ВК" }); editor.Components.addType('avp_kol_s-settings-block', { model: { defaults: { content: '
', script: function(props) { window.idSpun = props.idSpun; window.but_text = props.but_text; window.color_but = props.color_but; window.sector = JSON.parse(props.sector); // Парсим JSON строку сектора window.delay = parseInt(props.delay, 10); // Парсим числовое значение delay window.sound_r = props.sound_r; window.sound_s = props.sound_s; window.avp = props.avp; window.grup = props.grup; window.red_url = props.red_url; window.new_w = props.new_w; window.hook = props.hook; const initBlock = () => { console.log('Empty block initialized with props:', { idSpun, but_text, color_but, sector, delay, sound_r, sound_s, avp, grup, red_url, new_w, hook }); console.log('Parsed sector:', sector); // Выводим сектор в консоль }; const loadScript = (src, callback) => { const script = document.createElement('script'); script.src = src; script.onload = callback; document.body.appendChild(script); }; if (typeof vkBridge === 'undefined') { loadScript('https://unpkg.com/@vkontakte/vk-bridge/dist/browser.min.js', () => { console.log('VK Bridge loaded!'); initBlock(); }); } else { initBlock(); } if (typeof VK === 'undefined') { loadScript('https://vk.com/js/api/openapi.js?169', () => { console.log('VK Open API loaded!'); }); } loadScript('https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/avp_kol_vk_sav.js', () => { console.log('Custom script loaded!'); }); }, 'script-props': ['idSpun', 'but_text', 'color_but', 'sector', 'delay', 'sound_r', 'sound_s', 'avp', 'grup', 'red_url', 'pol_a', 'pol_b', 'new_w'], traits: [ { type: 'text', name: 'idSpun', label: 'IDSPUN', changeProp: true }, { type: 'text', name: 'but_text', label: 'BUT_TEXT', changeProp: true }, { type: 'color', name: 'color_but', label: 'COLOR_BUT', changeProp: true }, { type: 'text', name: 'sector', label: 'SECTORS', changeProp: true }, { type: 'number', // Изменено на number name: 'delay', label: 'DELAY', changeProp: true, min: 100, // Минимальное значение max: 10000, // Минимальное значение step: 100, // Шаг изменения default: 500 // Значение по умолчанию }, { type: 'text', name: 'sound_r', label: 'SAUND_R', changeProp: true }, { type: 'text', name: 'sound_s', label: 'SAUND_S', changeProp: true }, { type: 'text', name: 'avp', label: 'AVP', changeProp: true }, { type: 'text', name: 'grup', label: 'GRUP', changeProp: true }, { type: 'text', name: 'red_url', label: 'RED_URL', changeProp: true }, { type: 'checkbox', // Изменено на checkbox name: 'new_w', label: 'NEW_W', // Обновлен лейбл changeProp: true }, { type: 'checkbox', // Изменено на checkbox name: 'hook', label: 'HOOK', changeProp: true } ] } } }); editor.Blocks.add('avp_kol_s-settings-block-block', { label: ` avp_kol_s`, content: { type: 'avp_kol_s-settings-block' }, category: 'ВК - Автопилот', // Добавляем категорию "Автопилот - ВК" }); // Создаем новый тип компонента для настройки Регистрации с сайта через АП editor.Components.addType('avp-reg_site-settings-block', { model: { defaults: { // HTML-код пустого блока с постоянным идентификатором content: '
', // Скрипт для обработки блока (если нужно) script: function(props) { window.avp = props.avp; window.app_id = props.app_id; const initBlock = () => { console.log('Menu settings block initialized with props:', { avp, app_id}); }; const loadScript = (src, callback) => { const script = document.createElement('script'); script.src = src; script.onload = callback; document.body.appendChild(script); }; // Загружаем необходимые скрипты динамически if (typeof VK === 'undefined') { loadScript('https://vk.com/js/api/openapi.js?169', () => { console.log('VK Open API loaded!'); initBlock(); }); } else { initBlock(); } if (typeof $ === 'undefined') { loadScript('https://code.jquery.com/jquery-3.6.0.min.js', () => { console.log('VK Open API loaded!'); }); } loadScript('https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/avp_site_grup.js', () => { console.log('Custom script loaded!'); }); }, // Свойства, которые будут передаваться в скрипт 'script-props': ['avp', 'app_id'], // Настройки для изменения URL отправки traits: [ { type: 'text', name: 'avp', label: 'AVP', changeProp: true }, { type: 'text', name: 'app_id', label: 'APP_ID', changeProp: true } ] } } }); editor.Blocks.add('avp-reg_site-settings-block-block', { label: ` avp_reg_site`, content: { type: 'avp-reg_site-settings-block' }, category: 'ВК - Автопилот', // Добавляем категорию "Автопилот - ВК" }); // Создаем новый тип компонента для настройки editor.Components.addType('avp-look_1-settings-block', { model: { defaults: { // HTML-код пустого блока с постоянным идентификатором content: '
', // Скрипт для обработки блока (если нужно) script: function(props) { window.avp = props.avp; window.grup = props.grup; window.hook = props.hook; // Теперь это будет булево значение (true/false) const initBlock = () => { console.log('Menu settings block initialized with props:', { avp, grup, hook }); }; const loadScript = (src, callback) => { const script = document.createElement('script'); script.src = src; script.onload = callback; document.body.appendChild(script); }; // Загружаем необходимые скрипты динамически if (typeof vkBridge === 'undefined') { loadScript('https://unpkg.com/@vkontakte/vk-bridge/dist/browser.min.js', () => { console.log('VK Bridge loaded!'); initBlock(); }); } else { initBlock(); } if (typeof VK === 'undefined') { loadScript('https://vk.com/js/api/openapi.js?169', () => { console.log('VK Open API loaded!'); }); } if (typeof $ === 'undefined') { loadScript('https://code.jquery.com/jquery-3.6.0.min.js', () => { console.log('VK Open API loaded!'); }); } loadScript('https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/avp_look_v1.js', () => { console.log('Custom script loaded!'); }); }, // Свойства, которые будут передаваться в скрипт 'script-props': ['avp', 'grup', 'hook'], // Настройки для изменения URL отправки traits: [ { type: 'text', name: 'avp', label: 'AVP', changeProp: true }, { type: 'text', name: 'grup', label: 'GRUP', changeProp: true }, { type: 'checkbox', // Изменено на checkbox name: 'hook', label: 'HOOK', changeProp: true } ] } } }); editor.Blocks.add('avp-look_1-settings-block-block', { label: ` avp_lock_v1`, content: { type: 'avp-look_1-settings-block' }, category: 'ВК - Автопилот', // Добавляем категорию "Автопилот - ВК" }); // МЕНЮ editor.Components.addType('menu-settings-block', { model: { defaults: { // HTML-код пустого блока с постоянным идентификатором content: '
', // Скрипт для обработки блока (если нужно) script: function(props) { // Функция для загрузки скрипта const loadScript = (src, callback) => { const script = document.createElement('script'); script.src = src; script.onload = callback; document.body.appendChild(script); }; window.home_url = props.home_url; // Добавляем home_url window.but_url = JSON.parse(props.but_url); // Парсим JSON строку сектора const initBlock = () => { console.log('Menu settings block initialized with props:', { home_url, but_url }); }; // Проверяем, загружен ли уже jQuery if (typeof $ === 'undefined') { // Загружаем библиотеку jQuery loadScript('https://code.jquery.com/jquery-3.6.0.min.js', () => { console.log('jQuery loaded!'); // Загружаем необходимый скрипт динамически loadScript('https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/menu_vk.js', () => { console.log('Custom script loaded!'); initBlock(); }); }); } else { console.log('jQuery is already loaded!'); // Загружаем необходимый скрипт динамически loadScript('https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/menu_vk.js', () => { console.log('Custom script loaded!'); initBlock(); }); } }, // Добавляем traits traits: [ { type: 'text', name: 'home_url', label: 'home_url', changeProp: true }, { type: 'text', name: 'but_url', label: 'but_url', changeProp: true } ], // Добавляем свойство 'script-props' 'script-props': ['home_url', 'but_url'] } } }); // Создаем блок для компонента настройки меню editor.Blocks.add('menu-settings-block-block', { label: `
menu-set
`, content: { type: 'menu-settings-block' }, }); // APPS С ДОСТУПОМ editor.Components.addType('apps-look-settings-block', { model: { defaults: { content: '
', script: function(props) { window.w_a_url = props.w_a_url; window.vk_a_group = props.vk_a_group; window.order_a = props.order_a; window.not_a_g_url = props.not_a_g_url; window.not_a_o_url = props.not_a_o_url; const initBlock = () => { console.log('18CoastCustoms'); console.log('GB_page_look'); }; const loadScript = (src, callback) => { const script = document.createElement('script'); script.src = src; script.onload = callback; document.body.appendChild(script); }; // Загружаем необходимые скрипты динамически if (typeof vkBridge === 'undefined') { loadScript('https://unpkg.com/@vkontakte/vk-bridge/dist/browser.min.js', () => { console.log('Библиотеки VK загружены!'); }); } if (typeof CryptoJS === 'undefined') { loadScript('https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js', () => { console.log('Библиотеки CryptoJS загружены!'); }); } if (typeof $ === 'undefined') { loadScript('https://code.jquery.com/jquery-3.6.0.min.js', () => { console.log('Библиотеки jQuery загружены!'); }); } loadScript('https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/apps_look_v1', () => { console.log('Кастомные скрипты загружены!'); initBlock(); // Вызываем initBlock после загрузки всех скриптов }); }, 'script-props': ['w_a_url', 'vk_a_group', 'order_a', 'not_a_g_url', 'not_a_o_url'], traits: [ { type: 'text', name: 'w_a_url', label: 'W-URL', changeProp: true }, { type: 'text', name: 'vk_a_group', label: 'VK-Group', changeProp: true }, { type: 'text', name: 'order_a', label: 'Order', changeProp: true }, { type: 'text', name: 'not_a_g_url', label: 'Not-Group-URL', changeProp: true }, { type: 'text', name: 'not_a_o_url', label: 'Not-Order-URL', changeProp: true } ] } } }); editor.Blocks.add('apps-look-settings-block-block', { label: `
Apps-look-set
`, content: { type: 'apps-look-settings-block' }, category: 'ВК - Доступы', }); // СТРАНИЦА С ДОСТУПОМ editor.Components.addType('page-look-settings-block', { model: { defaults: { content: '
', script: function(props) { window.w_p_url = props.w_p_url; window.apps_p_id = props.apps_p_id; window.vk_p_group = props.vk_p_group; window.order_p = props.order_p; window.not_p_g_url = props.not_p_g_url; window.not_p_o_url = props.not_p_o_url; const initBlock = () => { console.log('18CoastCustoms'); console.log('GB_page_look'); }; const loadScript = (src, callback) => { const script = document.createElement('script'); script.src = src; script.onload = callback; document.body.appendChild(script); }; // Загружаем необходимые скрипты динамически if (typeof vkBridge === 'undefined') { loadScript('https://unpkg.com/@vkontakte/vk-bridge/dist/browser.min.js', () => { console.log('Библиотеки VK загружены!'); }); } if (typeof CryptoJS === 'undefined') { loadScript('https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js', () => { console.log('Библиотеки CryptoJS загружены!'); }); } if (typeof $ === 'undefined') { loadScript('https://code.jquery.com/jquery-3.6.0.min.js', () => { console.log('Библиотеки jQuery загружены!'); }); } loadScript('https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/page_look_v1.js', () => { console.log('Кастомные скрипты загружены!'); initBlock(); // Вызываем initBlock после загрузки всех скриптов }); }, 'script-props': ['w_p_url', 'apps_p_id', 'vk_p_group', 'order_p', 'not_p_g_url', 'not_p_o_url'], traits: [ { type: 'text', name: 'w_p_url', label: 'W-URL', changeProp: true }, { type: 'text', name: 'apps_p_id', label: 'Apps_ID', changeProp: true }, { type: 'text', name: 'vk_p_group', label: 'VK-Group', changeProp: true }, { type: 'text', name: 'order_p', label: 'Order', changeProp: true }, { type: 'text', name: 'not_p_g_url', label: 'Not-Group-URL', changeProp: true }, { type: 'text', name: 'not_p_o_url', label: 'Not-Order-URL', changeProp: true } ] } } }); editor.Blocks.add('page-look-settings-block-block', { label: `
page-look-set
`, content: { type: 'page-look-settings-block' }, category: 'ВК - Доступы', }); //МЕНЮ С ДОСТУПОМ editor.Components.addType('menu-look-settings-block', { model: { defaults: { // HTML-код пустого блока с постоянным идентификатором content: '', // Скрипт для обработки блока (если нужно) script: function(props) { window.w_url = props.w_url; window.key_auth = props.key_auth; window.vk_group = props.vk_group; window.order_m = props.order_m; window.not_g_url = props.not_g_url; window.not_o_url = props.not_o_url; window.home_url = props.home_url; window.list_url = JSON.parse(props.list_url); // Парсим JSON строку сектора const initBlock = () => { console.log('18CoastCustoms'); console.log('GB_menu_look_v2_14'); }; const loadScript = (src, callback) => { const script = document.createElement('script'); script.src = src; script.onload = callback; document.body.appendChild(script); }; // Загружаем необходимые скрипты динамически if (typeof vkBridge === 'undefined') { loadScript('https://unpkg.com/@vkontakte/vk-bridge/dist/browser.min.js', () => { console.log('Библиотеки VK загружены'); }); } if (typeof CryptoJS === 'undefined') { loadScript('https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js', () => { console.log('CryptoJS loaded!'); }); } if (typeof $ === 'undefined') { loadScript('https://code.jquery.com/jquery-3.6.0.min.js', () => { }); } loadScript('https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/menu_look_v1.js', () => { initBlock(); console.log('Кастомные скрипты загружены'); }); }, // Свойства, которые будут передаваться в скрипт 'script-props': ['w_url', 'key_auth', 'vk_group', 'order_m', 'not_g_url', 'not_o_url', 'home_url', 'list_url'], // Настройки для изменения URL отправки traits: [ { type: 'text', name: 'w_url', label: 'W-URL', changeProp: true }, { type: 'text', name: 'key_auth', label: 'Key-Auth-Crypto', changeProp: true }, { type: 'text', name: 'vk_group', label: 'VK-Group', changeProp: true }, { type: 'text', name: 'order_m', label: 'Order', changeProp: true }, { type: 'text', name: 'not_g_url', label: 'Not-Group-URL', changeProp: true }, { type: 'text', name: 'not_o_url', label: 'Not-Order-URL', changeProp: true }, { type: 'text', name: 'home_url', label: 'Home-URL-Crypto', changeProp: true }, { type: 'text', name: 'list_url', label: 'Menu-URL-Crypto', changeProp: true } ] } } }); editor.Blocks.add('menu-look-settings-block-block', { label: `
menu-look-set
`, content: { type: 'menu-look-settings-block' }, category: 'ВК - Доступы', // Добавляем категорию "Автопилот - ВК" }); // Сенлера КНОПКА с ВК-ИД editor.Components.addType('senler_btn_v1-settings-block', { model: { defaults: { content: '
', script: function(props) { window.w_url = props.w_url; window.vk_grup = props.vk_grup; window.s_grup = props.s_grup; window.red_on = props.red_on; window.on_url = props.on_url; window.ups = props.ups; window.clarity_on = props.clarity_on; window.clarity_id = props.clarity_id; window.clarity_ses = props.clarity_ses; window.clarity_tar = props.clarity_tar; window.funnel = props.funnel; window.clarity_ev = props.clarity_ev; const initBlock = () => { console.log('18CoastCustoms'); console.log('GB_page_look'); }; const loadScript = (src, callback) => { const script = document.createElement('script'); script.src = src; script.onload = callback; document.body.appendChild(script); }; if (typeof vkBridge === 'undefined') { loadScript('https://unpkg.com/@vkontakte/vk-bridge/dist/browser.min.js', () => { console.log('VK Bridge loaded!'); }); } if (typeof $ === 'undefined') { loadScript('https://code.jquery.com/jquery-3.6.0.min.js', () => { console.log('jquery loaded!'); }); } loadScript('https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/senler_btn_v1.js', () => { initBlock(); console.log('Custom script loaded!'); }); }, 'script-props': ['w_url', 'vk_grup', 's_grup', 'red_on', 'on_url', 'ups', 'clarity_on', 'clarity_id', 'clarity_ses', 'clarity_tar', 'funnel', 'clarity_ev'], traits: [ { type: 'text', name: 'w_url', label: 'W_URL', changeProp: true }, { type: 'text', name: 'vk_grup', label: 'VK_GRUP', changeProp: true }, { type: 'text', name: 's_grup', label: 'S_GRUP', changeProp: true }, { type: 'checkbox', // Изменено на checkbox name: 'red_on', label: 'Redirect + User_ID', changeProp: true }, { type: 'text', name: 'on_url', label: 'Redirect-URL', changeProp: true }, { type: 'text', name: 'ups', label: 'Parameter UPS', changeProp: true }, { type: 'checkbox', // Изменено на checkbox name: 'clarity_on', label: 'Clarity Analytics', changeProp: true }, { type: 'text', name: 'clarity_id', label: 'Script Key', changeProp: true }, { type: 'text', name: 'clarity_ses', label: 'Session Name', changeProp: true }, { type: 'text', name: 'clarity_tar', label: 'Page Name', changeProp: true }, { type: 'text', name: 'funnel', label: 'Funnel Stage', changeProp: true }, { type: 'text', name: 'clarity_ev', label: 'Button Event', changeProp: true } ] } } }); editor.Blocks.add('senler_form_btn_v1-settings-block-block', { label: ` senler_form_v Button_v1`, content: { type: 'senler_btn_v1-settings-block' }, category: 'ВК - Сенлер', // Добавляем категорию "Сенлер - ВК" }); // Сенлера КНОПКА с ВК-ИД и параметрами пользователя editor.Components.addType('senler_btn_ud_v1-settings-block', { model: { defaults: { content: '
', script: function(props) { window.w_url = props.w_url; window.vk_grup = props.vk_grup; window.s_grup = props.s_grup; window.red_on = props.red_on; window.on_url = props.on_url; window.ups = props.ups; window.clarity_on = props.clarity_on; window.clarity_id = props.clarity_id; window.clarity_ses = props.clarity_ses; window.clarity_tar = props.clarity_tar; window.funnel = props.funnel; window.clarity_ev = props.clarity_ev; const initBlock = () => { console.log('18CoastCustoms'); console.log('GB_page_look'); }; const loadScript = (src, callback) => { const script = document.createElement('script'); script.src = src; script.onload = callback; document.body.appendChild(script); }; if (typeof vkBridge === 'undefined') { loadScript('https://unpkg.com/@vkontakte/vk-bridge/dist/browser.min.js', () => { console.log('VK Bridge loaded!'); }); } if (typeof $ === 'undefined') { loadScript('https://code.jquery.com/jquery-3.6.0.min.js', () => { console.log('jquery loaded!'); }); } loadScript('https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/senler_btn_ud_v1.js', () => { initBlock(); console.log('Custom script loaded!'); }); }, 'script-props': ['w_url', 'vk_grup', 's_grup', 'red_on', 'on_url', 'ups', 'clarity_on', 'clarity_id', 'clarity_ses', 'clarity_tar', 'funnel', 'clarity_ev'], traits: [ { type: 'text', name: 'w_url', label: 'W_URL', changeProp: true }, { type: 'text', name: 'vk_grup', label: 'VK_GRUP', changeProp: true }, { type: 'text', name: 's_grup', label: 'S_GRUP', changeProp: true }, { type: 'checkbox', // Изменено на checkbox name: 'red_on', label: 'Redirect + User_ID', changeProp: true }, { type: 'text', name: 'on_url', label: 'Redirect-URL', changeProp: true }, { type: 'text', name: 'ups', label: 'Parameter UPS', changeProp: true }, { type: 'checkbox', // Изменено на checkbox name: 'clarity_on', label: 'Clarity Analytics', changeProp: true }, { type: 'text', name: 'clarity_id', label: 'Script Key', changeProp: true }, { type: 'text', name: 'clarity_ses', label: 'Session Name', changeProp: true }, { type: 'text', name: 'clarity_tar', label: 'Page Name', changeProp: true }, { type: 'text', name: 'funnel', label: 'Funnel Stage', changeProp: true }, { type: 'text', name: 'clarity_ev', label: 'Button Event', changeProp: true } ] } } }); editor.Blocks.add('senler_form_btn_ud_v1-settings-block-block', { label: ` senler_form_v Button #user dats_v1`, content: { type: 'senler_btn_ud_v1-settings-block' }, category: 'ВК - Сенлер', // Добавляем категорию "Сенлер - ВК" }); // Создаем новый тип компонента для настройки формы для Сенлера editor.Components.addType('senler_form_v1-settings-block', { model: { defaults: { content: '
', script: function(props) { window.w_url = props.w_url; window.vk_grup = props.vk_grup; window.s_grup = props.s_grup; window.red_on = props.red_on; window.on_url = props.on_url; window.ups = props.ups; window.clarity_on = props.clarity_on; window.clarity_id = props.clarity_id; window.clarity_ses = props.clarity_ses; window.clarity_tar = props.clarity_tar; window.funnel = props.funnel; window.clarity_ev = props.clarity_ev; const initBlock = () => { // console.log('Empty block initialized with props:', { w_url, vk_grup, s_grup, on_url, off_url }); }; const loadScript = (src, callback) => { const script = document.createElement('script'); script.src = src; script.onload = callback; document.body.appendChild(script); }; if (typeof vkBridge === 'undefined') { loadScript('https://unpkg.com/@vkontakte/vk-bridge/dist/browser.min.js', () => { console.log('VK Bridge loaded!'); }); } if (typeof $ === 'undefined') { loadScript('https://code.jquery.com/jquery-3.6.0.min.js', () => { console.log('jquery loaded!'); }); } loadScript('https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/senler_form_v1.js', () => { initBlock(); console.log('Custom script loaded!'); }); }, 'script-props': ['w_url', 'vk_grup', 's_grup', 'red_on', 'on_url', 'ups', 'clarity_on', 'clarity_id', 'clarity_ses', 'clarity_tar', 'funnel', 'clarity_ev'], traits: [ { type: 'text', name: 'w_url', label: 'W_URL', changeProp: true }, { type: 'text', name: 'vk_grup', label: 'VK_GRUP', changeProp: true }, { type: 'text', name: 's_grup', label: 'S_GRUP', changeProp: true }, { type: 'checkbox', // Изменено на checkbox name: 'red_on', label: 'Redirect + User_ID', changeProp: true }, { type: 'text', name: 'on_url', label: 'Redirect-URL', changeProp: true }, { type: 'text', name: 'ups', label: 'Parameter UPS', changeProp: true }, { type: 'checkbox', // Изменено на checkbox name: 'clarity_on', label: 'Clarity Analytics', changeProp: true }, { type: 'text', name: 'clarity_id', label: 'Script Key', changeProp: true }, { type: 'text', name: 'clarity_ses', label: 'Session Name', changeProp: true }, { type: 'text', name: 'clarity_tar', label: 'Page Name', changeProp: true }, { type: 'text', name: 'funnel', label: 'Funnel Stage', changeProp: true }, { type: 'text', name: 'clarity_ev', label: 'Button Event', changeProp: true } ] } } }); editor.Blocks.add('senler_form_v1-settings-block-block', { label: ` senler_form_v Form_v1`, content: { type: 'senler_form_v1-settings-block' }, category: 'ВК - Сенлер', // Добавляем категорию "Сенлер - ВК" }); // Создаем новый тип компонента для настройки подписной - Анти-копир editor.Components.addType('anti_copy-settings-block', { model: { defaults: { // HTML-код пустого блока с постоянным идентификатором content: '
', // Скрипт для обработки блока (если нужно) script: function(props) { const initBlock = () => { console.log('Menu settings block initialized'); // Здесь можно добавить логику инициализации блока }; const loadScript = (src, callback) => { const script = document.createElement('script'); script.src = src; script.onload = callback; document.body.appendChild(script); }; // Загружаем необходимые скрипты динамически if (typeof anti_copy === 'undefined') { loadScript('https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/anti_copy.js', () => { console.log('avp_grup_v1 loaded!'); initBlock(); }); } else { initBlock(); } }, // Свойства, которые будут передаваться в скрипт 'script-props': [], // Настройки для изменения URL отправки traits: [] } } }); editor.Blocks.add('anti_copy-settings-block-block', { label: ` anti_copy`, content: { type: 'anti_copy-settings-block' }, category: 'Разное', // Добавляем категорию "Разное" }); editor.Components.addType('clarity-settings-block', { model: { defaults: { // HTML-код пустого блока с постоянным идентификатором content: '
', // Скрипт для обработки блока (если нужно) script: function(props) { window.clarity_id = props.clarity_id; const initBlock = () => { console.log('clarity initialized'); // Здесь можно добавить логику инициализации блока }; const loadScript = (src, callback) => { const script = document.createElement('script'); script.src = src; script.onload = callback; document.body.appendChild(script); }; // Загружаем необходимые скрипты динамически if (typeof clarity === 'undefined') { loadScript('https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/clarity.js', () => { console.log('clarity loaded!'); initBlock(); }); } else { initBlock(); } }, // Свойства, которые будут передаваться в скрипт 'script-props': ['clarity_id'], // Настройки для изменения URL отправки traits: [ { type: 'text', name: 'clarity_id', label: 'Clarity ID', changeProp: true } ] } } }); editor.Blocks.add('clarity-settings-block-block', { label: ` clarity`, content: { type: 'clarity-settings-block' }, category: 'Аналитика', // Добавляем категорию "Разное" }); // Создаем блок настроек видеоплеера editor.Blocks.add('video-player-settings-block', { label: `
player-set
`, content: { type: 'video-player-settings', resizable: { // Устанавливаем ресайз по всем направлениям tl: 1, // Top left tc: 1, // Top center tr: 1, // Top right cl: 1, // Center left cr: 1, // Center right bl: 1, // Bottom left bc: 1, // Bottom center br: 1 // Bottom right }, attributes: { id: 'player' }, style: { width: '480px', height: '270px', margin: '0 auto', position: 'relative', top: '0', display: 'block' } } }); // Создаем новый тип компонента для настроек видеоплеера editor.Components.addType('video-player-settings', { model: { defaults: { // HTML-код блока настроек видеоплеера content: '
', // Скрипт для обработки блока (если нужно) script: function(props) { window.vid_list = props.vid_list; console.log('Video player settings initialized with vid_list:', vid_list); // Подключение указанных скриптов const loadScriptToHead = (src, callback) => { const script = document.createElement('script'); script.src = src; script.onload = callback; document.head.appendChild(script); }; const loadScriptToBody = (src, callback) => { const script = document.createElement('script'); script.src = src; script.onload = callback; document.body.appendChild(script); }; const library = props.library; let playerjsSrc; if (library === '1') { playerjsSrc = 'https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/p1/playerjs.js'; } else if (library === '2') { playerjsSrc = 'https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/p2/playerjs.js'; } else if (library === '3') { playerjsSrc = 'https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/p3/playerjs.js'; } else if (library === '4') { playerjsSrc = 'https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/p4/playerjs.js'; } else if (library === '5') { playerjsSrc = 'https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/p5/playerjs.js'; } else if (library === '6') { playerjsSrc = 'https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/p6/playerjs.js'; } else if (library === '7') { playerjsSrc = 'https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/p7/playerjs.js'; } else if (library === '8') { playerjsSrc = 'https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/p8/playerjs.js'; } else if (library === '9') { playerjsSrc = 'https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/p9/playerjs.js'; } else if (library === '10') { playerjsSrc = 'https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/p10/playerjs.js'; } else if (library === '11') { playerjsSrc = 'https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/p11/playerjs.js'; } else if (library === '12') { playerjsSrc = 'https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/p12/playerjs.js'; } else if (library === '13') { playerjsSrc = 'https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/p13/playerjs.js'; } else if (library === '14') { playerjsSrc = 'https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/p14/playerjs.js'; } else if (library === '15') { playerjsSrc = 'https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/p15/playerjs.js'; } if (playerjsSrc) { loadScriptToHead(playerjsSrc, () => { console.log('PlayerJS script loaded!'); loadScriptToBody('https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/playerst.js', () => { console.log('PlayerST script loaded!'); }); }); } }, // Свойства, которые будут передаваться в скрипт 'script-props': ['vid_list', 'library'], // Настройки для ввода JSON-строки с данными о видео traits: [ { type: 'select', name: 'library', label: 'Library', options: [ { value: '1', name: 'Плеер - 1' }, { value: '2', name: 'Плеер - 2' }, { value: '3', name: 'Плеер - 3' }, { value: '4', name: 'Плеер - 4' }, { value: '5', name: 'Плеер - 5' }, { value: '6', name: 'Плеер - 6' }, { value: '7', name: 'Плеер - 7' }, { value: '8', name: 'Плеер - 8' }, { value: '9', name: 'Плеер - 9' }, { value: '10', name: 'Плеер - 10' }, { value: '11', name: 'Плеер - 11' }, { value: '12', name: 'Плеер - 12' }, { value: '13', name: 'Плеер - 13' }, { value: '14', name: 'Плеер - 14' }, { value: '15', name: 'Плеер - 15' } ], changeProp: true }, { type: 'text', name: 'vid_list', label: 'Video List', changeProp: true, placeholder: '[{"title":"Название","file":"URL"},...]', style: { width: '100%', height: '200px' } // Широкое поле ввода } ] } } }); // Создаем блок для компонента Iframe editor.BlockManager.add('custom-iframe', { label: `
Iframe
`, content: ``, attributes: { class: '' } }); editor.CssComposer.addRules(` #custom-iframe { width: 720px; height: 480px; border: none; margin: 0 auto; position: relative; top: 0; display: block; } `);