Passed
Push — master ( c0a3a7...3b84a4 )
by Jeroen
58:51
created

ElggPage::getParentEntity()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 12
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 3

Importance

Changes 0
Metric Value
cc 3
eloc 6
nc 3
nop 0
dl 0
loc 12
ccs 7
cts 7
cp 1
crap 3
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * Page class
5
 *
6
 * @since 3.0
7
 */
8
class ElggPage extends ElggObject {
9
	
10
	/**
11
	 * {@inheritDoc}
12
	 */
13 6
	protected function initializeAttributes() {
14 6
		parent::initializeAttributes();
15
		
16 6
		$this->attributes['subtype'] = 'page';
17
		
18
		// set default parent (this makes it a top page)
19 6
		$this->parent_guid = 0;
0 ignored issues
show
Bug Best Practice introduced by
The property parent_guid does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
20 6
	}
21
	
22
	/**
23
	 * Is this a top page in the tree
24
	 *
25
	 * @return bool
26
	 *
27
	 * @since 3.0
28
	 */
29 1
	public function isTopPage() {
30 1
		return empty($this->parent_guid);
31
	}
32
	
33
	/**
34
	 * Get the parent entity of this page
35
	 *
36
	 * @return false|ElggPage
37
	 *
38
	 * @since 3.0
39
	 */
40 1
	public function getParentEntity() {
41
		
42 1
		if (empty($this->parent_guid)) {
43 1
			return false;
44
		}
45
		
46 1
		$parent = get_entity($this->parent_guid);
47 1
		if ($parent instanceof ElggPage) {
48 1
			return $parent;
49
		}
50
		
51 1
		return false;
52
	}
53
	
54
	/**
55
	 * Get the GUID of the parent entity
56
	 *
57
	 * @return int 0 if no parent
58
	 */
59 3
	public function getParentGUID() {
60 3
		return (int) $this->parent_guid;
61
	}
62
	
63
	/**
64
	 * Set a new parent entity from a GUID
65
	 *
66
	 * @param int $guid the GUID of an ElggPage or 0
67
	 *
68
	 * @return bool
69
	 *
70
	 * @since 3.0
71
	 */
72 1
	public function setParentByGUID($guid) {
73 1
		$guid = (int) $guid;
74
		
75 1
		if (empty($guid)) {
76 1
			$this->parent_guid = 0;
0 ignored issues
show
Bug Best Practice introduced by
The property parent_guid does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
77 1
			return true;
78
		}
79
		
80 1
		$new_parent = get_entity($guid);
81 1
		return $this->setParentEntity($new_parent);
82
	}
83
	
84
	/**
85
	 * Set the new parent entity
86
	 *
87
	 * @param ElggPage|null $entity the new parent entity. Eighter an ElggPage or null
88
	 *
89
	 * @return bool
90
	 *
91
	 * @since 3.0
92
	 */
93 2
	public function setParentEntity($entity) {
94
		
95 2
		if (empty($entity)) {
96 1
			$this->parent_guid = 0;
0 ignored issues
show
Bug Best Practice introduced by
The property parent_guid does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
97 1
			return true;
98
		}
99
		
100 2
		if (!$entity instanceof ElggPage || empty($entity->guid)) {
101 2
			return false;
102
		}
103
		
104 2
		$this->parent_guid = $entity->guid;
105 2
		return true;
106
	}
107
}
108