MemberController.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. namespace Opentalent\OtWidgets\Controller;
  3. use Opentalent\OtWidgets\Domain\Repository\MemberRepository;
  4. use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
  5. class MemberController extends ActionController
  6. {
  7. /**
  8. * @var MemberRepository
  9. *
  10. */
  11. protected $memberRepository;
  12. /** @noinspection PhpUnused */
  13. /**
  14. * action getMembersAction
  15. *
  16. * @param array $options
  17. * @return void
  18. * @throws \Exception
  19. */
  20. public function getMembersAction(array $options = []) {
  21. $organizationId = (int) $this->settings['organizationId'];
  22. // Get members of the structure
  23. $members = $this->memberRepository->findByOrganizationId($organizationId);
  24. $membersByInstrument = ['CONDUCTOR' => []];
  25. foreach ($members as $member) {
  26. if (!array_key_exists($member->getInstrument(), $membersByInstrument)) {
  27. $membersByInstrument[$member->getInstrument()] = [];
  28. }
  29. array_push($membersByInstrument[$member->getInstrument()], $member);
  30. }
  31. $membersByInstrument = array_filter($membersByInstrument,
  32. function ($key, $val) { return !empty($val); },
  33. ARRAY_FILTER_USE_BOTH);
  34. $this->view->assign('membersByInstrument', $membersByInstrument);
  35. }
  36. /** @noinspection PhpUnused */
  37. /**
  38. * action getCaMembersAction
  39. *
  40. * @param array $options
  41. * @return void
  42. * @throws \Exception
  43. */
  44. public function getMembersCaAction(array $options = []) {
  45. $organizationId = (int) $this->settings['organizationId'];
  46. // Get members of the structure (only CA members)
  47. $members = $this->memberRepository->findByOrganizationId($organizationId, true);
  48. $membersByMission = [
  49. 'PRESIDENT' => [],
  50. 'HONORARY_PRESIDENT' => [],
  51. 'VICE_PRESIDENT' => [],
  52. 'VICE_PRESIDENT_OF_HONOR' => [],
  53. 'PRESIDENT_ASSISTANT' => [],
  54. 'HOUR_PRESIDENT' => [],
  55. 'MEMBER_OF_THE_BOARD' => [],
  56. 'MEMBER_OF_BOARD_OF_HONOR' => [],
  57. 'ACTIVE_COOPTED_BOARD_MEMBER' => [],
  58. 'TREASURER' => [],
  59. 'TREASURER_ASSISTANT' => [],
  60. 'SECRETARY' => [],
  61. 'ASSISTANT_SECRETARY' => [],
  62. 'ACTIVE_MEMBER_OF_THE_CA' => [],
  63. 'HONORARY_MEMBER' => [],
  64. 'YOUTH_REPRESENTATIVE' => []
  65. ];
  66. foreach ($members as $member) {
  67. if (!array_key_exists($member->getMission(), $membersByMission)) {
  68. $membersByMission[$member->getMission()] = [];
  69. }
  70. array_push($membersByMission[$member->getMission()], $member);
  71. }
  72. $membersByMission = array_filter($membersByMission,
  73. function ($key, $val) { return !empty($val); },
  74. ARRAY_FILTER_USE_BOTH);
  75. $this->view->assign('membersByMission', $membersByMission);
  76. }
  77. /**
  78. * @param MemberRepository $memberRepository
  79. */
  80. public function injectMemberRepository(MemberRepository $memberRepository)
  81. {
  82. $this->memberRepository = $memberRepository;
  83. }
  84. }