From f31c9998d30e11f3dff3cdf60577c718293c19de Mon Sep 17 00:00:00 2001 From: Mateusz Uzdowski Date: Thu, 28 Jan 2010 21:28:20 +0000 Subject: [PATCH] BUGFIX: add custom search function, so the search catches also the Titles (search uses DataObject::get, which bypasses the getMenuTitle function) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/2.4@97755 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- forms/HtmlEditorField.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/forms/HtmlEditorField.php b/forms/HtmlEditorField.php index 88711c859..02c935e51 100755 --- a/forms/HtmlEditorField.php +++ b/forms/HtmlEditorField.php @@ -207,6 +207,15 @@ class HtmlEditorField_Toolbar extends RequestHandler { $this->controller = $controller; $this->name = $name; } + + /** + * Searches the SiteTree for display in the dropdown + * + * @return callback + */ + function siteTreeSearchCallback($sourceObject, $labelField, $search) { + return DataObject::get($sourceObject, "\"MenuTitle\" LIKE '%$search%' OR \"Title\" LIKE '%$search%'"); + } /** * Return a {@link Form} instance allowing a user to @@ -215,6 +224,10 @@ class HtmlEditorField_Toolbar extends RequestHandler { * @return Form */ function LinkForm() { + $siteTree = new TreeDropdownField('internal', _t('HtmlEditorField.PAGE', "Page"), 'SiteTree', 'ID', 'MenuTitle', true); + // mimic the SiteTree::getMenuTitle(), which is bypassed when the search is performed + $siteTree->setSearchFunction(array($this, 'siteTreeSearchCallback')); + $form = new Form( $this->controller, "{$this->name}/LinkForm", @@ -231,7 +244,7 @@ class HtmlEditorField_Toolbar extends RequestHandler { 'file' => _t('HtmlEditorField.LINKFILE', 'Download a file'), ) ), - new TreeDropdownField('internal', _t('HtmlEditorField.PAGE', "Page"), 'SiteTree', 'ID', 'MenuTitle', true), + $siteTree, new TextField('external', _t('HtmlEditorField.URL', 'URL'), 'http://'), new EmailField('email', _t('HtmlEditorField.EMAIL', 'Email address')), new TreeDropdownField('file', _t('HtmlEditorField.FILE', 'File'), 'File', 'Filename', 'Title', true),