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.

DataObjectManager Module

Discuss the DataObjectManager module, and the related ImageGallery module.

Moderators: martimiz, UncleCheese, Sean, biapar, Willr, Ingo, swaiba, simon_w

Preview: DataObjectManager module


379 Posts   61595 Views


9 April 2009 at 12:30am Community Member, 21 Posts



public function getCMSFields()
$f = parent::getCMSFields();
$f->addFieldToTab("Root.Content.HeaderImage", new ImageField('HeaderImage'));
$manager = new FileDataObjectManager(
$this, // Controller
'ImageAttachments', // Source name
'ImageAttachment', // Source class
'Attachment', // File name on DataObject
'Name' => 'Name',
'URL' => 'URL'
), // Headings
'getCMSFields_forPopup', // Detail fields (function name or FieldSet object)
"PageID = {$this->ID}" // Filter clause
// Sort clause
// Join clause


9 April 2009 at 12:35am Community Member, 49 Posts


It may be possible you have some other issues, maybe you have bad module code? Maybe you have an error some where else. I have a production site using this exact code at

Each page has their own images. No work required that is the point of the page relationship in your DataObject.

I'm sorry I can't be of further assistance. Again, Good Luck.

Amir Mostofi

9 April 2009 at 12:50am Community Member, 59 Posts

Hu, that's the code I am using now and it's not working!!!

Drye, I'm using the latest code (r107) so I don't think it's bad module code.
In your case, did you use FileDataObjectManager / ImageDataObjectManager on classname Page or did you subclass Page? The reason for this question is because I have FileDataObjectManager working when I subclass Page (e.g. class PartnerPage extends Page).


9 April 2009 at 1:00am Community Member, 49 Posts

ImageDataObjectManager, like I changed it to in pastie code. However I did subclass page. Maybe you should try this as a subclass and make sure it functions or not, to remove any suspicion.


9 April 2009 at 1:22am 4085 Posts

Whoa.. lots of developments since last night. Many thanks to Drye and Hu for stepping in on support.

There's a lot to take in among all of those posts, so would someone mind posting a synopsis of what bug exists, if any, and how you resolved it? I can issue a patch today if I can get a clear idea of what's going on. Thanks.


9 April 2009 at 3:22am Community Member, 21 Posts


I did a test with your code. Everything is fine.
I also tested the situation without ->setParentClass and empty filter. Everything is fine.

Did you rebuild the database ?


9 April 2009 at 6:24am (Last edited: 9 April 2009 6:25am), Community Member, 63 Posts

Great work Uncle Cheese! I've installed the module and it's running great.

I was wondering if there is an easy way to add export functionality to DataObjectManager since it extends ComplexTableField?

Thanks again for quite possibly the best addition to Silverstripe thus far.


9 April 2009 at 6:32am 4085 Posts

I imagine it's really easy to implement. I've never used the export feature of CTF, so that's why I skipped over it. Probably just a matter of adding a button with the right action. Unless you wanted to be able export a custom view, e.g., after filting, sorting, or searching on the recordset. That would be cool!