我遇到了ChildrenOf(页面名称)和多语言的问题。
当我使用
时<% control ChildrenOf(aktuelles/messen).Limit(2) %>
它适用于德语,但不适用于英语。
所以我添加了
public function PageByLang($url, $lang) {
$SQL_url = Convert::raw2sql($url);
$SQL_lang = Convert::raw2sql($lang);
$page = Translatable::get_one_by_lang('SiteTree', $SQL_lang, "URLSegment = '$SQL_url'");
if ($page->Locale != Translatable::get_current_locale()) {
$page = $page->getTranslation(Translatable::get_current_locale());
}
return $page;
}
到我的页面控制器和模板:
<% control ChildrenOf(PageByLang(aktuelles/messen, de_DE)).Limit(2) %>
但它仍无效。
答案 0 :(得分:1)
我不知道它是否是一个很好的方法,但我在页面控制器中覆盖了ChildrenOf,解决了我的问题:
public function ChildrenOf($parentRef) {
$parent = SiteTree::get_by_link($parentRef);
if(!$parent && is_numeric($parentRef)) {
$parent = DataObject::get_by_id('SiteTree', $parentRef);
}
$locale = Translatable::get_current_locale();
if($parent && $parent->getTranslation($locale))
return $parent->getTranslation($locale)->Children();
}