백엔드에 레코드 저장시 TCEmainHook processDatamap_preProcessFieldArray를 사용하고 있습니다. 나는이 레코드의 다른 필드에 따라 인라인 레코드를 만들고, 변경하고 삭제합니다. 모든 것은 aspected로 작동하지만 인라인 레코드 삭제시 오류/경고가 여전히 발생하므로 작업이 올바르게 실행됩니다. 오류는 TYPO3 7에서 발생하며 8인라인 레코드 삭제가 실행되지만 경고가 나타납니다. 권한이 없거나 존재하지 않는 페이지 수정 시도
세부 사항 : I 얻을 다음 플래시 메시지 (TYPO3 7 년 만 sys_log로 작성) 각 인라인 기록에 대해 I 삭제 : 레코드를 수정하는
시도 ' foo bar '(tx_datednews_domain_model_newsrecurrence : 527)를 허락하지 않았습니다. 또는 존재하지 않는 페이지입니다.
TYPO3 8에서는 typo3/sysext/core/Classes/DataHandling/DataHandler.php 메서드에 문제가 발생할 수 있습니다. recordInfoWithPermissionCheck. 삭제 된 제한 사항이 추가되었습니다. 그것을 제거하면 모든 것이 잘됩니다. 그 아이디어는 이미 레코드가 삭제되므로 더 이상 레코드를 찾을 수 없습니다. 하지만 나는 그것을 두 번 삭제하지 않을거야.
그러나 위에서 언급했듯이 결국이 인라인 레코드의 삭제가 완벽하게 수행되었습니다.
을 삭제/인라인 레코드 제거 다음과 같은 방법으로 수행됩니다
이
는 관련 코드 조각이 될 수 있습니다. 이 두 라인을 바꾸는 것은 도움이되지 못했습니다. 이 중 하나만 사용하면 뉴스를 다시 열었을 때 치명적인 오류가 발생하고 newsR 레코드에서 oldRec을 제거하지 않았거나 삭제되었지만 삭제되지는 않았습니다. 그래서 나는 두 단계를 모두 수행해야한다고 확신합니다. tx_datednews_domain_model_newsrecurrence의$this->newsRecurrenceRepository->remove($oldRec);
$news->removeNewsRecurrence($oldRec);
TCA :
return [
'ctrl' => [
'title' => 'LLL:EXT:dated_news/Resources/Private/Language/locallang_db.xlf:tx_datednews_domain_model_newsrecurrence',
'label' => 'eventstart',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'cruser_id' => 'cruser_id',
'default_sortby' => 'eventstart',
'versioningWS' => true,
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'transOrigDiffSourceField' => 'l10n_diffsource',
'delete' => 'deleted',
...
TCA 인라인의 요소 : newsRecurrenceRepository에서
'newsrecurrence' => [
'config' => [
'type' => 'inline',
'foreign_table' => 'tx_datednews_domain_model_newsrecurrence',
'MM' => 'tx_datednews_news_newsrecurrence_mm',
'foreign_field' => 'parent_event',
'foreign_default_sortby' => 'eventstart DESC',
'maxitems' => 9999,
'appearance' => [
'collapseAll' => 1,
'levelLinksPosition' => 'top',
'showSynchronizationLink' => 1,
'showPossibleLocalizationRecords' => 1,
'useSortable' => 0,
'showAllLocalizationLink' => 1,
'enabledControls' => [
'info' => true,
'new' => false,
'dragdrop' => true,
'sort' => false,
'hide' => true,
'delete' => false,
'localize' => true,
],
],
],
]
가 기본으로 QuerySettings :
$this->defaultQuerySettings = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Typo3QuerySettings');
$this->defaultQuerySettings->setIgnoreEnableFields(true);
$this->defaultQuerySettings->setEnableFieldsToBeIgnored(['hidden', 'deleted']);
$this->defaultQuerySettings->setRespectStoragePage(FALSE);
그것은 그리 좋은 t 것 o 경고가 나타나는 이유와 그것을 없애는 방법을 이해하십시오.
백엔드 사용자가 관리자 권한을 가지고 : 나는이 코드 조각 라인
를 대체? 아니면 제한되어 있습니까? – Martin
예, 제가 가진 유일한 사용자는 관리자입니다. – Falk