@@ -1,62 +1,62 @@ |
||
1 | 1 | <?php |
2 | 2 | |
3 | 3 | class BlockinPage extends Extension { |
4 | - protected static $belongs_many_many = array ( |
|
5 | - 'Blocks' => 'Block' |
|
6 | - ); |
|
4 | + protected static $belongs_many_many = array ( |
|
5 | + 'Blocks' => 'Block' |
|
6 | + ); |
|
7 | 7 | |
8 | - public function updateCMSFields( FieldList $fields ) { |
|
9 | - $ancestry = ClassInfo::ancestry($this->owner->ClassName); |
|
10 | - if (!in_array('RedirectorPage', $ancestry) && !in_array('VirtualPage', $ancestry)) { |
|
11 | - $blocks = $this->owner->Blocks(); |
|
12 | - $blocks_grid = $this->gridBuilder('Blocks', $blocks, '', true,'GridFieldConfig_RelationEditor'); |
|
13 | - $docked_grid = $this->gridBuilder('DockedBlocks', $this->dockedBlocks(), ''); |
|
8 | + public function updateCMSFields( FieldList $fields ) { |
|
9 | + $ancestry = ClassInfo::ancestry($this->owner->ClassName); |
|
10 | + if (!in_array('RedirectorPage', $ancestry) && !in_array('VirtualPage', $ancestry)) { |
|
11 | + $blocks = $this->owner->Blocks(); |
|
12 | + $blocks_grid = $this->gridBuilder('Blocks', $blocks, '', true,'GridFieldConfig_RelationEditor'); |
|
13 | + $docked_grid = $this->gridBuilder('DockedBlocks', $this->dockedBlocks(), ''); |
|
14 | 14 | |
15 | - $fields->addFieldToTab('Root.MyBlocks', $blocks_grid); |
|
16 | - $fields->addFieldToTab('Root.DockedBlocks', $docked_grid); |
|
17 | - } |
|
18 | - } |
|
15 | + $fields->addFieldToTab('Root.MyBlocks', $blocks_grid); |
|
16 | + $fields->addFieldToTab('Root.DockedBlocks', $docked_grid); |
|
17 | + } |
|
18 | + } |
|
19 | 19 | |
20 | - private function gridBuilder($name, $source, $label = '', $canAdd = false, $gridHeaderType = 'GridFieldConfig_RecordEditor') { |
|
21 | - /* |
|
20 | + private function gridBuilder($name, $source, $label = '', $canAdd = false, $gridHeaderType = 'GridFieldConfig_RecordEditor') { |
|
21 | + /* |
|
22 | 22 | GridFieldConfig_Base |
23 | 23 | GridFieldConfig_RecordViewer |
24 | 24 | GridFieldConfig_RecordEditor |
25 | 25 | GridFieldConfig_RelationEditor |
26 | 26 | */ |
27 | - if ($label == '') { $label = $name; } |
|
28 | - $grid = new GridField($name, $label, $source); |
|
29 | - $config = $gridHeaderType::create(); |
|
30 | - $config->removeComponentsByType('GridFieldAddNewButton'); |
|
31 | - if ( $canAdd ) { |
|
32 | - $config |
|
33 | - ->removeComponentsByType('GridFieldPaginator') |
|
34 | - ->removeComponentsByType('GridFieldDetailForm') |
|
35 | - ->addComponents( |
|
36 | - new VersionedForm(), |
|
37 | - new GridFieldPaginatorWithShowAll(30), |
|
38 | - $multiClass = new MultiClassSelector(), |
|
39 | - $sortable = new GridFieldOrderableRows('SortOrder') |
|
40 | - ); |
|
41 | - $subBlocks = BlocksAdmin::getAvaiableTypes(); |
|
42 | - $multiClass->setClasses($subBlocks); |
|
43 | - } |
|
44 | - $grid->setConfig($config); |
|
45 | - return $grid; |
|
46 | - } |
|
27 | + if ($label == '') { $label = $name; } |
|
28 | + $grid = new GridField($name, $label, $source); |
|
29 | + $config = $gridHeaderType::create(); |
|
30 | + $config->removeComponentsByType('GridFieldAddNewButton'); |
|
31 | + if ( $canAdd ) { |
|
32 | + $config |
|
33 | + ->removeComponentsByType('GridFieldPaginator') |
|
34 | + ->removeComponentsByType('GridFieldDetailForm') |
|
35 | + ->addComponents( |
|
36 | + new VersionedForm(), |
|
37 | + new GridFieldPaginatorWithShowAll(30), |
|
38 | + $multiClass = new MultiClassSelector(), |
|
39 | + $sortable = new GridFieldOrderableRows('SortOrder') |
|
40 | + ); |
|
41 | + $subBlocks = BlocksAdmin::getAvaiableTypes(); |
|
42 | + $multiClass->setClasses($subBlocks); |
|
43 | + } |
|
44 | + $grid->setConfig($config); |
|
45 | + return $grid; |
|
46 | + } |
|
47 | 47 | |
48 | - private function dockedBlocks() { |
|
49 | - $blocks = Block::get(); |
|
50 | - $IDs = array(); |
|
51 | - $ClassName = $this->owner->ClassName; |
|
52 | - $Classes = $blocks->map('ID', 'shownInClass'); |
|
53 | - foreach ($Classes as $BlockID => $Class) { |
|
54 | - $listedClasses = explode(',', $Class); |
|
55 | - if (in_array($ClassName, $listedClasses)) { |
|
56 | - $IDs[] = $BlockID; |
|
57 | - } |
|
58 | - } |
|
59 | - $blocks = Block::get()->filter('ID', $IDs)->sort('SortOrder','ASC'); |
|
60 | - return $blocks; |
|
61 | - } |
|
48 | + private function dockedBlocks() { |
|
49 | + $blocks = Block::get(); |
|
50 | + $IDs = array(); |
|
51 | + $ClassName = $this->owner->ClassName; |
|
52 | + $Classes = $blocks->map('ID', 'shownInClass'); |
|
53 | + foreach ($Classes as $BlockID => $Class) { |
|
54 | + $listedClasses = explode(',', $Class); |
|
55 | + if (in_array($ClassName, $listedClasses)) { |
|
56 | + $IDs[] = $BlockID; |
|
57 | + } |
|
58 | + } |
|
59 | + $blocks = Block::get()->filter('ID', $IDs)->sort('SortOrder','ASC'); |
|
60 | + return $blocks; |
|
61 | + } |
|
62 | 62 | } |
63 | 63 | \ No newline at end of file |
@@ -1,41 +1,41 @@ |
||
1 | 1 | <?php |
2 | 2 | class PrintBlocks extends Extension { |
3 | 3 | |
4 | - public function getAllBlocks() { |
|
5 | - $blocks = new ArrayList(); |
|
6 | - $blocks->merge($this->getMyBlocks()); |
|
7 | - $blocks->merge($this->getDockedBlocks()); |
|
8 | - return $blocks; |
|
9 | - } |
|
4 | + public function getAllBlocks() { |
|
5 | + $blocks = new ArrayList(); |
|
6 | + $blocks->merge($this->getMyBlocks()); |
|
7 | + $blocks->merge($this->getDockedBlocks()); |
|
8 | + return $blocks; |
|
9 | + } |
|
10 | 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 | - } |
|
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 | 19 | |
20 | - return $published_blocks; |
|
21 | - } |
|
20 | + return $published_blocks; |
|
21 | + } |
|
22 | 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 | - } |
|
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 | 38 | |
39 | - return $published_blocks->sort('SortOrder', 'ASC'); |
|
40 | - } |
|
39 | + return $published_blocks->sort('SortOrder', 'ASC'); |
|
40 | + } |
|
41 | 41 | } |
42 | 42 | \ No newline at end of file |