【发布时间】:2011-03-23 17:20:09
【问题描述】:
我的问题是编辑器无法编辑或创建我为我构建的页面创建的某些 DataObjects。有些是可编辑的,有些则不是。如果我切换语言,它是一个多语言网站,那么输入字段甚至不会出现。
示例: 我有一个链接类来显示链接列表
- 德语 -> 编辑可以编辑和创建
- 英语 -> 弹出窗口中没有字段
其他管理下载的类
- 德语 -> 显示:是,编辑和创建:否
- 英语 -> 弹出窗口中没有字段
谁能提示我问题出在哪里?
EDIT2:在 cmets 中附加代码的文件
编辑: 这是我的翻译功能:
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));
}
}
}
【问题讨论】:
-
您是否对数据对象应用了一些 canCreate() 或类似函数?你能提供一些代码摘录吗?
-
我没有使用 canCreate。这是链接类示例dl.dropbox.com/u/134993/Link.php 如果编辑器需要编辑权限,您能帮我传递给 canCreate 的参数吗?
-
TableListField.php 函数 Can($mode) 在 $this->isReadOnly() 上返回 false,但是我在哪里正确设置它以及为什么它在德语中有效?
标签: php permissions content-management-system silverstripe data-objects