Completed
Push — master ( 2f974b...edb932 )
by Daniel
08:50
created

item::set_item_icon()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 5
ccs 3
cts 3
cp 1
rs 9.4286
cc 2
eloc 3
nc 2
nop 1
crap 2
1
<?php
2
/**
3
 *
4
 * @package sitemaker
5
 * @copyright (c) 2013 Daniel A. (blitze)
6
 * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
7
 *
8
 */
9
10
namespace blitze\sitemaker\model\menus\entity;
11
12
use blitze\sitemaker\model\base_entity;
13
14
/**
15
 * @method integer get_item_id()
16
 * @method object set_menu_id($menu_id)
17
 * @method integer get_menu_id()
18
 * @method object set_parent_id($parent_id)
19
 * @method integer get_parent_id()
20
 * @method string get_item_title()
21
 * @method string get_item_url()
22
 * @method object set_item_icon($item_icon)
23
 * @method string get_item_icon()
24
 * @method object set_item_target($item_target)
25
 * @method integer get_item_target()
26
 * @method object set_left_id($left_id)
27
 * @method integer get_left_id()
28
 * @method object set_right_id($right_id)
29
 * @method integer get_right_id()
30
 * @method object item_parents($item_parents)
31
 * @method integer get_item_parents()
32
 * @method object set_depth($depth)
33
 * @method integer get_depth()
34
 */
35
final class item extends base_entity
36
{
37
	/** @var integer */
38
	protected $item_id;
39
40
	/** @var integer */
41
	protected $menu_id = 0;
42
43
	/** @var integer */
44
	protected $parent_id = 0;
45
46
	/** @var string */
47
	protected $item_title = '';
48
49
	/** @var string */
50
	protected $item_url = '';
51
52
	/** @var string */
53
	protected $item_icon = '';
54
55
	/** @var integer */
56
	protected $item_target = 0;
57
58
	/** @var integer */
59
	protected $left_id = 0;
60
61
	/** @var integer */
62
	protected $right_id = 0;
63
64
	/** @var string */
65
	protected $item_parents = '';
66
67
	/** @var integer */
68
	protected $depth = 0;
69
70
	/** @var string */
71
	protected $full_url = '';
72
73
	/** @var string */
74
	protected $board_url;
75
76
	/** @var boolean */
77
	protected $mod_rewrite_enabled;
78
79
	/** @var array */
80
	protected $required_fields = array('menu_id');
81
82
	/** @var array */
83
	protected $db_fields = array(
84
		'menu_id',
85
		'parent_id',
86
		'item_title',
87
		'item_url',
88
		'item_icon',
89
		'item_target',
90
		'left_id',
91
		'right_id',
92
		'item_parents',
93
		'depth',
94
	);
95
96
	/**
97
	 * Class constructor
98
	 */
99 57
	public function __construct(array $data, $mod_rewrite_enabled = false)
100
	{
101 57
		$this->board_url = generate_board_url();
102 57
		$this->mod_rewrite_enabled = $mod_rewrite_enabled;
103
104 57
		parent::__construct($data);
105 57
	}
106
107
	/**
108
	 * Set block ID
109
	 */
110 38
	public function set_item_id($item_id)
111
	{
112 38
		if (!$this->item_id)
113 38
		{
114 38
			$this->item_id = (int) $item_id;
115 38
		}
116 38
		return $this;
117
	}
118
119 39
	public function set_item_title($item_title)
120
	{
121 39
		$this->item_title = ucwords(trim($item_title));
122 39
		return $this;
123
	}
124
125 36
	public function set_item_icon($icon)
126
	{
127 36
		$this->item_icon = ($icon) ? trim($icon) . ' ' : '';
128 36
		return $this;
129
	}
130
131 43
	public function set_item_url($item_url)
132
	{
133 43
		$this->item_url = ltrim(str_replace($this->board_url, '', $item_url), './');
134 43
		$parts = parse_url($this->item_url);
135
136 43
		if ($this->item_url && empty($parts['host']) && strpos($parts['path'], '.') === false)
137 43
		{
138 4
			$this->item_url = 'app.php/' . $this->item_url;
139 4
		}
140
141 43
		return $this;
142
	}
143
144 26
	public function get_full_url()
145
	{
146 26
		$item_url = $this->item_url;
147 26
		$host = parse_url($item_url, PHP_URL_HOST);
148
149 26
		if ($item_url && empty($host))
150 26
		{
151 15
			$item_url = $this->board_url . '/' . $item_url;
152
153 15
			if ($this->mod_rewrite_enabled === true)
154 15
			{
155 2
				$item_url = str_replace('app.php/', '', $item_url);
156 2
			}
157 15
		}
158
159 26
		return $item_url;
160
	}
161
}
162