Passed
Push — master ( dcbd4a...4bb7b0 )
by Michael
02:37
created

smartpartner.php ➔ b_marquee_smartpartner()   C

Complexity

Conditions 12
Paths 24

Size

Total Lines 55
Code Lines 35

Duplication

Lines 5
Ratio 9.09 %

Importance

Changes 0
Metric Value
cc 12
eloc 35
nc 24
nop 3
dl 5
loc 55
rs 6.8009
c 0
b 0
f 0

How to fix   Long Method    Complexity   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
/**
3
 * ****************************************************************************
4
 * marquee - MODULE FOR XOOPS
5
 * Copyright (c) Hervé Thouzard (http://www.herve-thouzard.com)
6
 *
7
 * You may not change or alter any portion of this comment or credits
8
 * of supporting developers from this source code or any supporting source code
9
 * which is considered copyrighted (c) material of the original comment or credit authors.
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
 *
14
 * @copyright         Hervé Thouzard (http://www.herve-thouzard.com)
15
 * @license           http://www.fsf.org/copyleft/gpl.html GNU public license
16
 * @package           marquee
17
 * @author            Hervé Thouzard (http://www.herve-thouzard.com)
18
 *
19
 * Version :
20
 * ****************************************************************************
21
 *
22
 * @param $limit
23
 * @param $dateFormat
24
 * @param $itemsSize
25
 *
26
 * @return array
27
 */
28
29
// Script to list recent partners from the smartpartner module (tested with smartparnter 1.2)
30
function b_marquee_smartpartner($limit, $dateFormat, $itemsSize)
0 ignored issues
show
Unused Code introduced by
The parameter $dateFormat is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

30
function b_marquee_smartpartner($limit, /** @scrutinizer ignore-unused */ $dateFormat, $itemsSize)

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
31
{
32
    $block = $newObjects = [];
33
    if (!defined('SMARTPARTNER_DIRNAME')) {
34
        define('SMARTPARTNER_DIRNAME', 'smartpartner');
35
    }
36
    require_once XOOPS_ROOT_PATH . '/modules/' . SMARTPARTNER_DIRNAME . '/include/common.php';
0 ignored issues
show
Bug introduced by
The constant XOOPS_ROOT_PATH was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
37
38
    // Creating the partner handler object
39
    $smartpartnerPartnerHandler  = smartpartner_gethandler('partner');
0 ignored issues
show
Bug introduced by
The function smartpartner_gethandler was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

39
    $smartpartnerPartnerHandler  = /** @scrutinizer ignore-call */ smartpartner_gethandler('partner');
Loading history...
40
    $smartpartnerCategoryHandler = smartpartner_gethandler('category');
41
42
    // Randomize
43
    $partnersObj = $smartpartnerPartnerHandler->getPartners(0, 0, _SPARTNER_STATUS_ACTIVE);
0 ignored issues
show
Bug introduced by
The constant _SPARTNER_STATUS_ACTIVE was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
44
    if (count($partnersObj) > 1) {
45
        $keyArray = array_keys($partnersObj);
46
        $keyRand  = array_rand($keyArray, count($keyArray));
47
        for ($i = 0; ($i < count($partnersObj)) && ($i < $limit); ++$i) {
48
            $newObjects[$i] = $partnersObj[$keyRand[$i]];
49
        }
50
        $partnersObj = $newObjects;
51
    }
52
    $catId = [];
53
    foreach ($partnersObj as $partnerObj) {
54
        if (!in_array($partnerObj->categoryid(), $catId)) {
55
            $catId[] = $partnerObj->categoryid();
56
        }
57
    }
58
59
    if ($partnersObj) {
60
        foreach ($catId as $j => $jValue) {
61
            $categoryObj = $smartpartnerCategoryHandler->get($catId[$j]);
0 ignored issues
show
Unused Code introduced by
The assignment to $categoryObj is dead and can be removed.
Loading history...
62
            for ($i = 0, $iMax = count($partnersObj); $i < $iMax; ++$i) {
63
                if ($partnersObj[$i]->categoryid() == $jValue) {
64
                    $smartConfig = smartpartner_getModuleConfig();
0 ignored issues
show
Bug introduced by
The function smartpartner_getModuleConfig was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

64
                    $smartConfig = /** @scrutinizer ignore-call */ smartpartner_getModuleConfig();
Loading history...
Unused Code introduced by
The assignment to $smartConfig is dead and can be removed.
Loading history...
65
                    if ($itemsSize > 0) {
66
                        $title = xoops_substr($partnersObj[$i]->title(), 0, $itemsSize + 3);
0 ignored issues
show
Bug introduced by
The function xoops_substr was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

66
                        $title = /** @scrutinizer ignore-call */ xoops_substr($partnersObj[$i]->title(), 0, $itemsSize + 3);
Loading history...
67
                    } else {
68
                        $title = $partnersObj[$i]->title();
69
                    }
70
71
                    $block[] = [
72
                        'date'     => '',
73
                        'category' => '',
74
                        'author'   => '',
75
                        'title'    => $title,
76
                        'link'     => "<a href='" . XOOPS_URL . '/modules/smartpartner/partner.php?id=' . $partnersObj[$i]->id() . "'>" . $title . '</a>'
0 ignored issues
show
Bug introduced by
The constant XOOPS_URL was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
77
                    ];
78
                }
79
            }
80
        }
81
    }
82
83
    return $block;
84
}
85