SilverStripe:更改GridField输入元素的顺序

马力克

因此,首先免责声明:在SilverStripe方面,我有点菜鸟,但是这个困扰了我。

我正在使用GridField添加和编辑DataObject中的条目。这一切都很好,而且效果很好。我唯一不知道的是如何更改EDITABLE字段的顺序-这不是条目的初始表显示(由$ config设置),而是单击“添加”后的实际输入字段新”或编辑记录。

目前,“ image uploadForm”和“ Signature”<select>框位于“ Body HTMLText”字段下方,这很杂乱,无法正常工作。我希望它们位于“摘要”元素正下方的顶部。

我尝试过使用changeFieldOrder(),但是在GridField对象类型上不起作用,并且$ fields对输入元素一无所知(我dump()对其进行了研究,然后进行了观察)。

MediaReleaseItem.php:

class MediaReleaseItem extends DataObject {
static $db = array (
    'Title'     => 'Varchar',
    'DateUpdated'   => 'Date',
    'Summary'   => 'Varchar',
    'Image'     => 'Varchar',
    'Body'      => 'HTMLText',
    );

private static $has_one = array(
    "Image"             => "Image",
    "MediaReleaseItem"  => "MediaReleases",
    "Signature"         => "MediaReleaseSignature",
    );
}

和MediaReleases.php:

class MediaReleases extends Page {

private static $has_many = array(
    "MediaReleaseItems" => "MediaReleaseItem",
    "Signature"         => "MediaReleaseSignature",
    );

function getCMSFields() {
    $fields = parent::getCMSFields();

    $config = GridFieldConfig_RecordEditor::create();
    $config->getComponentByType('GridFieldDataColumns')->setDisplayFields(array(
        'Title'=> 'Title',
        'DateUpdated' => 'Date',
        'Summary' => 'Summary',
        ));
    $mediaReleasesField = new GridField(
        'MediaReleaseItem', // Field name
        'Media Releases', // Field title
        $this->MediaReleaseItems(),
        $config
        );

    $fields->addFieldToTab('Root.MediaReleaseItems', $mediaReleasesField);
    return $fields;
    }
}

(签名只是在另一个选项卡上具有另一个GridField的另一个DataObject,我没有包括它的代码,因为它几乎是相同的。)

魔术鱼

因此,您的意思是当您编辑MediaReleaseItem字段,字段不是您想要的样子吗?

简单:只需getCMSFields()在类上定义一个方法MediaReleaseItem

<?php

class MediaReleaseItem extends DataObject {
    private static $db = array (
        'Title'     => 'Varchar',
        'DateUpdated'   => 'Date',
        'Summary'   => 'Varchar',
        'Image'     => 'Varchar',
        'Body'      => 'HTMLText',
    );
    private static $has_one = array(
        "Image"             => "Image",
        "MediaReleaseItem"  => "MediaReleases",
        "Signature"         => "MediaReleaseSignature",
    );
    public function getCMSFields() {
        $arrayOfSignatures = MediaReleaseSignature::get()->map()->toArray();
        $fields = FieldList::create(array(
            TextField::create('Title', 'Title for this Item'),
            DateField::create('DateUpdated', 'Updated')->setConfig('showcalendar', true),
            TextField::create('Image', 'Image'),
            // not sure if it works to have both a DB field and a has_one with the same name
            UploadField::create('ImageID', 'Image'),
            DropdownField::create('Signature', 'Signature', $arrayOfSignatures),

            // you can add more fields here
        ));

        // but you can also add fields here
        $fields->insertBefore(TextField::create('Summay', 'Summary'), 'DateUpdated');
        $fields->push(HTMLEditorField::create('Body', 'Body Content'));
        return $fields;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Silverstripe 3.1更改Gridfield的“添加”按钮的默认按钮文本吗?

来自分类Dev

SilverStripe Gridfield如何删除按钮

来自分类Dev

SilverStripe Gridfield如何删除按钮

来自分类Dev

Silverstripe 3.1更改Gridfield添加按钮的默认按钮文本吗?

来自分类Dev

在Silverstripe中更改模板继承顺序

来自分类Dev

不带Ajax的SilverStripe GridField下载链接

来自分类Dev

Silverstripe 4 getCMSFields_forPopup和GridField

来自分类Dev

Silverstripe Gridfield扩展-TextFields显示为Textarea

来自分类Dev

bxSlider:更改li元素的顺序

来自分类Dev

XSLT更改XML元素顺序

来自分类Dev

PostgreSQL更改年份范围和输入顺序

来自分类Dev

PostgreSQL更改年份范围和输入顺序

来自分类Dev

如何更改 C 中的数组输入顺序

来自分类Dev

在不同的ChartGroups中更改Series绘图顺序或图例输入顺序

来自分类Dev

根据输入元素范围更改div元素

来自分类Dev

更改输入元素的父元素的样式

来自分类Dev

动态设置通过Silverstripe GridField(CMS)添加的对象的值

来自分类Dev

Silverstripe Gridfield过滤器不起作用

来自分类Dev

SilverStripe GridField多类编辑器的无效sort()列

来自分类Dev

每页上都有新的GridField项-SilverStripe

来自分类Dev

如何使用Jquery更改列表元素的顺序?

来自分类Dev

更改re.findall找到的元素的顺序

来自分类Dev

使用绝对定位更改元素的顺序

来自分类Dev

更改R中向量中元素的顺序

来自分类Dev

根据屏幕大小更改元素的顺序

来自分类Dev

更改DIV标签内的元素顺序

来自分类Dev

删除元素时PriorityQueue更改顺序

来自分类Dev

更改列表的初始元素,保持顺序

来自分类Dev

使用CSS更改HTML元素的顺序

Related 相关文章

热门标签

归档