3069 Posts in 868 Topics by 650 members
|
Page:
1
|
Go to End | |
| Author | Topic: | 2844 Views |
-
Problems with Object::useCustomClass

8 January 2009 at 1:48pm
Hello,
I am trying to override a function in the LeftAndMain class in the 'cms' module.
I have put the following in mysite/_config.php
Object::useCustomClass('LeftAndMain', 'CustomLeftAndMain');
I have extended the LeftAndMain class in CustomLeftAndMain class and have overridden the getSiteTreeFor() function but it has no effect.
Any help would be greatly appreciated.
Thanks!
Brian Sohn
-
Re: Problems with Object::useCustomClass

9 January 2009 at 10:50am
Never tried that before, but see if this works:
Object::useCustomClass('LeftAndMain', 'CustomLeftAndMain', true);
-
Re: Problems with Object::useCustomClass

10 January 2009 at 7:52am
Hey Hamish,
Thanks for the feedback. I have tried the 'true' flag and it still doesn't work. If you come across anything give me a shout. I'll keep looking back to this thread.
Thanks.
-
Re: Problems with Object::useCustomClass

10 January 2009 at 12:25pm
I was looking through the Object class and it looks like only classes that are created by using the Object::create() static method can be replaced with custom classes.
for example in the Sapphire folder,
Member
MemberLoginFormcan be replaced with a custom class.
-
Re: Problems with Object::useCustomClass

10 January 2009 at 7:45pm Last edited: 10 January 2009 7:45pm
I don't have a solution for the applying the custom class, but if you want to override the getSiteTreeFor method for the main CMS editor then this might work:
1. Create a new CustomCMSMain class that extends CMSMain with your new getSiteTreeFor method.
2. Edit your _config.php to direct cms requests to your new CMSMain class:
Director::addRules(100,array('admin/cms//$Action/$ID/$OtherID' => 'CustomCMSMain'));
(I think priorities go from high to low... so this should override the '50' in /cms/_config.php)
3. It might cause a double-up in the menu, so you might have to add this to the _config.php file too:
CMSMenu::remove_menu_item("CMSMain");
Let me know if this works
| 2844 Views | ||
|
Page:
1
|
Go to Top |


