Update pages.html
Browse files- pages.html +20 -20
pages.html
CHANGED
@@ -356,8 +356,6 @@ const editor = grapesjs.init({
|
|
356 |
|
357 |
|
358 |
<script>
|
359 |
-
|
360 |
-
|
361 |
editor.Components.addType('dropdown-settings', {
|
362 |
model: {
|
363 |
defaults: {
|
@@ -365,20 +363,23 @@ editor.Components.addType('dropdown-settings', {
|
|
365 |
content: '<div id="dropdown-settings"></div>',
|
366 |
// Скрипт для обработки блока (если нужно)
|
367 |
script: function(props) {
|
368 |
-
|
369 |
-
|
370 |
-
|
|
|
371 |
const loadScriptToHead = (src, callback) => {
|
372 |
const script = document.createElement('script');
|
373 |
script.src = src;
|
374 |
script.onload = callback;
|
375 |
document.head.appendChild(script);
|
376 |
};
|
|
|
377 |
const library = props.library;
|
378 |
let dropdownjsSrc;
|
379 |
if (library === '1') {
|
380 |
dropdownjsSrc = 'https://example.com/path/to/dropdownjs.js';
|
381 |
}
|
|
|
382 |
if (dropdownjsSrc) {
|
383 |
loadScriptToHead(dropdownjsSrc, () => {
|
384 |
console.log('DropdownJS script loaded!');
|
@@ -386,25 +387,25 @@ editor.Components.addType('dropdown-settings', {
|
|
386 |
}
|
387 |
},
|
388 |
// Свойства, которые будут передаваться в скрипт
|
389 |
-
'script-props': ['
|
390 |
// Настройки для ввода JSON-строки с данными о выпадающем списке
|
391 |
traits: [
|
392 |
{
|
393 |
-
type: 'select',
|
394 |
-
name: 'library',
|
395 |
-
label: 'Library',
|
396 |
options: [
|
397 |
-
{ value: '1', name: 'Dropdown - 1' }
|
398 |
],
|
399 |
-
changeProp: true
|
400 |
},
|
401 |
{
|
402 |
-
type: 'text',
|
403 |
-
name: '
|
404 |
-
label: '
|
405 |
-
changeProp: true,
|
406 |
-
placeholder: '[{"title":"Название","link":"URL"},...]',
|
407 |
-
style: { width: '100%', height: '200px' } //
|
408 |
}
|
409 |
]
|
410 |
}
|
@@ -412,8 +413,8 @@ editor.Components.addType('dropdown-settings', {
|
|
412 |
});
|
413 |
// Создаем блок для компонента настроек выпадающего списка
|
414 |
editor.Blocks.add('dropdown-settings-block', {
|
415 |
-
label: 'Настройка выпадающего списка',
|
416 |
-
content: { type: 'dropdown-settings' },
|
417 |
});
|
418 |
</script>
|
419 |
|
@@ -436,7 +437,6 @@ editor.Blocks.add('dropdown-settings-block', {
|
|
436 |
|
437 |
|
438 |
|
439 |
-
|
440 |
|
441 |
|
442 |
|
|
|
356 |
|
357 |
|
358 |
<script>
|
|
|
|
|
359 |
editor.Components.addType('dropdown-settings', {
|
360 |
model: {
|
361 |
defaults: {
|
|
|
363 |
content: '<div id="dropdown-settings"></div>',
|
364 |
// Скрипт для обработки блока (если нужно)
|
365 |
script: function(props) {
|
366 |
+
// Сохраняем данные о выпадающем списке в глобальную переменную
|
367 |
+
window.menu_list = props.menu_list;
|
368 |
+
console.log('Dropdown settings initialized with menu_list:', menu_list);
|
369 |
+
// Функция для подключения скриптов в head
|
370 |
const loadScriptToHead = (src, callback) => {
|
371 |
const script = document.createElement('script');
|
372 |
script.src = src;
|
373 |
script.onload = callback;
|
374 |
document.head.appendChild(script);
|
375 |
};
|
376 |
+
// Выбор библиотеки для выпадающего списка
|
377 |
const library = props.library;
|
378 |
let dropdownjsSrc;
|
379 |
if (library === '1') {
|
380 |
dropdownjsSrc = 'https://example.com/path/to/dropdownjs.js';
|
381 |
}
|
382 |
+
// Подключение выбранной библиотеки
|
383 |
if (dropdownjsSrc) {
|
384 |
loadScriptToHead(dropdownjsSrc, () => {
|
385 |
console.log('DropdownJS script loaded!');
|
|
|
387 |
}
|
388 |
},
|
389 |
// Свойства, которые будут передаваться в скрипт
|
390 |
+
'script-props': ['menu_list', 'library'],
|
391 |
// Настройки для ввода JSON-строки с данными о выпадающем списке
|
392 |
traits: [
|
393 |
{
|
394 |
+
type: 'select', // Тип поля - выпадающий список
|
395 |
+
name: 'library', // Имя свойства
|
396 |
+
label: 'Library', // Метка для пользователя
|
397 |
options: [
|
398 |
+
{ value: '1', name: 'Dropdown - 1' } // Опции выпадающего списка
|
399 |
],
|
400 |
+
changeProp: true // Изменение свойства при выборе
|
401 |
},
|
402 |
{
|
403 |
+
type: 'text', // Тип поля - текстовое поле
|
404 |
+
name: 'menu_list', // Имя свойства
|
405 |
+
label: 'Menu List', // Метка для пользователя
|
406 |
+
changeProp: true, // Изменение свойства при вводе
|
407 |
+
placeholder: '[{"title":"Название","link":"URL"},...]', // Плейсхолдер
|
408 |
+
style: { width: '100%', height: '200px' } // Стили для поля ввода
|
409 |
}
|
410 |
]
|
411 |
}
|
|
|
413 |
});
|
414 |
// Создаем блок для компонента настроек выпадающего списка
|
415 |
editor.Blocks.add('dropdown-settings-block', {
|
416 |
+
label: 'Настройка выпадающего списка', // Метка для пользователя в редакторе
|
417 |
+
content: { type: 'dropdown-settings' }, // Тип создаваемого компонента
|
418 |
});
|
419 |
</script>
|
420 |
|
|
|
437 |
|
438 |
|
439 |
|
|
|
440 |
|
441 |
|
442 |
|