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.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

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

Upload-image-editing screw up filemanager


Reply


3 Posts   526 Views

Avatar
Bereusei

Community Member, 94 Posts

18 October 2013 at 2:20am

Hey guys,

I´m following this little tutorial [url]http://doc.silverstripe.org/framework/en/trunk/reference/uploadfield[/url] about extending the uploadfield in SS3.
Everything works really nice in front- and backend, but if I want to start the filemanager in the backend, I get this crazy error:
Fatal error: Call to undefined method ProductDetail::setSourceQueryParams() in /Applications/MAMP/htdocs/moebel-luebbering3/framework/model/DataList.php on line 678

class Product extends DataObject
{
...
static $many_many = array(
      'ProductDetails' => 'Image'
   );
....

public function getCMSFields()
   {
...
$uploadField = new UploadField('ProductDetails','Bilder');
      $uploadField->setFileEditFields('getCustomFields');
      $uploadField->setFolderName('Uploads/Products/' . $this->Categories()->First()->Title);
      $fields->addFieldToTab("Root.Main", $uploadField);

      return $fields;
}
}

class ProductDetail extends DataExtension
{
static $db = array (
'Text1' => 'Text',
...
);

private static $belongs_many_many = array (
'Product' => 'Product'
);
   
   
   function getCustomFields() {
      $fields = new FieldList();
      $fields->push(new TextField('Text1'));
      ...
      
      return $fields;
   }
}

class ProductDetailExtension extends DataExtension {
private static $belongs_many_many = array('Product' => 'Product');
}

_config.php

Image::add_extension('ProductDetailExtension');
Image::add_extension('ProductDetail');

Any idea what´s going on? Did someone follow this tutorial, too?

Avatar
Bambii7

Community Member, 254 Posts

21 October 2013 at 12:24pm

Hmmm I haven't followed the tutoiral.

But I'm pretty sure you can drop the second dataextension.

Both ProductDetail and ProductDetailExtension and trying to add the same relationship belongs_many_many/Product.

Try removing Image::add_extension('ProductDetailExtension');

Avatar
Bereusei

Community Member, 94 Posts

23 October 2013 at 8:04pm

Thanks for response. I´ve changed some things in the code:

I´ve changed this:

static $many_many = array(
'ProductDetails' => 'Image'
);


to this:

static $many_many = array(
'ProductDetails' => 'ProductImage'
);


and add an ProductImage class:

class ProductImage extends Image {
   private static $extensions = array(
      'ProductDetail'
   );
}

I removed double relationship "belongs_many_many", but the filemanager still doesn´t work right.
If I click now on the folder "Uploads" in the filemanager, the system throw out internal server error.

I´m using an "$uploadField->setFolderName" where the system self creates folders. Maybe there is a problem with the permissions.
I´m checking later the code and permissions.