0

我的問題是,編輯器無法編輯或創建爲我創建的頁面創建的某些DataObjects。有些是可編輯的,有些則不是。如果我切換語言,這是一個多語言網站,那麼輸入字段甚至不會出現。Silverstripe編輯器無法編輯自己的DataObjects

例子: 我有一個類的鏈接,顯示鏈表

  • 德文 - >編輯可以編輯和創建
  • Englisch - >在彈出的任何字段

其他類管理下載

  • 德語 - >顯示:是,編輯&創建:沒有
  • Englisch - >在彈出的任何字段

可能有人暗示我去哪裏的問題可能是?附加文件的代碼中的註釋

編輯:

EDIT2 這裏是我的翻譯功能:

public function getCMSFieldTranslated(FieldSet $fieldset, array $transFields) { 
    // If a translation exists, exchange them with 
    // original/translation field pairs 
    $translation = $this->getTranslation(Translatable::default_locale()); 
    if($translation && $this->Locale != Translatable::default_locale()) { 
     $transformation = new Translatable_Transformation($translation); 

     foreach($transFields as $fieldName => $field) { 
      $fieldset->replaceField($fieldName, $transformation->transformFormField($field)); 
     } 
    } 
} 
+0

你應用了一些canCreate()或類似的函數到你的數據對象?你能提供一些代碼摘錄嗎? – schellmax 2011-03-24 09:15:05

+0

我沒有使用canCreate。這裏的鏈接類作爲例子http://dl.dropbox.com/u/134993/Link.php你能幫助我極好的參數,如果編輯需要編輯權限,我將不得不傳遞給canCreate? – spankmaster79 2011-03-25 08:34:42

+0

TableListField.php函數Can $($ mode)在$ this-> isReadOnly()上返回false,但是我在哪裏正確設置了它,爲什麼它在德語中起作用? – spankmaster79 2011-03-25 15:48:15

回答

0

您必須指定在彈出的字段進行翻譯。 查看關於此的翻譯文檔。 http://doc.silverstripe.org/sapphire/en/topics/translation#translating-custom-properties

在該示例中,它使用getCMSFields函數,但對getPopupFields()使用相同的策略。

如果這對你沒有幫助,請發佈你的模型和控制器。

祝您有美好的一天。

+0

我已經添加了一個函數getCMSFieldsTranslated到Page.php。這是否意味着我必須爲來自Page.php的所有可能的類添加此函數?自定義屬性的翻譯似乎正常。只是不是我自己的數據對象... – spankmaster79 2011-03-25 09:17:41

+0

我也審查過,看到我不需要現有數據對象的翻譯。只需爲英文頁面的pageID創建一個新頁面 – spankmaster79 2011-03-31 08:24:22