我使用扩展构建器(我是一个FE积分器)进行了一个快速的typo3 6.2扩展,并且我使用Typoscript在FE中显示表的内容,如下所示:
10 = CONTENT
10 {
table = tx_ensgue_domain_model_ue
select {
pidInList = 41
selectFields = tx_ensgue_domain_model_ue.uid,tx_ensgue_domain_model_ue.syl_code,tx_ensgue_domain_model_ue.syl_titre
join = tx_ensgue_ue_sylperiode_mm ON (tx_ensgue_ue_sylperiode_mm.uid_local = tx_ensgue_domain_model_ue.uid)
where = (tx_ensgue_domain_model_ue.syl_titre LIKE '%%' AND tx_ensgue_domain_model_ue.deleted=0)
andWhere = tx_ensgue_ue_sylperiode_mm.uid_foreign=1
orderBy = tx_ensgue_domain_model_ue.syl_code
}
renderObj = COA
renderObj {
20 = TEXT
20 {
field = syl_code
noTrimWrap=|[|] |
}
30 = TEXT
30 {
field = syl_titre
stdWrap.editIcons = tx_ensgue_domain_model_ue:syl_code,syl_titre,syl_periode,syl_responsables
stdWrap.editIcons.beforeLastTag = 1
stdWrap.editIcons.iconTitle = Modifier l'UE
required = 1
}
wrap = <li > |</li >
}
stdWrap {
wrap = <h2>Semestre 5</h2><ul class="syl_fe">|</ul>
required = 1
}
}
我尝试使用feedit(来自核心),但editIcons仅适用于Admin BE用户。非管理员可以编辑页面中的tt_content,但如果我在CONTENT对象中显示tt_content列表,它将无法工作。 它可能在typo3 / sysext / core / Classes / FrontendEditing / FrontendEditingController.php(第459行?)中进行了硬编码,但这是我所不知道的。 如何使用stdWrap.editIcons允许非管理员用户编辑我的表?
答案 0 :(得分:0)
我一直在core/Classes/FrontendEditing/FrontendEditingController.php
搜索。
在函数allowedToEdit()
中,它在$mayEdit = TRUE;
或$editAccessInternals = TRUE;
或$checkEditAccessInternals = FALSE;
我的问题出在core/Classes/Authentication/BackendUserAuthentication.php
(检查语言部分)。
它正在检查$GLOBALS['TCA'][$table]['ctrl']['languageField']
。
所以我换了
$TCA['tx_ensgue_domain_model_ue']['ctrl']['languageField'] = 'sys_language_uid';
到
$TCA['tx_ensgue_domain_model_ue']['ctrl']['languageField'] = 0;
在我的扩展程序中,它现在正在运行。
我真的不明白这个变化,因为我的演示用户拥有语言的所有权利,而我的SETUP TS中有config.sys_language_uid = 0
......