Enable selection of categories for team

This commit is contained in:
Cedric Ziel
2018-06-13 11:19:26 +02:00
parent 7ba29519f4
commit 6a4d750b72
4 changed files with 51 additions and 1 deletions
@@ -29,6 +29,7 @@ namespace EP\EpProducts\Controller;
use EP\EpProducts\Domain\Model\Teammember; use EP\EpProducts\Domain\Model\Teammember;
use EP\EpProducts\Domain\Repository\TeammemberRepository; use EP\EpProducts\Domain\Repository\TeammemberRepository;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController; use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
class TeamController extends ActionController class TeamController extends ActionController
@@ -44,12 +45,18 @@ class TeamController extends ActionController
public function __construct(TeammemberRepository $teammemberRepository) public function __construct(TeammemberRepository $teammemberRepository)
{ {
parent::__construct(); parent::__construct();
$this->teammemberRepository = $teammemberRepository; $this->teammemberRepository = $teammemberRepository;
} }
public function listAction() public function listAction()
{ {
$members = $this->teammemberRepository->findAll(); if (isset($this->settings['teamCategories']) && count($this->settings['teamCategories'])) {
$members = $this->teammemberRepository->findByCategories(GeneralUtility::trimExplode(',', $this->settings['teamCategories'], true));
} else {
$members = $this->teammemberRepository->findAll();
}
$this->view->assign('members', $members); $this->view->assign('members', $members);
} }
@@ -35,4 +35,12 @@ class TeammemberRepository extends AbstractRepository
protected $defaultOrderings = [ protected $defaultOrderings = [
'sorting' => 'ASC', 'sorting' => 'ASC',
]; ];
public function findByCategories(array $categories = [])
{
$qb = $this->createQuery();
$qb->matching($qb->in('categories', $categories));
return $qb->execute();
}
} }
@@ -0,0 +1,31 @@
<T3DataStructure>
<meta>
<langDisable>1</langDisable>
</meta>
<sheets>
<sDEF>
<ROOT>
<TCEforms>
<sheetTitle>Konfiguration</sheetTitle>
</TCEforms>
<type>array</type>
<el>
<settings.teamCategories>
<TCEforms>
<exclude>0</exclude>
<label>Auf Kategorie beschränken</label>
<config>
<type>select</type>
<renderType>selectMultipleSideBySide</renderType>
<enableMultiSelectFilterTextfield>1</enableMultiSelectFilterTextfield>
<foreign_table>sys_category</foreign_table>
<minitems>0</minitems>
<maxitems>99</maxitems>
</config>
</TCEforms>
</settings.teamCategories>
</el>
</ROOT>
</sDEF>
</sheets>
</T3DataStructure>
@@ -207,6 +207,10 @@ $pluginSignature = str_replace('_', '', $_EXTKEY) . '_snowreport_list';
$GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform'; $GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform';
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue($pluginSignature, 'FILE:EXT:' . $_EXTKEY . '/Configuration/FlexForms/flexform_snowreport.xml'); \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue($pluginSignature, 'FILE:EXT:' . $_EXTKEY . '/Configuration/FlexForms/flexform_snowreport.xml');
$pluginSignature = str_replace('_', '', $_EXTKEY) . '_teammembers';
$GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform';
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue($pluginSignature, 'FILE:EXT:' . $_EXTKEY . '/Configuration/FlexForms/flexform_teammembers.xml');
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule(
'EP.' . $_EXTKEY, 'EP.' . $_EXTKEY,
'web', 'web',