1

我创建了生成示例数据的新小部件。例如:

ContactWidget命名小部件制作联系人模板:

插件/ContactWidget/Widget/ContactWidget/skin/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() 因为应该是唯一的 id。但是当我刷新页面时,丢失了所有数据。

如何生成可编辑的小部件多个实例Slots

4

1 回答 1

1

您正在皮肤中生成 ID。这意味着在每次页面浏览时都会重新生成此 ID。

正确的方法是扩展默认的小部件控制器类并覆盖 defaultData 数据方法。这是生成唯一 ID 并将其以默认数据数组返回的地方。然后您将能够在皮肤中使用该 ID。请注意,这仅适用于新的小部件。

如何扩展该方法: http ://www.impresspages.org/docs/widgets (阅读 PHP 部分) http://www.impresspages.org/docs/class-ip-widgetcontroller(默认小部件控制器类)

于 2014-10-21T15:59:53.573 回答