Jump to:

7940 Posts in 1543 Topics by 946 members

DataObjectManager Module

SilverStripe Forums » DataObjectManager Module » New Stuff!

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: 940 Views
  • UncleCheese
    Avatar
    4085 Posts

    New Stuff! Link to this post

    Just Checked In:

    AssetManager: Allows management of files directly to a page. No need to go through a dataobject. Usage:

    $field->addFieldsToTab("Root.Content.Files", new AssetManager($this,"Files","MyFileClass"));

    Where "Files" is the name of the file relation, and MyFileClass is the subclass of File that has a $has_one relationship with your page. If you want to use the File class directly, it would require modifying the File class to have that has_one relation, which requires a decorator. Still possible, though. If you choose to do if that way, the third argument defaults to "File" so all you need is:

    new AssetManager($this,"Files");

    AssetAdmin Support:

    Because we can now manage files directly, it is now possible to use the AssetManager in the AssetAdmin interface. By default, this is turned on in the latest version of DataObjectManager in dataobject_manager/_config.php. Just set true/false with:

    DataObjectManager::allow_assets_override($bool);

    CSS Overrides

    Not much to speak of here, but over time I'm going to be making updates to some of the weaker points of the Silverstripe core stylesheet. These updates will come in through dataobjectmanager_override.css. By default these overrides are turned off, but can be enabled in the config file.

    DataObjectManager::allow_css_override(true);

    Marking Permissions

    For relation DataObjectManagers, you can now set the permissions required to alter the checked state of each item. Usage:

    $my_relation_dataobjectmanager->setMarkingPermission("CMS_ACCESS_CMSMain");

    By default, there are no permission restrictions on altering relations.

    Other Stuff Mentioned Before But Still Cool

    SWFUploadField: Now has speed calculation and countdown timer for uploads once five seconds have elapsed.

    FileDataObjectManager: Now disables imports for file types that are not allowed.

    DataObjectManager: Now has a "deselect all" option for HasOne/HasMany managers. This is especially useful for the HasOne manager, since it allows you to set a null value by clearing the radio buttons.

  • Taffy
    Avatar
    Community Member
    119 Posts

    Re: New Stuff! Link to this post

    Great work UC. I look forward to trying these new features.

  • NickJacobs
    Avatar
    Community Member
    144 Posts

    Re: New Stuff! Link to this post

    Awsome stuff!
    I've been using DOM to do this on the page for the last couple of sites and it works great, so fantastic to see this as an even easier feature....

    Could you possibly post some sample code for the setup of AssetManager??

    cheers

  • UncleCheese
    Avatar
    4085 Posts

    Re: New Stuff! Link to this post

    Yeah, basically it's

    new AssetManager($this, 'MyFileField', 'FileClass');

    "FileClass" will default to "File", but understand it's not common to have a has_many relationship with file because you would have to decorate the File object to have a has_one with your page. So most of the time you want to create some sort of class like:

    MyFile extends File

    static $has_one = array('MyPage' => 'MyPage');

    to add the has_one there, so you're not altering the core File class.

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