Я создал новый виджет, который генерирует образцы данных. Например:
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
Вы генерируете ID в скине. Это означает, что этот идентификатор генерируется снова при каждом просмотре страницы.
Правильный способ — расширить класс контроллера виджетов по умолчанию и переопределить метод данных defaultData. Это место для генерации уникального идентификатора и возврата его в массив данных по умолчанию. Тогда вы сможете использовать этот идентификатор в скине. Имейте в виду, что это будет работать только для новых виджетов.
Как расширить этот метод:
http://www.impresspages.org/docs/widgets (читайте PHP боковой раздел)
http://www.impresspages.org/docs/class-ip-widgetcontroller (класс контроллера виджетов по умолчанию)
Других решений пока нет …