Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

DataObjectManager Module /

Discuss the DataObjectManager module, and the related ImageGallery module.

Moderators: martimiz, UncleCheese, Sean, Ed, biapar, Willr, Ingo, swaiba

DataObjectManager SS v2.3.3 I can't handle sub-URLs...


Go to End


9 Posts   5250 Views

Avatar
wardog

Community Member, 9 Posts

16 October 2009 at 4:38pm

Edited: 16/10/2009 4:39pm

How about the following error and I do not know how you can correct ..
I created a small gallery with DataObjectManager module .. And I have a multi-language service .. but when I step to the second language I get the following error ..

"I can't handle sub-URLs of a CMSMain object."

From what I've read I understand it is because it is the same object and not exceeding the premises but do not understand how to fix it .. if anyone can help me I will be grateful

Avatar
FullWebService

Community Member, 38 Posts

22 October 2009 at 2:02am

Edited: 22/10/2009 2:04am

I bumped into the same problem, but found a fix.

Change the if-statement on line 88 of /cms/code/CMSMain.php to:

if(Translatable::is_enabled()) {
	// $Lang serves as a "context" which can be inspected by Translatable - hence it
	// has the same name as the database property on Translatable.
	if($this->getRequest()->requestVar("Locale")) {
		$this->Locale = $this->getRequest()->requestVar("Locale");
	} elseif($this->getRequest()->requestVar("locale")) {
		$this->Locale = $this->getRequest()->requestVar("locale");
	 } elseif (Session::get("{$this->class}.Locale")) { 
		$this->Locale = Session::get("{$this->class}.Locale"); 	
	} else {
		$this->Locale = Translatable::default_locale();
	}
	Translatable::set_current_locale($this->Locale);
	Session::set("{$this->class}.Locale", $this->Locale); 
}

This should do the trick. (See patch for 2.3.2 http://open.silverstripe.com/attachment/ticket/4199/CMSMain.patch)

And thanks to UncleCheese, the DataObjectManager is excellent.

Avatar
UncleCheese

Forum Moderator, 4102 Posts

22 October 2009 at 2:27am

Wow. Thanks. Great to have this finally resolved. Did you submit a patch to SS?

Avatar
FullWebService

Community Member, 38 Posts

22 October 2009 at 3:13am

Edited: 22/10/2009 3:13am

I'm ashamed to say I have no idea how these patch things work.

I just go through the red and green lines and manualy update my code.

If you want to/can make a patch for this issue to help others with the same problem, that would be great. If you can point me to some directions on how to handle patches, that would be awesome.

Avatar
UncleCheese

Forum Moderator, 4102 Posts

22 October 2009 at 3:39am

You can submit a bug to open.silverstripe.com. Just don't mention anything about DataObjectManager, because they'll often blame the module for having the bug, not their own code. :)

Avatar
ChrisBryer

Community Member, 95 Posts

24 November 2009 at 9:51am

sorry to chime in so late.. there's already a sudo-patch for the problem, which gets around things the same way, and it is ticket #4199.

i think SS has been holding off on the fix because they want to stay away from session variables in the translatable code and it may also be affected by modelAdmin (what is the interface for modeladmin and translatable dataobjects?) as well as heirarchical urls.. i think thats what i read from a lot of discussions.

-Chris

Avatar
keeny

Community Member, 48 Posts

26 November 2009 at 2:58pm

Edited: 26/11/2009 3:17pm

I'm getting the same error "I can't handle sub-URLs of a CMSMain object." In the popup window of a DOM when I try to save the DataObject.

The url that the popup is trying to post to is:

<form id="DataObjectManager_Popup_DetailForm" action="admin/EditForm/field/Locations/item/28/DetailForm" method="post" enctype="application/x-www-form-urlencoded">

I tried the CMSMain.php fix with no luck - i'm not using Translatable.

Is there any way for me to get more info than just this message?

Thanks,

Barry.

Avatar
Double-A-Ron

Community Member, 607 Posts

26 November 2009 at 6:05pm

Keeny,

This may help you in your case: http://silverstripe.org/installing-silverstripe/show/264801#post264801

Aaron

Go to Top