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.

Blog Module

Discuss the Blog Module.

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

Add dataobject manager images through frontend


Reply

3 Posts   2336 Views

Avatar
klikhier

18 June 2009 at 6:25am (Last edited: 18 June 2009 6:28am), Community Member, 150 Posts

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

18 June 2009 at 7:49am 4085 Posts

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

18 June 2009 at 9:38pm Community Member, 150 Posts

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!