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're retiring the forums!

The SilverStripe forums have passed their heyday. They'll stick around, but will be read only. We'd encourage you to get involved in the community via the following channels instead:

Blog Module /

Discuss the Blog Module.

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

Add dataobject manager images through frontend


Go to End


3 Posts   2846 Views

Avatar
klikhier

Community Member, 150 Posts

18 June 2009 at 6:25am

Edited: 18/06/2009 6:28am

Hello, I have set up an ImageDateObjectManager that allows for adding multiple images to a BlogEntry through the CMS. My question: is it possible to add ONE image via www.website.com/blog/post?

Of course I can add the code below to function BlogEntryForm() in BlogHolder.php...

  new SimpleImageField('Image', 'Image (optional)'),

..but is it possible to use such a solution to add one photo through the frontend (myUrl/blog/post) that will be visible in the ImageDataObjectManager in the CMS?

Avatar
UncleCheese

Forum Moderator, 4102 Posts

18 June 2009 at 7:49am

Well before you go hacking the core code, I would create a BlogHolder subclass so you can safely overload the BlogEntryForm() function. What was the result when you added an image field to that? I think it may work fine, because the postblog() handler just runs $form->saveInto(), and I believe that takes into account your related objects and uploads. If not, just overload the postblog() function.

Avatar
klikhier

Community Member, 150 Posts

18 June 2009 at 9:38pm

Thanks UncleCheese, I started with SS as a designer, so forgive me my coding shortcuts (and the overloading) What I have right now:

Photo.php

class Photo extends DataObject
{
	static $db = array (
    'Caption' => 'Text'
	);

	static $has_one = array (
    'Image' => 'Image',
		'Page' => 'Page',
		'GalleryPage' => 'GalleryPage',
		'CalculatorPage' => 'CalculatorPage',
		'BlogHolder' => 'BlogHolder',
		'BlogEntry' => 'BlogEntry'
	);
	
	public function getCMSFields_forPopup()
	{
		return new FieldSet(
      new TextField('Caption','Name'),
			new ImageField('Image')
		);
	}

}

$has_many in BlogEntry.php

	static $has_many = array(
    'Photos' => 'Photo'
	);

Added to function BlogEntryForm() in BlogHolder.php

			
  new SimpleImageField('Photos', 'Image (optional)'),

This doesn't work? I don't fully understand what you mean with your latest sentence, so if you could... please help once more. Many thanks in advance!