Несколько экземпляров виджетов на ImpressPages 4.x

Я создал новый виджет, который генерирует образцы данных. Например:

ContactWidget именованный виджет делает шаблон контакта:

Плагин / ContactWidget / Widget / ContactWidget / кожа / default.php

<?php $random_id = rand(100, 999); ?>
<div class="iconbox">
<h4>
<?php echo ipSlot('text', array('id' => 'contact_'.$random_id.'_title', 'default' => 'Title')); ?>
</h4>
<?php echo ipSlot('text', array('id' => 'contact_'.$random_id.'_desc', 'default' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut pharetra, erat commodo fringilla consequat, urna velit ultrices orci, vel tincidunt risus ex in nisl.', 'tag' => 'p')); ?>
</div>

Я использовал random (), потому что должен быть уникальный идентификатор. Но когда я обновляю страницу, пропускаю все данные.

Как я могу создать несколько экземпляров виджета с редактируемыми Slots

1

Решение

Вы генерируете ID в скине. Это означает, что этот идентификатор генерируется снова при каждом просмотре страницы.

Правильный способ — расширить класс контроллера виджетов по умолчанию и переопределить метод данных defaultData. Это место для генерации уникального идентификатора и возврата его в массив данных по умолчанию. Тогда вы сможете использовать этот идентификатор в скине. Имейте в виду, что это будет работать только для новых виджетов.

Как расширить этот метод:
http://www.impresspages.org/docs/widgets (читайте PHP боковой раздел)
http://www.impresspages.org/docs/class-ip-widgetcontroller (класс контроллера виджетов по умолчанию)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]