TreeDropdownField Silverstripe 4 导航标签
TreeDropdownField Silverstripe 4 Navigation Labels
我在 SilverStripe 4 项目上工作,我在其中使用了 TreeDropdownfield。在 3.6 中,它默认获得了 MenuTitle(导航标签),但我注意到在 SilverStripe 中显示的是默认页面标题。
由于我的客户更改了页面标题,TreeDropdownField 显示了长页面标题。我想显示导航标签而不是那些长页面标题,因为那些长标题的结构不清晰。
我有以下代码:
<?php
use SilverStripe\ORM\DataObject;
use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\TextField;
use SilverStripe\Forms\TreeDropdownField;
class InternalLink extends DataObject {
private static $db = [
'Title' => 'Varchar',
];
private static $has_one = [
'LinkTarget' => SiteTree::class,
'InternalLinkCategory' => 'InternalLinkCategory'
];
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.Main', TextField::create( 'Title', 'Titel link' ) );
$fields->addFieldToTab('Root.Main', TreeDropdownField::create( 'LinkTargetID', 'Doeladres', SiteTree::class ) );
return $fields;
}
}
您可以使用 TreeDropdownField::setTitleField()
。它设置用于项目标题的字段。
$treeField = TreeDropdownField::create('LinkTargetID', 'Doeladres', SiteTree::class);
$treeField->setTitleField('MenuTitle');
$fields->addFieldToTab('Root.Main', $treeField);
我在 SilverStripe 4 项目上工作,我在其中使用了 TreeDropdownfield。在 3.6 中,它默认获得了 MenuTitle(导航标签),但我注意到在 SilverStripe 中显示的是默认页面标题。
由于我的客户更改了页面标题,TreeDropdownField 显示了长页面标题。我想显示导航标签而不是那些长页面标题,因为那些长标题的结构不清晰。
我有以下代码:
<?php
use SilverStripe\ORM\DataObject;
use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\TextField;
use SilverStripe\Forms\TreeDropdownField;
class InternalLink extends DataObject {
private static $db = [
'Title' => 'Varchar',
];
private static $has_one = [
'LinkTarget' => SiteTree::class,
'InternalLinkCategory' => 'InternalLinkCategory'
];
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.Main', TextField::create( 'Title', 'Titel link' ) );
$fields->addFieldToTab('Root.Main', TreeDropdownField::create( 'LinkTargetID', 'Doeladres', SiteTree::class ) );
return $fields;
}
}
您可以使用 TreeDropdownField::setTitleField()
。它设置用于项目标题的字段。
$treeField = TreeDropdownField::create('LinkTargetID', 'Doeladres', SiteTree::class);
$treeField->setTitleField('MenuTitle');
$fields->addFieldToTab('Root.Main', $treeField);