Code Duplication    Length = 10-11 lines in 4 locations

src/Models/ForumThread.php 1 location

@@ 222-232 (lines=11) @@
219
     * @todo SS4 compat
220
     * @return int
221
     */
222
    public function getNumPosts()
223
    {
224
        $sqlQuery = new SQLQuery();
225
        $sqlQuery->setFrom('"Post"');
226
        $sqlQuery->setSelect('COUNT("Post"."ID")');
227
        $sqlQuery->addInnerJoin('SilverStripe\\Security\\Member', '"Post"."AuthorID" = "Member"."ID"');
228
        $sqlQuery->addWhere('"Member"."ForumStatus" = \'Normal\'');
229
        $sqlQuery->addWhere('"ThreadID" = ' . $this->ID);
230
231
        return $sqlQuery->execute()->value();
232
    }
233
234
    /**
235
     * Check if they have visited this thread before. If they haven't increment

src/Pages/ForumHolder.php 3 locations

@@ 291-300 (lines=10) @@
288
     *
289
     * @return int Returns the number of posts
290
     */
291
    public function getNumPosts()
292
    {
293
            $sqlQuery = new SQLQuery();
294
            $sqlQuery->setFrom('"Post"');
295
            $sqlQuery->setSelect('COUNT("Post"."ID")');
296
            $sqlQuery->addInnerJoin('SilverStripe\\Security\\Member', '"Post"."AuthorID" = "Member"."ID"');
297
            $sqlQuery->addInnerJoin('SilverStripe\\CMS\\Model\\SiteTree', '"Post"."ForumID" = "SiteTree"."ID"');
298
            $sqlQuery->addWhere('"Member"."ForumStatus" = \'Normal\'');
299
            $sqlQuery->addWhere('"SiteTree"."ParentID" = ' . $this->ID);
300
            return $sqlQuery->execute()->value();
301
    }
302
303
@@ 309-318 (lines=10) @@
306
     *
307
     * @return int Returns the number of topics (threads)
308
     */
309
    public function getNumTopics()
310
    {
311
        $sqlQuery = new SQLQuery();
312
        $sqlQuery->setFrom('"Post"');
313
        $sqlQuery->setSelect('COUNT(DISTINCT("ThreadID"))');
314
        $sqlQuery->addInnerJoin('SilverStripe\\Security\\Member', '"Post"."AuthorID" = "Member"."ID"');
315
        $sqlQuery->addInnerJoin('SilverStripe\\CMS\\Model\\SiteTree', '"Post"."ForumID" = "SiteTree"."ID"');
316
        $sqlQuery->addWhere('"Member"."ForumStatus" = \'Normal\'');
317
        $sqlQuery->addWhere('"SiteTree"."ParentID" = ' . $this->ID);
318
        return $sqlQuery->execute()->value();
319
    }
320
321
@@ 327-336 (lines=10) @@
324
     *
325
     * @return int Returns the number of distinct authors
326
     */
327
    public function getNumAuthors()
328
    {
329
        $sqlQuery = new SQLQuery();
330
        $sqlQuery->setFrom('"Post"');
331
        $sqlQuery->setSelect('COUNT(DISTINCT("AuthorID"))');
332
        $sqlQuery->addInnerJoin('SilverStripe\\Security\\Member', '"Post"."AuthorID" = "Member"."ID"');
333
        $sqlQuery->addInnerJoin('SilverStripe\\CMS\\Model\\SiteTree', '"Post"."ForumID" = "SiteTree"."ID"');
334
        $sqlQuery->addWhere('"Member"."ForumStatus" = \'Normal\'');
335
        $sqlQuery->addWhere('"SiteTree"."ParentID" = ' . $this->ID);
336
        return $sqlQuery->execute()->value();
337
    }
338
339
    /**