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.

All other Modules /

Discuss all other Modules here.

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

[Solved] modifying ImageGalleryAlbum.php in image gallery


Go to End


6 Posts   1871 Views

Avatar
marcink

Community Member, 89 Posts

18 May 2009 at 7:33am

Edited: 26/05/2009 5:27am

hi,
<br ><br >
<br ><br >i would like to modify the ImageGalleryAlbum.php file.
<br ><br >what do i have to do when i don't want to touch the original file?
<br ><br >
<br ><br >thanks

Avatar
UncleCheese

Forum Moderator, 4102 Posts

18 May 2009 at 8:51am

Very soon I'll be adding member properties $image_class, and $album_class to the ImageGallery module, which will make this a lot easier. For now you'll have to use a DataObjectDecorator for that.

Avatar
marcink

Community Member, 89 Posts

25 May 2009 at 5:08am

Edited: 25/05/2009 5:09am

i don't get it.
i made a new DataObjectDecorator

class DODImageGalleryAlbum extends DataObjectDecorator
{
public function FormattedCoverImage()
{
if($this->landscape()){
return $this->CoverImage()->SetWidth($this->ImageGalleryPage()->CoverImageWidth);
}else{
return $this->CoverImage()->SetHeight($this->ImageGalleryPage()->CoverImageWidth);
}
}
}

in my _config.php i added:

Object::add_extension('ImageGalleryAlbum', 'DODImageGalleryAlbum');

but it doesn't work. what is wrong?

Avatar
UncleCheese

Forum Moderator, 4102 Posts

25 May 2009 at 5:28am

Edited: 25/05/2009 5:29am

First, you should use DataObject::add_extension, since ImageGalleryAlbum is a DataObject. Second, I don't know that you can overload methods in a decorator. You'll probably have to call that function something different, like "MyFormattedCoverImage" and call it that way on the template.

$this->CoverImage() won't work in a decorator, remember. You'll have to use $this->owner->CoverImage().

Avatar
marcink

Community Member, 89 Posts

26 May 2009 at 5:27am

Edited: 26/05/2009 5:28am

thanks a lot, that did the trick :)

Avatar
UncleCheese

Forum Moderator, 4102 Posts

27 May 2009 at 3:34pm

The ability to use custom classes has been added to the ImageGallery. See the post in the DataObjectManager forum.