|
|
@@ -26,20 +26,33 @@ class MemberController extends ActionController
|
|
|
|
|
|
// Get members of the structure
|
|
|
$members = $this->memberRepository->findByOrganizationId($organizationId);
|
|
|
+ // Sort alphabetically by name
|
|
|
+ usort($members, function($a, $b) {return strcmp($a->getName(), $b->getName());});
|
|
|
|
|
|
- $membersByInstrument = ['CONDUCTOR' => []];
|
|
|
+ // Instruments to display in first place (next will be sorted alphabetically)
|
|
|
+ $stack1 = ['CONDUCTOR' => []];
|
|
|
|
|
|
+ $stack2 = [];
|
|
|
foreach ($members as $member) {
|
|
|
- if (!array_key_exists($member->getInstrument(), $membersByInstrument)) {
|
|
|
- $membersByInstrument[$member->getInstrument()] = [];
|
|
|
+ // If that Instrument exist in stack1: put it in this one
|
|
|
+ if (array_key_exists($member->getInstrument(), $stack1)) {
|
|
|
+ array_push($stack1[$member->getInstrument()], $member);
|
|
|
+ } else {
|
|
|
+ // Create the new array if needed in stack2, then put the member in it
|
|
|
+ if (!array_key_exists($member->getInstrument(), $stack2)) {
|
|
|
+ $stack2[$member->getInstrument()] = [];
|
|
|
+ }
|
|
|
+ array_push($stack2[$member->getInstrument()], $member);
|
|
|
}
|
|
|
- array_push($membersByInstrument[$member->getInstrument()], $member);
|
|
|
}
|
|
|
|
|
|
- $membersByInstrument = array_filter($membersByInstrument,
|
|
|
- function ($key, $val) { return !empty($val); },
|
|
|
- ARRAY_FILTER_USE_BOTH);
|
|
|
+ // remove empty instruments in stack 1
|
|
|
+ $stack1 = array_filter($stack1);
|
|
|
|
|
|
+ // sort by instrument stack2
|
|
|
+ ksort($stack2);
|
|
|
+
|
|
|
+ $membersByInstrument = array_merge($stack1, $stack2);
|
|
|
$this->view->assign('membersByInstrument', $membersByInstrument);
|
|
|
}
|
|
|
|
|
|
@@ -56,7 +69,10 @@ class MemberController extends ActionController
|
|
|
|
|
|
// Get members of the structure (only CA members)
|
|
|
$members = $this->memberRepository->findByOrganizationId($organizationId, true);
|
|
|
+ // Sort alphabetically by name
|
|
|
+ usort($members, function($a, $b) {return strcmp($a->getName(), $b->getName());});
|
|
|
|
|
|
+ // Missions to display (sorted)
|
|
|
$membersByMission = [
|
|
|
'PRESIDENT' => [],
|
|
|
'HONORARY_PRESIDENT' => [],
|
|
|
@@ -76,16 +92,15 @@ class MemberController extends ActionController
|
|
|
'YOUTH_REPRESENTATIVE' => []
|
|
|
];
|
|
|
|
|
|
+ // Put members into their categorie(s)
|
|
|
foreach ($members as $member) {
|
|
|
- if (!array_key_exists($member->getMission(), $membersByMission)) {
|
|
|
- $membersByMission[$member->getMission()] = [];
|
|
|
+ if (array_key_exists($member->getMission(), $membersByMission)) {
|
|
|
+ array_push($membersByMission[$member->getMission()], $member);
|
|
|
}
|
|
|
- array_push($membersByMission[$member->getMission()], $member);
|
|
|
}
|
|
|
|
|
|
- $membersByMission = array_filter($membersByMission,
|
|
|
- function ($key, $val) { return !empty($val); },
|
|
|
- ARRAY_FILTER_USE_BOTH);
|
|
|
+ // Remove empty sections
|
|
|
+ $membersByMission = array_filter($membersByMission);
|
|
|
|
|
|
$this->view->assign('membersByMission', $membersByMission);
|
|
|
}
|