Code Duplication    Length = 24-24 lines in 2 locations

src/Collection.php 2 locations

@@ 298-321 (lines=24) @@
295
     *
296
     * @return bool True if ALL navigation filtering succeeded or there was no filtering at all otherwise false
297
     */
298
    protected function applyNavigationFilter(&$filteredIds = array())
299
    {
300
        // Iterate all applied navigation filters
301
        foreach ($this->navigation as $navigation) {
302
            // Create navigation-material query
303
            $this->query->entity('\samson\activerecord\structurematerial')
304
                ->where('StructureID', $navigation)
305
                ->where('Active', 1)
306
                ->groupBy('MaterialID');
307
308
            if (null !== $filteredIds) {
309
                $this->query->where('MaterialID', $filteredIds);
310
            }
311
312
            // Perform request to get next portion of filtered material identifiers
313
            if (!$this->query->fields('MaterialID', $filteredIds)) {
314
                // This filter applying failed
315
                return false;
316
            }
317
        }
318
319
        // We have no navigation collection filters
320
        return true;
321
    }
322
323
    /**
324
     * Try to get all material identifiers filtered by additional field
@@ 331-354 (lines=24) @@
328
     *
329
     * @return bool True if ALL field filtering succeeded or there was no filtering at all otherwise false
330
     */
331
    protected function applyFieldFilter(&$filteredIds = array())
332
    {
333
        // Iterate all applied field filters
334
        foreach ($this->field as $field) {
335
            // Create material-field query
336
            $this->query->entity('\samson\activerecord\materialfield')
337
                ->where('FieldID', $field[0]->id)
338
                ->whereCondition($field[1])
339
                ->groupBy('MaterialID');
340
341
            if (null !== $filteredIds) {
342
                $this->query->where('MaterialID', $filteredIds);
343
            }
344
345
            // Perform request to get next portion of filtered material identifiers
346
            if (!$this->query->fields('MaterialID', $filteredIds)) {
347
                // This filter applying failed
348
                return false;
349
            }
350
        }
351
352
        // We have no field collection filters
353
        return true;
354
    }
355
356
    /**
357
     * Try to find all materials which have fields similar to search strings