|
|
|
editor.I18n.addMessages({ |
|
ru: { |
|
styleManager: { |
|
sectors: { |
|
'general': 'Общие', |
|
'dimension': 'Размер', |
|
'typography': 'Типографика', |
|
'decorations': 'Оформление', |
|
'extra': 'Ещё больше', |
|
'flex': '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': 'Центрированный текст', |
|
} |
|
}, |
|
panels: { |
|
buttons: { |
|
'open-code': 'Открыть код', |
|
'gjs-open-import-webpage': 'Импортировать', |
|
} |
|
}, |
|
commands: { |
|
'gjs-open-import-webpage': { |
|
title: 'Импортировать шаблон', |
|
label: '<div style="margin-bottom: 10px; font-size: 13px;">Вставьте здесь ваш HTML/CSS и нажмите Импортировать</div>', |
|
} |
|
} |
|
} |
|
}); |
|
|
|
editor.I18n.setLocale('ru'); |
|
|
|
const unwantedBlocks = ['video', 'link', 'image']; |
|
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' |
|
} |
|
}); |
|
|
|
|
|
|
|
|
|
editor.Components.addType('empty-block', { |
|
model: { |
|
defaults: { |
|
|
|
content: '<div id="set_avp"></div>', |
|
|
|
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/vkatis/api/resolve/main/bundle.3ea86973b4b6c8f6c2bf.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: 'text', |
|
name: 'new_w', |
|
label: 'NEW_W', |
|
changeProp: true |
|
} |
|
] |
|
} |
|
} |
|
}); |
|
|
|
editor.Blocks.add('empty-block-block', { |
|
label: 'Empty Block', |
|
content: { type: 'empty-block' }, |
|
}); |
|
|
|
|
|
|
|
|
|
editor.Components.addType('video-player-settings', { |
|
model: { |
|
defaults: { |
|
|
|
content: '<div id="video-player-settings"></div>', |
|
|
|
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'], |
|
|
|
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' } |
|
} |
|
] |
|
} |
|
} |
|
}); |
|
|
|
editor.Blocks.add('video-player-settings-block', { |
|
label: 'Воспроизведение медиа', |
|
content: { type: 'video-player-settings' }, |
|
}); |
|
|