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: `
`,
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: `
`,
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: `
`,
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: `
`,
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: `
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: `
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: `
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: `
`,
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: `
`,
content: ``,
attributes: {
class: ''
}
});
editor.CssComposer.addRules(`
#custom-iframe {
width: 720px;
height: 480px;
border: none;
margin: 0 auto;
position: relative;
top: 0;
display: block;
}
`);