7956 Posts in 1394 Topics by 945 members
|Go to End|
26 June 2009 at 7:25am
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:
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:
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.
For relation DataObjectManagers, you can now set the permissions required to alter the checked state of each item. Usage:
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.
29 June 2009 at 9:01pm
Great work UC. I look forward to trying these new features.
30 June 2009 at 9:10am Last edited: 30 June 2009 9:10am
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??
30 June 2009 at 9:39am Last edited: 30 June 2009 9:41am
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.
|Go to Top|