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.

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.

DataObjectManager Module /

Discuss the DataObjectManager module, and the related ImageGallery module.

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

FileDataObjectManager - question?


Go to End


30 Posts   6659 Views

Avatar
FireMe!

Community Member, 74 Posts

1 April 2009 at 5:58am

Thanks UncleCheese that works great. thanks alot

Avatar
ulysses

Community Member, 57 Posts

15 May 2009 at 5:48pm

Can you create a PDF document gallery using the Image Gallery extention or is there another extention that can be used for this purpose.

Avatar
UncleCheese

Forum Moderator, 4102 Posts

16 May 2009 at 3:39am

I would use a FileDataObjectManager for this, and handle the gallery UI as you see fit on your template. The ResourcePage example would be a good one to follow.

Avatar
ulysses

Community Member, 57 Posts

16 May 2009 at 5:38pm

Where can I downlaod some working examples from? I have created the Resource.php & ResourcePage.php under mysite/code/ and ran dev/build. I cannot see the Resource Page type.

Please help.

Avatar
UncleCheese

Forum Moderator, 4102 Posts

17 May 2009 at 12:58pm

Can you post your code for those two classes?

Avatar
ulysses

Community Member, 57 Posts

18 May 2009 at 1:04am

Edited: 18/05/2009 1:07am

There was a } missing in the ResourcePage.php

Now that it is added, the page type appears but when you select it, the page cannot be saved.

Here are the 2 files:

Resource.php

<?php

class Resource extends DataObject
{
static $db = array (
'Name' => 'Text',
'Description' => 'Text',
'Category' => "Enum('Industry, Finance, Education')"
);

static $has_one = array (
'Attachment' => 'File',
'ResourcePage' => 'ResourcePage'
);

public function getCMSFields_forPopup()
{
return new FieldSet(
new TextField('Name'),
new TextareaField('Description'),
new DropdownField('Category','Category', singleton('Resource')->dbObject('Category')->enumValues()),
new FileIFrameField('Attachment')
);
}
}

?>

ResourcePage.php

<?php

class ResourcePage extends Page
{
static $has_many = array (
'Resources' => 'Resource'
);

public function getCMSFields()
{
$f = parent::getCMSFields();
$manager = new FileDataObjectManager(
$this, // Controller
'Resources', // Source name
'Resource', // Source class
'Attachment', // File name on DataObject
array (
'Name' => 'Name',
'Description' => 'Description',
'Category' => 'Category'
), // Headings
'getCMSFields_forPopup' // Detail fields (function name or FieldSet object)
// Filter clause
// Sort clause
// Join clause
);
}
}

?>

Avatar
UncleCheese

Forum Moderator, 4102 Posts

18 May 2009 at 3:39am

Gotcha. For PDF display in a modal window, you probably want to use Lightwindow.

Avatar
ulysses

Community Member, 57 Posts

18 May 2009 at 9:45am

OK - how do you use the lightwindow for the PDF display. Previously prior to 2.3 I was able to use the different version of image gallery which allowed for the use of both images as well as PDF files. See: http://www.sunnynook.school.nz/cms/latest-newsletter/

Also for the resources on the Resource.php & ResourcePage.php, how can I get that code to work as per your example? How can I delete the page which had an error? I cannot delete it because I cannot select it as it shows an alert box with a page error.

You help would be most appreciated.