Jump to:

7939 Posts in 1472 Topics by 944 members

DataObjectManager Module

SilverStripe Forums » DataObjectManager Module » ImageDataObjectManager doesn't add images first time

Discuss the DataObjectManager module, and the related ImageGallery module.

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

Page: 1
Go to End
Author Topic: 719 Views
  • MarijnKampf
    Avatar
    Community Member
    161 Posts

    ImageDataObjectManager doesn't add images first time Link to this post

    I'm experiencing an error with ImageDataObjectManager that I can't work out. I'm using the same code on my development server (Windows) and live server (*nix). Code works on dev server, but not on live server.

    Using an ImageDataObjectManager to add photographs to a page. After choosing existing image(s) I click continue. In the Editing file 1 of 2 page the image isn't show. The image not present icon is shown in editor.

    I expected it to be an issue with rights in the assets folder, but if I click on one of the images that failed to add, I can then select the image successfully using the Image selector in the popup and a thumbnail appears (on resizing the thumbnails, they are correctly re-generated).

    For what it's worth uploading a file through ImageDataObjectManager doesn't work either. However, uploading through Files & Images with DOM does work on both dev and live without issues.

    Any clue to what the solution could be is appreciated!

       static $has_many = array(
             //
             // snip
             //
          'Images' => 'ImageResource'
       );

       function getCMSFields() {
          $fields = parent::getCMSFields();
             //
             // snip
             //
    $fields->addFieldToTab("Root.Content.Photos", new ImageDataObjectManager(
             $this, // Controller
             'Images', // Source name
             'ImageResource', // Source class
             'Image', // File name on DataObject
             array(
                'Name' => 'Name',
                'Description' => 'Description',
                'Maker' => 'Maker',
                'Email' => 'Contact email (auto anti-spam)',
                'Rights' => 'Free to publish?'
             ), // Headings
             'getCMSFields_forPopup'
          ));
             //
             // snip
             //
          return $fields;
       }

    <?php
    class ImageResource extends DataObject {
       static $db = array (
          'Name' => 'Text',
          'Description' => 'Text',
          'Maker' => 'Text',
          'Email' => 'Text',
          'Rights' => 'Boolean'
       );

       static $has_one = array (
          'Image' => 'Image',
          'Species' => 'Species'
       );

       public function getCMSFields_forPopup()
       {
          return new FieldSet(
             new TextField('Name'),
             new TextareaField('Description'),
             new TextField('Maker'),
             new TextField('Email', 'Contact email (auto anti-spam)'),
             new CheckboxField('Rights','Free to publish?'),
             new FileUploadField('Image')
          );
       }

       function onBeforeWrite() {
          $this->Email = str_replace(array("@", "."), array("(at)", "(dot)"), $this->Email);
          parent::onBeforeWrite();
       }

    }

    Using latest versions of both DOM (commit: dc7bb4...) and uploadify (commit: 1254c6...)

    719 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.