... | ... |
@@ -83,30 +83,30 @@ class ModuleMemberList extends ModuleMemberExtension |
83 | 83 |
return; |
84 | 84 |
} |
85 | 85 |
|
86 |
+ $objTemplate = new FrontendTemplate($this->memberListTpl ?: $this->strMemberTemplate); |
|
87 |
+ |
|
86 | 88 |
$objMembers = $this->getMembers(); |
87 | 89 |
$arrMembers = []; |
88 | 90 |
|
89 |
- if($objMembers->count()) |
|
91 |
+ if(null !== $objMembers) |
|
90 | 92 |
{ |
91 | 93 |
while($objMembers->next()) |
92 | 94 |
{ |
93 |
- $memberGroups = StringUtil::deserialize($objMembers->groups); |
|
95 |
+ $objMember = $objMembers->current(); |
|
94 | 96 |
|
95 |
- if(!\count(array_intersect($arrGroups, $memberGroups))) |
|
97 |
+ if(!$this->checkMemberGroups($arrGroups, $objMember)) |
|
96 | 98 |
{ |
97 | 99 |
continue; |
98 | 100 |
} |
99 | 101 |
|
100 | 102 |
$arrMemberFields = StringUtil::deserialize($this->memberFields, true); |
103 |
+ $objTemplate->setData($objMember->row()); |
|
101 | 104 |
|
102 |
- $objTemplate = new FrontendTemplate($this->memberListTpl ?: $this->strMemberTemplate); |
|
103 |
- $objTemplate->setData($objMembers->current()->row()); |
|
104 |
- |
|
105 |
- $arrMembers[] = $this->parseMemberTemplate($objMembers->current(), $objTemplate, $arrMemberFields, $this->imgSize); |
|
105 |
+ $arrMembers[] = $this->parseMemberTemplate($objMember, $objTemplate, $arrMemberFields, $this->imgSize); |
|
106 | 106 |
} |
107 | 107 |
} |
108 | 108 |
|
109 |
- if(null === $arrMembers) |
|
109 |
+ if(empty($arrMembers)) |
|
110 | 110 |
{ |
111 | 111 |
$this->Template->empty = $GLOBALS['TL_LANG']['MSC']['emptyMemberList']; |
112 | 112 |
} |
... | ... |
@@ -115,11 +115,35 @@ class ModuleMemberList extends ModuleMemberExtension |
115 | 115 |
} |
116 | 116 |
|
117 | 117 |
/** |
118 |
+ * Checks whether a member is in any given group |
|
119 |
+ * |
|
120 |
+ * @param array $arrGroups |
|
121 |
+ * @param MemberModel $objMember |
|
122 |
+ * @return bool |
|
123 |
+ */ |
|
124 |
+ private function checkMemberGroups(array $arrGroups, MemberModel $objMember): bool |
|
125 |
+ { |
|
126 |
+ if(empty($arrGroups)) |
|
127 |
+ { |
|
128 |
+ return false; |
|
129 |
+ } |
|
130 |
+ |
|
131 |
+ $arrMemberGroups = StringUtil::deserialize($objMember->groups); |
|
132 |
+ |
|
133 |
+ if(!\is_array($arrMemberGroups) || !\count(array_intersect($arrGroups, $arrMemberGroups))) |
|
134 |
+ { |
|
135 |
+ return false; |
|
136 |
+ } |
|
137 |
+ |
|
138 |
+ return true; |
|
139 |
+ } |
|
140 |
+ |
|
141 |
+ /** |
|
118 | 142 |
* Get members |
119 | 143 |
* |
120 | 144 |
* @return Collection|MemberModel|null |
121 | 145 |
*/ |
122 |
- protected function getMembers() |
|
146 |
+ private function getMembers() |
|
123 | 147 |
{ |
124 | 148 |
$arrOptions = []; |
125 | 149 |
$t = MemberModel::getTable(); |