나는 Georgs 대답을 인정하지만,이 문제를 해결하는 또 다른 방법 선택했습니다 : 내가 읽고 화신 플러그인 주어진 tx_news의 설정 범주를 반환하고 useStdWrap에 다시 병합 할 수있는 PHP 클래스를 생성 한
을 방법.
이 접근법을 사용하려면 기본 사용자 정의 확장을 작성하고 PHP 클래스 파일을 클래스 폴더에 넣는 것이 가장 좋습니다. 여기 /your_extension/Classes/TsSetupHelper.php로 저장 등의 클래스 파일의 코드입니다 : 장소에이 클래스와
<?php
namespace YourVendor\YourExtension;
class TsSetupHelper {
/**
* Reference to the parent (calling) cObject set from TypoScript
*/
public $cObj;
/**
* Return the categories chosen in a tx_news plugin content element.
* Can be used in TS Setup to stdWrap the categories without losing the settings defined within a plugin incarnation.
*
* @param string Empty string (no content to process)
* @param array TypoScript configuration
* @return string return categorie value list from plugin in page, e.g.: '1,3,4'
*/
public function getNewsPluginCategory($content, $conf) {
$newsPluginFlexformArr = \TYPO3\CMS\Core\Utility\GeneralUtility::xml2array($this->cObj->data['pi_flexform']);
$newsPluginCategories = $newsPluginFlexformArr['data']['sDEF']['lDEF']['settings.categories']['vDEF'];
return $newsPluginCategories;
}
}
, 당신은 TS Setup에서 tx_news 플러그인 화신에서 선택한 카테고리에서 읽을 수는, stdWrap을 사용하여 처리하고 업데이트 된 카테고리 값으로 플러그인으로 다시 밀어 넣습니다.
다음은 해당 TS 설치 코드의 예입니다.
plugin.tx_news.settings {
overrideFlexformSettingsIfEmpty := addToList(categories,categoryConjunction)
useStdWrap := addToList(categories)
categoryConjunction = or
# pre fill categories with value from plugin in page
categories.cObject = USER
categories.cObject {
userFunc = YourVendor\YourExtension\TsSetupHelper->getNewsPluginCategory
}
# only if no categories are chosen within plugin,
# use TS to define categories:
categories.ifEmpty {
# get cat from parameter in query
data = GP:cat
# ignore cat parameter if page layout 5 is chosen in page properties
override = 1,2,3,4,5,6,7,8,9,10
override.if.value.data = page:layout
override.if.equals = 5
# default categories to 3 if cat param is not set
ifEmpty = 3
}
}
여기에 멋진 것들이 많이 있습니다. 이 모든 것은 하나의 예를 의미합니다. 중요한 부분은 플러그인 내에 카테고리 설정이 우선하며 블록 categories.ifEmpty{...}
의 모든 TS 설정은 플러그인 내에 카테고리가 설정되지 않은 경우에만 사용된다는 것입니다.이 글을 쓰는 시점에서
버전 : TYPO3 7.6.11은 5.2.0
안녕 게오르그을 tx_news, 나는 당신의 대답을 받아 들였다. 그러나 나는이 문제를 해결할 방법이 없다는 평가에 동의하지 않습니다. 내가 아래에 내 자신의 솔루션을 게시 한 모든 EXT 뉴스에 추가 할 수 있습니다. 모든 useStdWrapped 필드에 대해 플러그 인 내에서 정의 된 설정이 stdWrap을 통해 처리되는 TS 객체의 기본 내용으로 설정되어 있는지 확인해야합니다. 현재 useStdWrapped 필드의 기본 내용이 현재 문제가 있으므로 ([# 126] (https://github.com/georgringer/news/issues/126) 문제에 설명 된대로) 기존 뉴스 구현과 충돌하지 않습니다. – Jpsy