5453 Posts in 1674 Topics by 1198 members
|Go to End|
25 May 2011 at 3:10am Last edited: 25 May 2011 3:11am
I am looking for a way to fix the number of items of a ComplexTableField within the CMS. I.e. I have a page thas has_many pages as teasers, and i want the authors to set exactly (or at least not more than) 5 teasers. I checked the reference but found no thing like $TeaserTable->maxItems = 5. Is there anything like this?
As workaround, I tried to modify the authors user rights so they can't add or delete any items. (So the admin could set 5 of them and the the authors could change them, but not change their numbers). I addedto the Teaser Object, this worked. But
public function canDelete($Member = null)
}shows no impact on the bottom 'Add Teaser' line of the table overview.
public function canAdd($Member = null)
Thanks a lot for any hint!
25 May 2011 at 4:24am Last edited: 25 May 2011 4:35am
Shouldn't you use canCreate() instead of canAdd()?
Just thinking: you could maybe subclass the ComplexTableField, then create a public method that sets the $permissions array (that is default set to add, edit, show, delete). See what that does?
Would be nice if you could make it dynamic and test the number of items... But then I don't know if the add button would be updated when the complextablefield is reloaded in the cms after adding/removing an item...
25 May 2011 at 4:37am
canCreate() doesn't work neither .
I thought of canAdd since print_r of the ComplexTableFied Object shows
[permissions:protected] => Array
 => add
 => edit
 => show
 => delete
26 May 2011 at 12:29am
After reading http://doc.silverstripe.org/sapphire/en/reference/complextablefield the forth time, i finally discovered
Use ComplexTableField->setPermissions(array("show","edit")) to limit the functionality without touching the template (more secure). Possible values are "show","edit", "delete" and "add".
This solved at least the add-rights issue.
26 May 2011 at 7:47am
Ah - I was looking for that method and just couldn't find it... That's why I came up with the vague idea to extend the class to create it. Guess I should have taken the time to read it four times as well
|Go to Top|