@@ -255,7 +255,7 @@ public function userVote(int $userId, int $elementId, ?string $key = null): int
255
255
public function orderByTally (ElementQuery $ query , ?string $ key = null ): void
256
256
{
257
257
// Get and sort element IDs
258
- $ elementIds = $ this ->_elementIdsByTally ($ key );
258
+ $ elementIds = $ this ->_elementIdsByTally ($ key, $ query );
259
259
260
260
// If no element IDs, bail
261
261
if (!$ elementIds ) {
@@ -271,9 +271,11 @@ public function orderByTally(ElementQuery $query, ?string $key = null): void
271
271
* Get and sort element IDs.
272
272
*
273
273
* @param null|string $key
274
+ * @param ElementQuery $query
275
+ * @param bool $useQueryIds
274
276
* @return array
275
277
*/
276
- private function _elementIdsByTally (?string $ key ): array
278
+ private function _elementIdsByTally (?string $ key, ElementQuery $ query ): array
277
279
{
278
280
// If key isn't valid, bail with empty array
279
281
if (!Upvote::$ plugin ->upvote ->validKey ($ key )) {
@@ -313,10 +315,11 @@ private function _elementIdsByTally(?string $key): array
313
315
$ elementIds = (new CraftQuery ())
314
316
->select ('[[elements.id]] ' )
315
317
->from ('{{%elements}} elements ' )
318
+ ->where (['[[elements.type]] ' => $ query ->elementType ])
316
319
->leftJoin (['subquery ' => $ subquery ], '[[elements.id]] = [[subquery.elementId]] ' )
317
320
->orderBy ([new Expression ($ queryOrder )])
318
321
->column ();
319
-
322
+
320
323
// Return element IDs in order of highest voted
321
324
return $ elementIds ;
322
325
}
0 commit comments