使用Silverstripe 3.6中的字段添加CMS菜单项

时间:2018-05-25 19:47:28

标签: menuitem silverstripe

还是Silverstripe的新手。我正在尝试使用CMS,我想创建一个包含文本字段的新CMS菜单。我设法在其中添加一个带有网格字段的CMS菜单项来添加数据对象,但我需要的是在CMS菜单项中直接显示文本字段而不创建数据对象(类似于设置菜单,如下图所示)

有人可以指导我扩展的内容以及如何设置内容吗?非常感谢提前。

1 个答案:

答案 0 :(得分:0)

您可以扩展设置部分。以下示例在设置部分下添加了一个名为社交媒体的标签,并在 FacebookURL TwitterURL 中添加了2个字段。您可以将其更改为您想要的任何字段/选项卡。

** mysite的/ _config / extensions.yml

---
Name: mysiteextensions
After: 'framework/*','cms/*'
---

SiteConfig:
  extensions:
    - SiteConfigDecorator

<强> mysite的/代码/扩展/ SiteConfigDecorator

<?php
class SiteConfigDecorator extends DataExtension {

    private static $db = array(
        'FacebookURL' => 'Varchar(200)',
        'TwitterURL' => 'Varchar(200)'
    );

    private static $has_one = array(
        'FooterQuoteButtonPage' => 'SiteTree'
    );

    public function updateCMSFields(FieldList $fields) {
        $fields->addFieldToTab('Root.SocialMedia', TextField::create('FacebookURL', 'Facebook URL'));
        $fields->addFieldToTab('Root.SocialMedia', TextField::create('TwitterURL', 'Twitter URL'));

    }

    function __construct() {
        parent::__construct();
    }

}

要访问模板中的这些字段,请使用 $ SiteConfig.FIELDNAME 。在这种情况下,它将是 $ SiteConfig.FacebookURL $ SiteConfig.TwitterURL