17488 Posts in 4473 Topics by 1978 members
|
Page:
1
|
Go to End | |
| Author | Topic: | 1394 Views |
-
how to override Group

27 May 2008 at 4:54am Last edited: 27 May 2008 4:57am
Hello,
Currently I'm customising the security-tab with some extra fields. I've overridden the Member-class and it works fine. Now I try to do the same thing with Group. The code i've used in _config.php is:
Object::useCustomClass('Group', 'NetwerkHolder');
Also I've created the NetwerkHolder.php
class NetwerkHolder extends Group {
static $db = array('ThemaNetwerk' => 'Varchar');static $allow_children = array('Netwerk');
function getCMSFields() {
$fields = parent::getCMSFields();
$fields->insertBefore(new TextField('ThemaNetwerk'), "ThemaNetwerk");
return $fields;
}
}When I run mysite.com/db/build/?flush=1 I see that the table is created, but when I log into the cms I get a db error:
FATAL ERROR: DATABASE ERROR: Couldn't run query: SELECT `Group`.*, `NetwerkHolder`.*, `Group`.ID, if(`Group`.ClassName,`Group`.ClassName,'Group') AS RecordClassName FROM `Group` LEFT JOIN `NetwerkHolder` ON `NetwerkHolder`.ID = `Group`.ID WHERE (`ID` IN (1)) ORDER BY ID | Column 'ID' in where clause is ambiguous
At line 397 in /serverpath/public_html/sapphire/core/model/Database.phpDoes anybody know what is the problem?
Thanks in advance!
-
Re: how to override Group

29 May 2008 at 8:31pm
subclassing group is not fully supported by the sapphre and cms modules.
for the programmatic errors (like the one you mentioned above),
you should look through the following files:
Security.php
SecurityAdmin.php
MemberTableField.php
Member.php
Group.php
Permission.phpA good start is to make sure that manually constructed SQL-queries still work, and that Object::getCustomClass() is consistently used instead of direct usage of "Group".
Theres also a usability-related set of problems which is not so easy to solve - SecurityAdmin should ask you which "type" of group you want to create, and not assume that all custom classes are equal. in your use case of customizing the cmsfields, this might only apply to a specific group.
| 1394 Views | ||
|
Page:
1
|
Go to Top |


