Completed
Push — master ( e06f1c...720fed )
by Leo
02:43
created
code/Block.php 2 patches
Indentation   +235 added lines, -235 removed lines patch added patch discarded remove patch
@@ -3,248 +3,248 @@
 block discarded – undo
3 3
 use SaltedHerring\Debugger as Debugger;
4 4
 
5 5
 class Block extends DataObject {
6
-	protected static $db = array (
7
-		'SortOrder'			=>	'Int',
8
-		'Title'				=>	'Varchar(64)',
9
-		'TitleWrapper'		=>	'Enum("h2,h3,h4,h5,h6")',
10
-		'hideTitle'			=>	'Boolean',
11
-		'showBlockbyClass'	=>	'Boolean',
12
-		'Description'		=>	'Varchar(128)',
13
-		'MemberVisibility'	=>	'Varchar(255)',
14
-		'shownInClass'		=>	'Text',
15
-		'addMarginTop'		=>	'Boolean',
16
-		'addMarginBottom'	=>	'Boolean'
17
-	);
18
-	
19
-	protected static $many_many = array (
20
-		'Pages'				=>	'Page'
21
-	);
22
-	
23
-	protected static $default_sort = array(
24
-		'SortOrder'			=>	'ASC',
25
-		'ID'					=>	'DESC'
26
-	);
27
-		
28
-	protected static $create_table_options = array(
29
-		'MySQLDatabase'		=> 'ENGINE=MyISAM'
6
+    protected static $db = array (
7
+        'SortOrder'			=>	'Int',
8
+        'Title'				=>	'Varchar(64)',
9
+        'TitleWrapper'		=>	'Enum("h2,h3,h4,h5,h6")',
10
+        'hideTitle'			=>	'Boolean',
11
+        'showBlockbyClass'	=>	'Boolean',
12
+        'Description'		=>	'Varchar(128)',
13
+        'MemberVisibility'	=>	'Varchar(255)',
14
+        'shownInClass'		=>	'Text',
15
+        'addMarginTop'		=>	'Boolean',
16
+        'addMarginBottom'	=>	'Boolean'
30 17
     );
31 18
 	
32
-	protected static $extensions = array (
33
-		'StandardPermissions'
34
-	);
35
-	
36
-	protected static $summary_fields = array(
37
-		'BlockType',
38
-		'Title', 
39
-		'Description',
40
-		'shownOn',
41
-		'VisibleTo',
42
-		'Published'
43
-	);
44
-	
45
-	protected static $field_labels = array(
46
-		'BlockType'			=>	'Block type',
47
-		'shownOn'			=>	'is shown on',
48
-		'VisibleTo'			=>	'Visible to'
49
-	);
50
-	
51
-	public function VisibleTo() {
52
-		if (strlen(trim($this->MemberVisibility)) > 0) {
53
-			$lists = 'Group: ' . str_replace(',','<br />Group: ', $this->MemberVisibility);
54
-		}else{
55
-			$lists = '<em>&lt;All&gt;</em>';
56
-		}
57
-		
58
-		return new LiteralField('VisibleTo',$lists);
59
-	}
60
-	
61
-	public function BlockType() {
62
-		return $this->singular_name();
63
-	}
64
-	
65
-	public function shownOn() {
66
-		if ($this->showBlockbyClass) {
67
-			if (strlen(trim($this->shownInClass)) > 0) {
68
-				$lists = 'Type: ' . str_replace(',','<br />Type: ', $this->shownInClass);
69
-			}else{
70
-				$lists = '<em>&lt;not assigned&gt;</em>';
71
-			}
72
-		}else{
73
-			if ($this->Pages()->count() > 0) {
74
-				$lists = 'Page: ' . implode('<br />Page: ', $this->Pages()->column('Title'));
75
-			}else{
76
-				$lists = '<em>&lt;not assigned&gt;</em>';
77
-			}
78
-		}
79
-		return new LiteralField('shownOn',$lists);
80
-	}
81
-	
82
-	public function getCMSFields() {
83
-		$fields = parent::getCMSFields();
84
-		$fields->removeFieldFromTab('Root', 'Pages');
85
-		$fields->removeFieldsFromTab('Root.Main', array(
86
-			'SortOrder',
87
-			'showBlockbyClass',
88
-			'shownInClass',
89
-			'MemberVisibility'
90
-		));
91
-		
92
-		$fields->addFieldToTab('Root.Main', LiteralField::create('Status', 'Published: ' . $this->Published()), 'Title');
93
-		
94
-		$memberGroups = Group::get();
95
-		$sourcemap = $memberGroups->map('Code', 'Title');
96
-		$source = array(
97
-			'anonymous'		=>	'Anonymous visitors'
98
-		);
99
-		foreach ($sourcemap as $mapping => $key) {
100
-			$source[$mapping] = $key;
101
-		}
102
-		
103
-		$memberVisibility = new CheckboxSetField(
104
-			$name = "MemberVisibility",
105
-			$title = "Show block for specific groups",
106
-			$source
107
-		);
108
-		
109
-		$memberVisibility->setDescription('Show this block only for the selected group(s). If you select no groups, the block will be visible to all members.');
110
-		
111
-		$availabelClasses = $this->availableClasses();
112
-		$inClass = new CheckboxSetField(
113
-			$name = "shownInClass",
114
-			$title = "Show block for specific content types",
115
-			$availabelClasses
116
-		);
117
-		
118
-		$filterSelector = OptionsetField::create(
119
-			'showBlockbyClass',
120
-			'Choose filter set',
121
-			array(
122
-				'0'			=>	'by page',
123
-				'1'			=>	'by page/data type'
124
-			)
125
-		)->setDescription('<p><br /><strong>by page</strong>: block will be displayed in the selected page(s)<br /><strong>by page/data type</strong>: block will be displayed on the pages created with the particular page/data type. e.g. is <strong>"InternalPage"</strong> is picked, the block will be displayed, and will ONLY be displayed on all <strong>Internal Pages</strong></p>');
126
-		
127
-		$availablePages = Page::get()->exclude('ClassName', array(
128
-			'ErrorPage',
129
-			'RedirectorPage',
130
-			'VirtualPage'
131
-		));
132
-		$pageSelector = new CheckboxSetField(
133
-			$name = "Pages",
134
-			$title = "Show on Page(s)",
135
-			$availablePages->map('ID','Title')
136
-		);
137
-		
138
-		
139
-		if ($this->canConfigPageAndType(Member::currentUser())) {
140
-			$fields->addFieldsToTab('Root.VisibilitySettings', array(
141
-				$filterSelector,
142
-				$pageSelector,
143
-				$inClass
144
-			));
145
-		}
146
-		
147
-		if ($this->canConfigMemberVisibility(Member::currentUser())) {
148
-			$fields->addFieldToTab('Root.VisibilitySettings', $memberVisibility);
149
-		}
150
-		
151
-		if (!$fields->fieldByName('Options')) {
152
-			$fields->insertBefore($right = RightSidebar::create('Options'), 'Root');
153
-	    }
154
-	
155
-	    $fields->addFieldsToTab('Options', array(
156
-			CheckboxField::create('addMarginTop', 'add "margin-top" class to block wrapper'),
157
-			CheckboxField::create('addMarginBottom', 'add "margin-bottom" class to block wrapper')
158
-	    ));
159
-
160
-		return $fields;
161
-	}
19
+    protected static $many_many = array (
20
+        'Pages'				=>	'Page'
21
+    );
162 22
 	
163
-	public function doPublish() {
164
-		$this->writeToStage('Live');
165
-	}
166
-	
167
-	public function onBeforeWrite() {
168
-		parent::onBeforeWrite();
169
-		if (empty($this->byPass)) {
170
-			$this->readmode = Versioned::get_reading_mode();
171
-			Versioned::set_reading_mode('Stage.Stage');
172
-		}
173
-	}
174
-	
175
-	public function onAfterWrite() {
176
-		parent::onAfterWrite();
177
-		if (isset($this->readmode)) {
178
-			Versioned::set_reading_mode('Stage.' . $this->readmode);
179
-		}
180
-	}
181
-	
182
-	public function availableClasses() {
183
-		$Classes = array_diff(
184
-			ClassInfo::subclassesFor('Page'),
185
-			ClassInfo::subclassesFor('RedirectorPage'),
186
-			ClassInfo::subclassesFor('VirtualPage')
187
-		);
188
-		return $Classes;
189
-	}
190
-	
191
-	public function forTemplate() {
192
-		if ($this->canDisplayMemberCheck()) {
193
-			return $this->renderWith(array($this->getClassName(), 'BaseBlock'));
194
-		}
195
-		
196
-		return false;
197
-	}
198
-	
199
-	public function canDisplayMemberCheck() {
200
-		$rawVisibility = $this->MemberVisibility;
201
-		
202
-		if (empty($rawVisibility)) {
203
-			return true;
204
-		}
205
-		
206
-		$visibility = explode(',', $rawVisibility);
207
-		$member = Member::currentUser();
208
-		
209
-		if (!$member && in_array('anonymous', $visibility)) {
210
-			return true;
211
-		}
212
-		
213
-		if ($member) {
214
-			$memberGroups = $member->Groups()->column('Code');
215
-			foreach ($memberGroups as $memberGroup) {
216
-				if (in_array($memberGroup, $visibility)) {
217
-					return true;
218
-				}
219
-			}
220
-		}
221
-		
222
-		return false;
223
-	}
224
-	
225
-	public function frontendEditable() {
226
-		$member = Member::currentUser();		
227
-		return $this->canEdit($member);
228
-	}
229
-	
230
-	public function Type2Class() {
231
-		return strtolower(str_replace(' ', '-', $this->singular_name()));
232
-	}
233
-	
234
-	/*public function doPublish() {
23
+    protected static $default_sort = array(
24
+        'SortOrder'			=>	'ASC',
25
+        'ID'					=>	'DESC'
26
+    );
27
+		
28
+    protected static $create_table_options = array(
29
+        'MySQLDatabase'		=> 'ENGINE=MyISAM'
30
+    );
31
+	
32
+    protected static $extensions = array (
33
+        'StandardPermissions'
34
+    );
35
+	
36
+    protected static $summary_fields = array(
37
+        'BlockType',
38
+        'Title', 
39
+        'Description',
40
+        'shownOn',
41
+        'VisibleTo',
42
+        'Published'
43
+    );
44
+	
45
+    protected static $field_labels = array(
46
+        'BlockType'			=>	'Block type',
47
+        'shownOn'			=>	'is shown on',
48
+        'VisibleTo'			=>	'Visible to'
49
+    );
50
+	
51
+    public function VisibleTo() {
52
+        if (strlen(trim($this->MemberVisibility)) > 0) {
53
+            $lists = 'Group: ' . str_replace(',','<br />Group: ', $this->MemberVisibility);
54
+        }else{
55
+            $lists = '<em>&lt;All&gt;</em>';
56
+        }
57
+		
58
+        return new LiteralField('VisibleTo',$lists);
59
+    }
60
+	
61
+    public function BlockType() {
62
+        return $this->singular_name();
63
+    }
64
+	
65
+    public function shownOn() {
66
+        if ($this->showBlockbyClass) {
67
+            if (strlen(trim($this->shownInClass)) > 0) {
68
+                $lists = 'Type: ' . str_replace(',','<br />Type: ', $this->shownInClass);
69
+            }else{
70
+                $lists = '<em>&lt;not assigned&gt;</em>';
71
+            }
72
+        }else{
73
+            if ($this->Pages()->count() > 0) {
74
+                $lists = 'Page: ' . implode('<br />Page: ', $this->Pages()->column('Title'));
75
+            }else{
76
+                $lists = '<em>&lt;not assigned&gt;</em>';
77
+            }
78
+        }
79
+        return new LiteralField('shownOn',$lists);
80
+    }
81
+	
82
+    public function getCMSFields() {
83
+        $fields = parent::getCMSFields();
84
+        $fields->removeFieldFromTab('Root', 'Pages');
85
+        $fields->removeFieldsFromTab('Root.Main', array(
86
+            'SortOrder',
87
+            'showBlockbyClass',
88
+            'shownInClass',
89
+            'MemberVisibility'
90
+        ));
91
+		
92
+        $fields->addFieldToTab('Root.Main', LiteralField::create('Status', 'Published: ' . $this->Published()), 'Title');
93
+		
94
+        $memberGroups = Group::get();
95
+        $sourcemap = $memberGroups->map('Code', 'Title');
96
+        $source = array(
97
+            'anonymous'		=>	'Anonymous visitors'
98
+        );
99
+        foreach ($sourcemap as $mapping => $key) {
100
+            $source[$mapping] = $key;
101
+        }
102
+		
103
+        $memberVisibility = new CheckboxSetField(
104
+            $name = "MemberVisibility",
105
+            $title = "Show block for specific groups",
106
+            $source
107
+        );
108
+		
109
+        $memberVisibility->setDescription('Show this block only for the selected group(s). If you select no groups, the block will be visible to all members.');
110
+		
111
+        $availabelClasses = $this->availableClasses();
112
+        $inClass = new CheckboxSetField(
113
+            $name = "shownInClass",
114
+            $title = "Show block for specific content types",
115
+            $availabelClasses
116
+        );
117
+		
118
+        $filterSelector = OptionsetField::create(
119
+            'showBlockbyClass',
120
+            'Choose filter set',
121
+            array(
122
+                '0'			=>	'by page',
123
+                '1'			=>	'by page/data type'
124
+            )
125
+        )->setDescription('<p><br /><strong>by page</strong>: block will be displayed in the selected page(s)<br /><strong>by page/data type</strong>: block will be displayed on the pages created with the particular page/data type. e.g. is <strong>"InternalPage"</strong> is picked, the block will be displayed, and will ONLY be displayed on all <strong>Internal Pages</strong></p>');
126
+		
127
+        $availablePages = Page::get()->exclude('ClassName', array(
128
+            'ErrorPage',
129
+            'RedirectorPage',
130
+            'VirtualPage'
131
+        ));
132
+        $pageSelector = new CheckboxSetField(
133
+            $name = "Pages",
134
+            $title = "Show on Page(s)",
135
+            $availablePages->map('ID','Title')
136
+        );
137
+		
138
+		
139
+        if ($this->canConfigPageAndType(Member::currentUser())) {
140
+            $fields->addFieldsToTab('Root.VisibilitySettings', array(
141
+                $filterSelector,
142
+                $pageSelector,
143
+                $inClass
144
+            ));
145
+        }
146
+		
147
+        if ($this->canConfigMemberVisibility(Member::currentUser())) {
148
+            $fields->addFieldToTab('Root.VisibilitySettings', $memberVisibility);
149
+        }
150
+		
151
+        if (!$fields->fieldByName('Options')) {
152
+            $fields->insertBefore($right = RightSidebar::create('Options'), 'Root');
153
+        }
154
+	
155
+        $fields->addFieldsToTab('Options', array(
156
+            CheckboxField::create('addMarginTop', 'add "margin-top" class to block wrapper'),
157
+            CheckboxField::create('addMarginBottom', 'add "margin-bottom" class to block wrapper')
158
+        ));
159
+
160
+        return $fields;
161
+    }
162
+	
163
+    public function doPublish() {
164
+        $this->writeToStage('Live');
165
+    }
166
+	
167
+    public function onBeforeWrite() {
168
+        parent::onBeforeWrite();
169
+        if (empty($this->byPass)) {
170
+            $this->readmode = Versioned::get_reading_mode();
171
+            Versioned::set_reading_mode('Stage.Stage');
172
+        }
173
+    }
174
+	
175
+    public function onAfterWrite() {
176
+        parent::onAfterWrite();
177
+        if (isset($this->readmode)) {
178
+            Versioned::set_reading_mode('Stage.' . $this->readmode);
179
+        }
180
+    }
181
+	
182
+    public function availableClasses() {
183
+        $Classes = array_diff(
184
+            ClassInfo::subclassesFor('Page'),
185
+            ClassInfo::subclassesFor('RedirectorPage'),
186
+            ClassInfo::subclassesFor('VirtualPage')
187
+        );
188
+        return $Classes;
189
+    }
190
+	
191
+    public function forTemplate() {
192
+        if ($this->canDisplayMemberCheck()) {
193
+            return $this->renderWith(array($this->getClassName(), 'BaseBlock'));
194
+        }
195
+		
196
+        return false;
197
+    }
198
+	
199
+    public function canDisplayMemberCheck() {
200
+        $rawVisibility = $this->MemberVisibility;
201
+		
202
+        if (empty($rawVisibility)) {
203
+            return true;
204
+        }
205
+		
206
+        $visibility = explode(',', $rawVisibility);
207
+        $member = Member::currentUser();
208
+		
209
+        if (!$member && in_array('anonymous', $visibility)) {
210
+            return true;
211
+        }
212
+		
213
+        if ($member) {
214
+            $memberGroups = $member->Groups()->column('Code');
215
+            foreach ($memberGroups as $memberGroup) {
216
+                if (in_array($memberGroup, $visibility)) {
217
+                    return true;
218
+                }
219
+            }
220
+        }
221
+		
222
+        return false;
223
+    }
224
+	
225
+    public function frontendEditable() {
226
+        $member = Member::currentUser();		
227
+        return $this->canEdit($member);
228
+    }
229
+	
230
+    public function Type2Class() {
231
+        return strtolower(str_replace(' ', '-', $this->singular_name()));
232
+    }
233
+	
234
+    /*public function doPublish() {
235 235
 		$this->writeToStage('Live');
236 236
 	}*/
237 237
 	
238
-	public function Published() {
239
-		return $this->isPublished() ? 'Yes' : 'No';
240
-	}
238
+    public function Published() {
239
+        return $this->isPublished() ? 'Yes' : 'No';
240
+    }
241 241
 	
242
-	public function isPublished() {
243
-		if (!empty(Versioned::get_by_stage('Block', 'Live')->byID($this->ID))) {
244
-			return true;
245
-		}
242
+    public function isPublished() {
243
+        if (!empty(Versioned::get_by_stage('Block', 'Live')->byID($this->ID))) {
244
+            return true;
245
+        }
246 246
 		
247
-		return false;
248
-	}
247
+        return false;
248
+    }
249 249
 
250 250
 }
251 251
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
 use SaltedHerring\Debugger as Debugger;
4 4
 
5 5
 class Block extends DataObject {
6
-	protected static $db = array (
6
+	protected static $db = array(
7 7
 		'SortOrder'			=>	'Int',
8 8
 		'Title'				=>	'Varchar(64)',
9 9
 		'TitleWrapper'		=>	'Enum("h2,h3,h4,h5,h6")',
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
 		'addMarginBottom'	=>	'Boolean'
17 17
 	);
18 18
 	
19
-	protected static $many_many = array (
19
+	protected static $many_many = array(
20 20
 		'Pages'				=>	'Page'
21 21
 	);
22 22
 	
@@ -29,7 +29,7 @@  discard block
 block discarded – undo
29 29
 		'MySQLDatabase'		=> 'ENGINE=MyISAM'
30 30
     );
31 31
 	
32
-	protected static $extensions = array (
32
+	protected static $extensions = array(
33 33
 		'StandardPermissions'
34 34
 	);
35 35
 	
@@ -50,12 +50,12 @@  discard block
 block discarded – undo
50 50
 	
51 51
 	public function VisibleTo() {
52 52
 		if (strlen(trim($this->MemberVisibility)) > 0) {
53
-			$lists = 'Group: ' . str_replace(',','<br />Group: ', $this->MemberVisibility);
54
-		}else{
53
+			$lists = 'Group: '.str_replace(',', '<br />Group: ', $this->MemberVisibility);
54
+		} else {
55 55
 			$lists = '<em>&lt;All&gt;</em>';
56 56
 		}
57 57
 		
58
-		return new LiteralField('VisibleTo',$lists);
58
+		return new LiteralField('VisibleTo', $lists);
59 59
 	}
60 60
 	
61 61
 	public function BlockType() {
@@ -65,18 +65,18 @@  discard block
 block discarded – undo
65 65
 	public function shownOn() {
66 66
 		if ($this->showBlockbyClass) {
67 67
 			if (strlen(trim($this->shownInClass)) > 0) {
68
-				$lists = 'Type: ' . str_replace(',','<br />Type: ', $this->shownInClass);
69
-			}else{
68
+				$lists = 'Type: '.str_replace(',', '<br />Type: ', $this->shownInClass);
69
+			} else {
70 70
 				$lists = '<em>&lt;not assigned&gt;</em>';
71 71
 			}
72
-		}else{
72
+		} else {
73 73
 			if ($this->Pages()->count() > 0) {
74
-				$lists = 'Page: ' . implode('<br />Page: ', $this->Pages()->column('Title'));
75
-			}else{
74
+				$lists = 'Page: '.implode('<br />Page: ', $this->Pages()->column('Title'));
75
+			} else {
76 76
 				$lists = '<em>&lt;not assigned&gt;</em>';
77 77
 			}
78 78
 		}
79
-		return new LiteralField('shownOn',$lists);
79
+		return new LiteralField('shownOn', $lists);
80 80
 	}
81 81
 	
82 82
 	public function getCMSFields() {
@@ -89,7 +89,7 @@  discard block
 block discarded – undo
89 89
 			'MemberVisibility'
90 90
 		));
91 91
 		
92
-		$fields->addFieldToTab('Root.Main', LiteralField::create('Status', 'Published: ' . $this->Published()), 'Title');
92
+		$fields->addFieldToTab('Root.Main', LiteralField::create('Status', 'Published: '.$this->Published()), 'Title');
93 93
 		
94 94
 		$memberGroups = Group::get();
95 95
 		$sourcemap = $memberGroups->map('Code', 'Title');
@@ -132,7 +132,7 @@  discard block
 block discarded – undo
132 132
 		$pageSelector = new CheckboxSetField(
133 133
 			$name = "Pages",
134 134
 			$title = "Show on Page(s)",
135
-			$availablePages->map('ID','Title')
135
+			$availablePages->map('ID', 'Title')
136 136
 		);
137 137
 		
138 138
 		
@@ -175,7 +175,7 @@  discard block
 block discarded – undo
175 175
 	public function onAfterWrite() {
176 176
 		parent::onAfterWrite();
177 177
 		if (isset($this->readmode)) {
178
-			Versioned::set_reading_mode('Stage.' . $this->readmode);
178
+			Versioned::set_reading_mode('Stage.'.$this->readmode);
179 179
 		}
180 180
 	}
181 181
 	
Please login to merge, or discard this patch.