Редакторы Silverstripe не могут редактировать собственные объекты DataObject

Моя проблема в том, что редакторы не могут редактировать или создавать определенные объекты данных, которые я создал для созданной мной страницы. Некоторые из них доступны для редактирования, а некоторые нет. И если я переключаю язык, это многоязычный сайт, тогда поля ввода даже не отображаются.

Примеры: у меня есть класс для ссылок для отображения списка ссылок

  • Немецкий -> Редакторы могут редактировать и создавать
  • Английский -> Нет полей во всплывающем окне

Другой класс, который управляет загрузками

  • Немецкий -> Показать: да, редактировать и создавать: нет
  • Английский -> Нет полей во всплывающем окне

Кто-нибудь может намекнуть мне, где может быть проблема?

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));
        }
    }
}

1 ответ

Вы должны указать поля во всплывающем окне для перевода. Посмотрите переводную документацию по этому вопросу. http://doc.silverstripe.org/sapphire/en/topics/translation

В этом примере он использует функцию getCMSFields, но использует ту же стратегию для getPopupFields().

Если это не поможет, опубликуйте свою модель и контроллер.

Хорошего дня.

Другие вопросы по тегам