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're retiring the forums!

The SilverStripe forums have passed their heyday. They'll stick around, but will be read only. We'd encourage you to get involved in the community via the following channels instead:

All other Modules /

Discuss all other Modules here.

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

TRANSLATABLE: getTranslation fails after changing pagetype (SS3)

Go to End

2 Posts   1003 Views


Community Member, 60 Posts

4 January 2013 at 2:08am

hi forum,

when i change a pagetype (e.g. from Page to HomePage) the existing translations of that page keep the original classname and the cms pagetype dopdown for the translations is readonly. $page->getTranslation($locale) returns null although a translation exists. that is because the corresponding query filters by classname: ("SiteTree"."ClassName" IN ('HomePage')).

my question is: how is this supposed to work? does a valid translation have to have the same classname and all translations should have their classnames changed like i assume after inspecting Translatable::onBeforeWrite()? or should it be possible to have translations with different classnames wich should be returned by Translatable::getTranslation()?

class Page_Controller extends ContentController {

	public function Homepage($locale) {
		if(empty($locale)) $locale = Translatable::get_current_locale();
		$homepage = $this->Page('home');
		$_REQUEST['showqueries'] = 1;
		if($homepage->Locale != $locale) $homepage = $homepage->getTranslation($locale);
		$_REQUEST['showqueries'] = null;
		return $homepage;

anyway, looks like this is broken. or am i missing something.

i'm using ss3.1.0.beta1 with the most recent version of translatable.




Community Member, 4 Posts

13 March 2013 at 7:30pm


Andy any progress on this? I'm getting the same thing.