PrintBlocks   A
last analyzed

Complexity

Total Complexity 9

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
wmc 9
lcom 1
cbo 4
dl 0
loc 40
c 0
b 0
f 0
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getAllBlocks() 0 6 1
A getMyBlocks() 0 11 3
B getDockedBlocks() 0 18 5
1
<?php
2
class PrintBlocks extends Extension {
3
	
4
	public function getAllBlocks() {
5
		$blocks = new ArrayList();
6
		$blocks->merge($this->getMyBlocks());
7
		$blocks->merge($this->getDockedBlocks());
8
		return $blocks;
9
	}
10
		
11
	public function getMyBlocks() {
12
		$blocks = $this->owner->Blocks()->sort(array('SortOrder' => 'ASC', 'ID' => 'DESC'));
13
		$published_blocks = new ArrayList();
14
		foreach ($blocks as $block) {
15
			if ($block->isPublished()) {
16
				$published_blocks->push($block);
17
			}
18
		}
19
		
20
		return $published_blocks;
21
	}
22
	
23
	public function getDockedBlocks() {
24
		$blocks = Block::get()->filter(array('showBlockbyClass' => true));
25
		$blocks_map = $blocks->map('ID', 'shownInClass');
26
		foreach ($blocks_map as $blockID => $Classes) {
27
			$Classes = explode(',', $Classes);
28
			if (!in_array($this->owner->ClassName, $Classes)) {
29
				$blocks = $blocks->exclude('ID', $blockID);
30
			}
31
		}
32
		$published_blocks = new ArrayList();
33
		foreach ($blocks as $block) {
34
			if ($block->isPublished()) {
35
				$published_blocks->push($block);
36
			}
37
		}
38
		
39
		return $published_blocks->sort('SortOrder', 'ASC');
40
	}
41
}