Jump to:

1840 Posts in 1563 Topics by 557 members

Blog Module

SilverStripe Forums » Blog Module » Add dataobject manager images through frontend

Discuss the Blog Module.

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

Page: 1
Go to End
Author Topic: 2314 Views
  • klikhier
    Avatar
    Community Member
    150 Posts

    Add dataobject manager images through frontend Link to this post

    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?

  • UncleCheese
    Avatar
    4085 Posts

    Re: Add dataobject manager images through frontend Link to this post

    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.

  • klikhier
    Avatar
    Community Member
    150 Posts

    Re: Add dataobject manager images through frontend Link to this post

    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!

    2314 Views
Page: 1
Go to Top

Want to know more about the company that brought you SilverStripe? Then check out SilverStripe.com

Comments on this website? Please give feedback.