MylinksCategory_base   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 0
Metric Value
dl 0
loc 43
rs 10
c 0
b 0
f 0
wmc 5
lcom 0
cbo 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 9 1
A __toString() 0 4 1
A getPathFromId() 0 12 3
1
<?php
2
/**
3
 * MyLinks category.php
4
 *
5
 * Xoops mylinks - a multicategory links module
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 ::  {@link http://xoops.org/ XOOPS Project}
15
 * @copyright ::  &copy; ZySpec Incorporated
16
 * @license   ::    {@link http://www.gnu.org/licenses/gpl-2.0.html GNU Public License}
17
 * @package   ::    mylinks
18
 * @subpackage:: class
19
 * @author    ::     zyspec ([email protected])
20
 */
21
22
defined('XOOPS_ROOT_PATH') or die('Restricted access');
23
24
$moduleDirName = basename(dirname(__DIR__));
25
26
/**
27
 * Class MylinksCategory_base
28
 */
29
class MylinksCategory_base extends XoopsObject
30
{
31
    /**
32
     * constructor
33
     */
34
    public function __construct()
35
    {
36
        parent::__construct();
37
        //definitions of the table field names from the database
38
        $this->initVar('cid', XOBJ_DTYPE_INT, null, false);
39
        $this->initVar('pid', XOBJ_DTYPE_INT, 0, true);
40
        $this->initVar('title', XOBJ_DTYPE_TXTBOX, null, true, 50);
41
        $this->initVar('imgurl', XOBJ_DTYPE_TXTAREA);
42
    }
43
44
    /**
45
     * Returns category title using PHP5
46
     * @return string
47
     */
48
    public function __toString()
49
    {
50
        return $this->title;
51
    }
52
53
    /**
54
     * Generates path from the root id to a given id($id)
55
     * @param  int    $id
0 ignored issues
show
Documentation introduced by
Should the type for parameter $id not be integer|null?

This check looks for @param annotations where the type inferred by our type inference engine differs from the declared type.

It makes a suggestion as to what type it considers more descriptive.

Most often this is a case of a parameter that can be null in addition to its declared types.

Loading history...
56
     * @param  string $path
57
     * @return string
58
     */
59
    public function getPathFromId($id = null, $path = '')
60
    {
61
        $id   = isset($id) ? (int)$id : $this->cid;
0 ignored issues
show
Unused Code introduced by
$id is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
62
        $myts = MyTextSanitizer::getInstance();
63
        $name = $myts->htmlSpecialChars($this->title);
64
        $path = "/{$name}{$path}";
65
        if ($this->pid != 0) {
66
            $path = $this->getPathFromId($this->pid, $path);
67
        }
68
69
        return $path;
70
    }
71
}
72
73
/**
74
 * Class MylinksCategoryHandler_base
75
 */
76
class MylinksCategoryHandler_base extends XoopsPersistableObjectHandler
77
{
78
79
    /**
80
     * mylinksCategoryHandler_base constructor.
81
     * @param null|XoopsDatabase $db
82
     */
83
    public function __construct($db)
84
    {
85
        $moduleDirName = basename(dirname(__DIR__));
86
        parent::__construct($db, 'mylinks_cat', strtolower($moduleDirName) . 'Category', 'cid');
87
    }
88
89
    /**
90
     *
91
     * Retrieve category names from Database
92
     * @param  unknown $cats - integer, returns single category name,
0 ignored issues
show
Documentation introduced by
Should the type for parameter $cats not be unknown|null?

This check looks for @param annotations where the type inferred by our type inference engine differs from the declared type.

It makes a suggestion as to what type it considers more descriptive.

Most often this is a case of a parameter that can be null in addition to its declared types.

Loading history...
93
     *                       array returns array of category names
94
     *                       NULL return all category names
95
     * @return array   return category titles with category ID as key
96
     */
97
    public function getCatTitles($cats = null)
98
    {
99
        $catTitles = array();
0 ignored issues
show
Unused Code introduced by
$catTitles is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
100
        $criteria  = new CriteriaCompo();
101
        if (isset($cats) && is_array($cats)) {
102
            $catIdString = (!empty($cats)) ? '(' . implode(',', $cats) . ')' : '';
103
            if ($catIdString) {
104
                $criteria->add(new Criteria('cid', $catIdString, 'IN'));
105
            }
106
        } elseif (isset($cats) && ((int)$cats > 0)) {
107
            $criteria->add(new Criteria('cid', (int)$cats, '='));
108
        }
109
        $catFields = array('title');
110
        $catArray  =& $this->getAll($criteria, $catFields, false);
111
        $catTitles = array();
112
        if (is_array($catArray) && count($catArray)) {
113
            foreach ($catArray as $catItem) {
114
                $catTitles[$catItem['cid']] = $catItem['title'];
115
            }
116
        }
117
118
        return $catTitles;
119
    }
120
}
121
122
eval('class ' . $moduleDirName . 'Category extends MylinksCategory_base
123
        {
124
        }
125
126
        class ' . $moduleDirName . 'CategoryHandler extends MylinksCategoryHandler_base
127
        {
128
        }
129
    ');
130