Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Form Questions /

TreeDropdownField: unselect selected value


Go to End
Reply


21 Posts   5668 Views

Avatar
silverseba

Community Member, 26 Posts

18 June 2010 at 3:08am

Thank you Marijn for your fast response! Works like a charm!
And a very smooth backward compatibility for SS 2.3 as well.

Avatar
flozwo

Community Member, 5 Posts

8 March 2011 at 7:40am

I just adjusted your code a little bit for the 2.4.4 version. Now it is possible trigger all childknodes.

Hope it works for you.

<?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: 2.0
* Revision date: 17 June 2010
* Changes: Updated to work with SilverStripe 2.4, tree function added.
*/
class OptionalTreeDropdownField extends TreeDropdownField {
private static $postTree = '</li></ul>';

/**
* Helper function to return the header (rather than defining same line twice).
*/
function preTree() {
   
return '<li id="0" class="l"> <a>' . _t('OptionalTreeDropdownField.NONE', "(None)", PR_MEDIUM, 'Non selected value of a dropdown') . '</a>';
}

/**
* Return the site tree
* For version 2.3 and earlier
*/
/*function gettree() {
echo $this->preTree();
parent::gettree();
echo $this->postTree;
}*/

/**
* Get the whole tree of a part of the tree via an AJAX request with empty / none item prepended.
*
* @param SS_HTTPRequest $request
* @return string
* for version 2.4 and later
*/
function tree($request) {
return $this->preTree() . parent::tree($request) . $this->postTree;
}
}
?>

Avatar
mayko

Community Member, 3 Posts

9 November 2011 at 11:04am

Hi guys.

That was exactly what I was looking for! Thank you so much!
But there is a little bug in SS 2.4.5.
Everything is working as expected, as long as you select pages within the root level. If you open a subtree and try to select pages within it the pages are not selectable (Even the yellow hover highlighting is not working).

Any suggestions?

Avatar
pali

Community Member, 33 Posts

5 March 2012 at 11:35am

hi,

use DOM's SimpleTreeDropdownField:

   $f = new SimpleTreeDropdownField("PageLinkToID","Page link to", "SiteTree");
   $f->setHasEmptyDefault(true);

regards

pali

Avatar
RuthAdele

Community Member, 19 Posts

30 July 2012 at 12:36pm

Thanks Pali - Very nice simple solution! :)

Go to Top