Code Duplication    Length = 25-26 lines in 2 locations

src/Filtered.php 2 locations

@@ 281-306 (lines=26) @@
278
     * @param array $filteredIds Collection of filtered material identifiers
279
     * @return bool True if ALL navigation filtering succeeded or there was no filtering at all otherwise false
280
     */
281
    protected function applyNavigationFilter(& $filteredIds = array())
282
    {
283
        // Iterate all applied navigation filters
284
        foreach ($this->navigation as $navigation) {
285
            // Create navigation-material query
286
            $this->query->className('structurematerial')
287
288
                ->cond('StructureID', $navigation)
289
                ->cond('Active', 1)
290
                ->group_by('MaterialID')
291
            ;
292
293
            if (isset($filteredIds)) {
294
                $this->query->cond('MaterialID', $filteredIds);
295
            }
296
297
            // Perform request to get next portion of filtered material identifiers
298
            if (!$this->query->fields('MaterialID', $filteredIds)) {
299
                // This filter applying failed
300
                return false;
301
            }
302
        }
303
304
        // We have no navigation collection filters
305
        return true;
306
    }
307
308
    /**
309
     * Try to get all material identifiers filtered by additional field
@@ 315-339 (lines=25) @@
312
     * @param array $filteredIds Collection of filtered material identifiers
313
     * @return bool True if ALL field filtering succeeded or there was no filtering at all otherwise false
314
     */
315
    protected function applyFieldFilter(& $filteredIds = array())
316
    {
317
        // Iterate all applied field filters
318
        foreach ($this->field as $field) {
319
            // Create material-field query
320
            $this->query->className('materialfield')
321
                ->cond('FieldID', $field[0]->id)
322
                ->cond($field[1])
323
                ->group_by('MaterialID')
324
            ;
325
326
            if (isset($filteredIds)) {
327
                $this->query->cond('MaterialID', $filteredIds);
328
            }
329
330
            // Perform request to get next portion of filtered material identifiers
331
            if (!$this->query->fields('MaterialID', $filteredIds)) {
332
                // This filter applying failed
333
                return false;
334
            }
335
        }
336
337
        // We have no field collection filters
338
        return true;
339
    }
340
341
    /**
342
     * Try to find all materials which have fields similar to search strings