Пожелание: динамические промобоксы

Пожелание|Идет голосование за этот запрос
В настоящее время нельзя сделать промобоксы динамическими, подключив их к коллекциям CMS. Однако вы можете подключить прикрепленные элементы промобокса к контенту коллекции CMS, чтобы сделать элементы динамическими (например, текст, изображения, кнопки).  
Мы постоянно работаем над улучшением наших продуктов, поэтому ваши отзывы очень важны для нас. 

Альтернативное решение

С помощью Velo можно создать промобокс, который открывается со страницы динамического элемента и отображает тот же элемент, что и на исходной странице.

Например, если у вас есть динамические страницы элемента с описанием предлагаемых вами услуг, вы можете связать кнопку на этих страницах с промобоксом. В промобокс можно добавить такие элементы, как текст, изображения и кнопки, которые будут подключены к тому же набору данных. Таким образом, когда посетители нажимают кнопку на динамической странице элемента, открывается промобокс с дополнительной информацией о том же товаре, отображаемом на странице. 
Прежде чем начать:
Убедитесь, что на вашем сайте есть: 
Редактор Wix
Редактор Studio
  1. Перейдите в редактор.
  2. Перейдите на соответствующую динамическую страницу элемента. 
  3. Включите режим Velo для разработчиков: 
    1. Нажмите Разработчику в верхней части редактора. 
    2. Нажмите Активировать
  4. Скопируйте сниппет кода ниже и вставьте его в верхнюю часть кода страницы:
1import wixWindowFrontend from 'wix-window-frontend';
Снимок экрана, на котором показано добавление сниппета кода в верхнюю часть кода динамической страницы элемента.
  1. Скопируйте сниппет кода ниже и вставьте его после: $w.onReady(function () {
1$w('#openLightbox').onClick(async () => { const item = await $w('#dynamicDataset').getCurrentItem(); const id = item._id; wixWindowFrontend.openLightbox("Dynamic Lightbox", id); })
2
Скриншот добавления второго сниппета кода в код динамической страницы элемента.
  1. Во вставленном примере кода замените идентификаторы, перечисленные ниже, на идентификаторы, используемые на вашем сайте:
    • openLightbox: замените на идентификатор кнопки, которая открывает промобокс. 
    • dynamic Dataset: замените на идентификатор набора данных динамической страницы элемента. 
    • Dynamic Lightbox: замените названием промобокса. 
Скриншот, показывающий идентификаторы и название промобокса, которые необходимо заменить в коде.
  1. Перейдите к промобоксу в редакторе. 
  2. Добавьте набор данных и подключите его к той же коллекции, к которой подключена динамическая страница элемента:
    1. Нажмите на CMS  в левой части редактора.
    2. Нажмите Элементы контента
    3. Нажмите Набор данных.
    4. Нажмите на раскрывающийся список Выберите коллекцию и выберите ту же коллекцию, которая подключается к динамической странице элементов. 
    5. Нажмите Создать
  3. Нажмите на поле Максимум отображаемых элементов в настройках набора данных и введите число 1.
  4. Подключите элементы в промобоксе (например, текст, изображения, кнопки) к набору данных:
    1. Нажмите на соответствующий элемент в промобоксе. 
    2. Нажмите на значок Подключить к CMS .
    3. Нажмите на раскрывающиеся списки в разделе Подключения и выберите соответствующие поля коллекции или действия с набором данных. 
    4. Повторите эти шаги для каждого элемента промобокса, который хотите подключить. 
  5. Скопируйте сниппет кода ниже и вставьте его в верхнюю часть кода промобокса: 
1import wixWindowFrontend from 'wix-window-frontend'; import wixData from 'wix-data';
Скриншот добавления сниппета кода в верхнюю часть кода промобокса.
  1. Скопируйте сниппет кода ниже и вставьте его после: $w.onReady(function () {
1const getData = async () => { const id = await wixWindowFrontend.lightbox.getContext(); $w('#dataset1').setFilter(wixData.filter().eq('_id', id)); } getData();
Скриншот добавления сниппета кода в верхнюю часть кода промобокса.
  1. Во вставленном примере кода замените dataset1 на идентификатор набора данных промобокса. 
  2. Перейдите в режим предпросмотра, чтобы протестировать функциональность. 
  3. Когда все будет готово, опубликуйте сайт.