I would like to use the TreeDropdownField as an optional field in a form, so I want to be able to 'unselect' a selected page. Is this possible? Is there some way to add a 'none' kind of option?
We've moved the forum!
Please use forum.silverstripe.org for any new questions
(announcement).
The forum archive will stick around, but will be read only.
You can also use our Slack channel
or StackOverflow to ask for help.
Check out our community overview for more options to contribute.
- Page 11(current)
- 2
- 3
- Next 10 entries
I would also like to do this. I've had a look at the TreeDropdownField class and can't see any easy way of doing it.
Edit: Use updated code instead.
Came across the same issue. My solution was to extend the TreeDropdownField and adding the optional field there. You can use the OptionalTreeDropdownField where ever you would normally use the TreeDropdownField.
Simply create a file OptionalTreeDropdownField.php in your \mysite\code\ folder with the following code:
<?php
/**
* TreeDropdown-like field that gives you a tree of items including an empty field, using ajax.
* Author: Marijn Kampf www.exadium.com
* Date: 24 Nov 2009
* Version: 1.0
*/
class OptionalTreeDropdownField extends TreeDropdownField {
function gettree() {
echo '<ul class="tree"><li id="" class="l"><a>' . _t('OptionalTreeDropdownField.NONE', "(None)", PR_MEDIUM, 'Non selected value of a dropdown') . '</a>';
parent::gettree();
echo '</ul>';
}
}
?>
Usage example:
$fields->addFieldToTab("Root.Content.Sitemap", new OptionalTreeDropdownField('BasePage', "Base Page", 'SiteTree', 'URLSegment', 'MenuTitle'));
I felt that this would be the best way to achieve this, but there may be a better solution possible.
Good work Marijn. :-)
I have some problems with the OptionalTreeDropdownField.
It doesn't save the value when I try to publish it. It just says Choose when I refresh the page.
With the normal TreeDropDownField you just write 'BasePageID', "Base Page", 'SiteTree' and it all works fine, but that doesn't work here.
frabraha, if you use TreeDropDownField it works, but once you change your code to OptionalTreeDropDownField it doesn't?
Can you post a sample of your code?
public static $has_one = array(
'InternLink' => 'SiteTree',);
$fields->addFieldToTab('Root.Content.Main', new OptionalTreeDropdownField("InternLinkID", "Velg hvor artikkelen skal linkes til", 'SiteTree', 'URLSegment', 'MenuTitle'));
Are you sure you're not getting an error when you change it to:
$fields->addFieldToTab('Root.Content.Main', new TreeDropdownField("InternLinkID", "Velg hvor artikkelen skal linkes til", 'SiteTree', 'URLSegment', 'MenuTitle'));
- Page 11(current)
- 2
- 3
- Next 10 entries