如何在 pyrocms 中使用流 API 为流字段的输入定义占位符?

How to define a placeholder for an input of a stream field using stream API in pyrocms?

我正在使用 Pyrocms 的社区版,所以无法真正使用专业版中的流模块的好处。我正在尝试使用 Stream API.

我定义了一个流字段的元数据如下:

$field = [
    'name'      => 'First Name',
    'slug'      => 'first_name',
    'namespace' => 'users',
    'type'      => 'text',
    'extra'     => array(
                     'max_length' => 50,
                     'placeholder'=> 'Enter your first name' //NOT WORKING
                ),
    'assign'    => 'profiles',
    'required'  => true
]
$this->streams->fields->add_fields($fields);

在上面的代码中,我在 extra 中声明了一个键 placeholder 并写入了它的值。但是当我稍后通过回显 as

在表单中使用这个流域时
 <?php echo $field['input']; ?>

输入字段按预期呈现,验证也有效,但未显示占位符文本。当我在为字段定义元数据时尝试添加额外的 class 属性时也是如此。我仔细查看了 pyrocms 文档。它说有一种方法可以为呈现的输入定义属性,但没有说明如何去做。我尝试将它添加到 extra 中,也尝试在 extra 之外定义,但我仍然无法显示输入字段的额外属性。另外,当类型设置为选择时,我应该把下拉菜单或复选框的默认值放在哪里?

字段类型 'text' 没有参数 'placeholder',只有 'max_length' 和 'default_value'。

因此您可以复制文本字段类型,重命名文件夹和 class,将其放入 addons/default/field_types 并将此参数添加到字段类型 - 基本上是编写您自己的字段类型。这真的很简单,我为你做了一个要点:https://gist.github.com/marcogrueter/02b5e70f02402d999059