gpt4 book ai didi

Silverstripe - 每页不同的选项卡和字段

转载 作者:行者123 更新时间:2023-12-02 01:38:06 25 4
gpt4 key购买 nike

例如,在 SilverStripe 3.1 中,可以在“关于”页面上添加不同的选项卡和字段。

然后是服务页面上的不同选项卡和字段。

关于页面 - 图片标签/附件标签

服务页面 - 图片标签/附件标签/员工标签

下面的代码是一个例子。我在一个有效的片段周围添加了 if 语句。但它似乎只能通过在所有页面上显示相同的选项卡来适用于所有页面。

我一直在 SilverStripe 网站上学习视频类(class),我可以看到您可以创建页面类型,但我真的需要知道您是否可以在无需创建额外页面类型的情况下实现这一点。

// I want this on the about page 

// if page=about {

class Page extends SiteTree {

private static $has_one = array (
'Photo' => 'image',
'Brochure' => 'file',
);

public function getCMSFields() {
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.Images', $photo = UploadField::create('Photo'));
$fields->addFieldToTab('Root.Attachments', $brochure = UploadField::create('Brochure'));

return $fields;
}

}

// I want this on the services page

// } elseif page=services {

class Page extends SiteTree {

private static $has_one = array (
'Photo' => 'image',
'Brochure' => 'file',
'Staff Person' => 'image',
);

public function getCMSFields() {
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.Images', $photo = UploadField::create('Photo'));
$fields->addFieldToTab('Root.Attachments', $brochure = UploadField::create('Brochure'));
$fields->addFieldToTab('Root.Staff', $staff = UploadField::create('Staff'));
return $fields;
}

}

// }

class Page_Controller extends ContentController {

private static $allowed_actions = array();

public function init() {
parent::init();
}
}

最佳答案

我建议根据您的需要使用单独的页面类型。

但是,如果您只想使用一种页面类型,则可以在 getCMSFields 函数中使用 if 语句来显示不同的字段。

在这个示例代码中,我检查了 URLSegment,尽管您可以检查其他内容,例如 Title

class Page extends SiteTree {

private static $has_one = array (
'Photo' => 'image',
'Brochure' => 'file',
'Staff Person' => 'image',
);

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

if ($this->URLSegment == 'about' || $this->URLSegment == 'services') {
$fields->addFieldToTab('Root.Images', $photo = UploadField::create('Photo'));
$fields->addFieldToTab('Root.Attachments', $brochure = UploadField::create('Brochure'));
}
if ($this->URLSegment == 'services') {
$fields->addFieldToTab('Root.Staff', $staff = UploadField::create('Staff'));
}

return $fields;
}

}

关于Silverstripe - 每页不同的选项卡和字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29875508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com