5102 Posts in 1520 Topics by 1116 members
|
Page:
1
|
Go to End | |
| Author | Topic: | 830 Views |
-
Fixed Number of Items in a ComplexTableField

25 May 2011 at 3:10am Last edited: 25 May 2011 3:11am
Hi There,
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 added
to the Teaser Object, this worked. Butpublic function canDelete($Member = null)
{
return Permission::check('DELETE_TEASER');
}shows no impact on the bottom 'Add Teaser' line of the table overview.public function canAdd($Member = null)
{
return Permission::check('ADD_TEASER');
}Any Ideas?
Thanks a lot for any hint!
SF
-
Re: Fixed Number of Items in a ComplexTableField

25 May 2011 at 4:24am Last edited: 25 May 2011 4:35am
Shouldn't you use canCreate() instead of canAdd()?
[EDIT]
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...
-
Re: Fixed Number of Items in a ComplexTableField

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
(
[0] => add
[1] => edit
[2] => show
[3] => delete
)
somewhere.Thx anyway.
SF
-
Re: Fixed Number of Items in a ComplexTableField

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.
regards
SF -
Re: Fixed Number of Items in a ComplexTableField

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
| 830 Views | ||
|
Page:
1
|
Go to Top |

