Completed
Push — master ( 456b40...a39e98 )
by Robbie
10s
created
src/PageTypes/BasePage.php 1 patch
Indentation   +143 added lines, -143 removed lines patch added patch discarded remove patch
@@ -27,147 +27,147 @@
 block discarded – undo
27 27
 
28 28
 class BasePage extends SiteTree
29 29
 {
30
-    private static $icon = 'cwp/cwp:images/icons/sitetree_images/page.png';
31
-
32
-    /**
33
-     * Hide this page type from the CMS. hide_ancestor is slightly misnamed, should really be just "hide"
34
-     *
35
-     * {@inheritDoc}
36
-     */
37
-    private static $hide_ancestor = BasePage::class;
38
-
39
-    private static $api_access = [
40
-        'view' => [
41
-            'Locale', 'URLSegment', 'Title', 'MenuTitle', 'Content', 'MetaDescription',
42
-            'ExtraMenu', 'Sort', 'Version', 'ParentID', 'ID'
43
-        ],
44
-        'edit' => [
45
-            'Locale', 'URLSegment', 'Title', 'MenuTitle', 'Content', 'MetaDescription',
46
-            'ExtraMenu', 'Sort', 'Version', 'ParentID', 'ID'
47
-        ],
48
-    ];
49
-
50
-    private static $table_name = 'BasePage';
51
-
52
-    /**
53
-     * @config
54
-     * @var string
55
-     */
56
-    private static $related_pages_title = 'Related pages';
57
-
58
-    private static $many_many = [
59
-        'Terms' => TaxonomyTerm::class,
60
-        'RelatedPages' => BasePage::class,
61
-    ];
62
-
63
-    /**
64
-     * @var array
65
-     * @config
66
-     */
67
-    private static $many_many_extraFields = [
68
-        'RelatedPages' => [
69
-            'SortOrder' => DBInt::class,
70
-        ],
71
-    ];
72
-
73
-    private static $plural_name = 'Base Pages';
74
-
75
-    /**
76
-     * Get the footer holder.
77
-     */
78
-    public function getFooter()
79
-    {
80
-        return FooterHolder::get_one(FooterHolder::class);
81
-    }
82
-
83
-    public function RelatedPages()
84
-    {
85
-        return $this->getManyManyComponents('RelatedPages')->sort('SortOrder');
86
-    }
87
-
88
-    public function RelatedPagesTitle()
89
-    {
90
-        return $this->config()->get('related_pages_title');
91
-    }
92
-
93
-    public function getCMSFields()
94
-    {
95
-        $this->beforeUpdateCMSFields(function (FieldList $fields) {
96
-            // Related Pages
97
-            $components = GridFieldConfig_RelationEditor::create();
98
-            $components->removeComponentsByType(GridFieldAddNewButton::class);
99
-            $components->removeComponentsByType(GridFieldEditButton::class);
100
-            $components->removeComponentsByType(GridFieldFilterHeader::class);
101
-            $components->addComponent(new GridFieldSortableRows('SortOrder'));
102
-
103
-            /** @var GridFieldDataColumns $dataColumns */
104
-            $dataColumns = $components->getComponentByType(GridFieldDataColumns::class);
105
-            $dataColumns->setDisplayFields([
106
-                'Title' => _t(__CLASS__ . '.ColumnTitle', 'Title'),
107
-                'ClassName' => _t(__CLASS__ . '.ColumnPageType', 'Page Type')
108
-            ]);
109
-
110
-            $fields->findOrMakeTab(
111
-                'Root.RelatedPages',
112
-                _t(__CLASS__ . '.RelatedPages', 'Related pages')
113
-            );
114
-            $fields->addFieldToTab(
115
-                'Root.RelatedPages',
116
-                GridField::create(
117
-                    'RelatedPages',
118
-                    _t(__CLASS__ . '.RelatedPages', 'Related pages'),
119
-                    $this->RelatedPages(),
120
-                    $components
121
-                )
122
-            );
123
-
124
-            // Taxonomies - Unless they have their own 'Tags' field (such as in Blog, etc)
125
-            $hasMany = $this->hasMany();
126
-            $manyMany = $this->manyMany();
127
-            if (!isset($hasMany['Tags']) && !isset($manyMany['Tags'])) {
128
-                $components = GridFieldConfig_RelationEditor::create();
129
-                $components->removeComponentsByType(GridFieldAddNewButton::class);
130
-                $components->removeComponentsByType(GridFieldEditButton::class);
131
-
132
-                /** @var GridFieldAddExistingAutocompleter $autoCompleter */
133
-                $autoCompleter = $components->getComponentByType(GridFieldAddExistingAutocompleter::class);
134
-                $autoCompleter->setResultsFormat('$Name ($TaxonomyName)');
135
-
136
-                /** @var GridFieldDataColumns $dataColumns */
137
-                $dataColumns = $components->getComponentByType(GridFieldDataColumns::class);
138
-                $dataColumns->setDisplayFields([
139
-                    'Name' => _t(__CLASS__ . '.Term', 'Term'),
140
-                    'TaxonomyName' => _t(__CLASS__ . '.Taxonomy', 'Taxonomy')
141
-                ]);
142
-
143
-                $fields->findOrMakeTab('Root.Tags', _t(__CLASS__ . '.TagsTabTitle', 'Tags'));
144
-                $fields->addFieldToTab(
145
-                    'Root.Tags',
146
-                    TreeMultiselectField::create(
147
-                        'Terms',
148
-                        _t(__CLASS__ . '.Terms', 'Terms'),
149
-                        TaxonomyTerm::class
150
-                    )->setDescription(_t(__CLASS__ . '.TermsDescription', 'Click to search for additional terms'))
151
-                );
152
-            }
153
-        });
154
-        return parent::getCMSFields();
155
-    }
156
-
157
-    /**
158
-     * Returns the native language name for the selected locale/language, empty string if Fluent is not available
159
-     *
160
-     * @return string
161
-     */
162
-    public function getSelectedLanguage()
163
-    {
164
-        if (!class_exists(Locale::class) || !$this->hasMethod('Locales')) {
165
-            return '';
166
-        }
167
-
168
-        /** @var ArrayData $information */
169
-        $information = $this->LocaleInformation(FluentState::singleton()->getLocale());
170
-
171
-        return $information->LanguageNative;
172
-    }
30
+	private static $icon = 'cwp/cwp:images/icons/sitetree_images/page.png';
31
+
32
+	/**
33
+	 * Hide this page type from the CMS. hide_ancestor is slightly misnamed, should really be just "hide"
34
+	 *
35
+	 * {@inheritDoc}
36
+	 */
37
+	private static $hide_ancestor = BasePage::class;
38
+
39
+	private static $api_access = [
40
+		'view' => [
41
+			'Locale', 'URLSegment', 'Title', 'MenuTitle', 'Content', 'MetaDescription',
42
+			'ExtraMenu', 'Sort', 'Version', 'ParentID', 'ID'
43
+		],
44
+		'edit' => [
45
+			'Locale', 'URLSegment', 'Title', 'MenuTitle', 'Content', 'MetaDescription',
46
+			'ExtraMenu', 'Sort', 'Version', 'ParentID', 'ID'
47
+		],
48
+	];
49
+
50
+	private static $table_name = 'BasePage';
51
+
52
+	/**
53
+	 * @config
54
+	 * @var string
55
+	 */
56
+	private static $related_pages_title = 'Related pages';
57
+
58
+	private static $many_many = [
59
+		'Terms' => TaxonomyTerm::class,
60
+		'RelatedPages' => BasePage::class,
61
+	];
62
+
63
+	/**
64
+	 * @var array
65
+	 * @config
66
+	 */
67
+	private static $many_many_extraFields = [
68
+		'RelatedPages' => [
69
+			'SortOrder' => DBInt::class,
70
+		],
71
+	];
72
+
73
+	private static $plural_name = 'Base Pages';
74
+
75
+	/**
76
+	 * Get the footer holder.
77
+	 */
78
+	public function getFooter()
79
+	{
80
+		return FooterHolder::get_one(FooterHolder::class);
81
+	}
82
+
83
+	public function RelatedPages()
84
+	{
85
+		return $this->getManyManyComponents('RelatedPages')->sort('SortOrder');
86
+	}
87
+
88
+	public function RelatedPagesTitle()
89
+	{
90
+		return $this->config()->get('related_pages_title');
91
+	}
92
+
93
+	public function getCMSFields()
94
+	{
95
+		$this->beforeUpdateCMSFields(function (FieldList $fields) {
96
+			// Related Pages
97
+			$components = GridFieldConfig_RelationEditor::create();
98
+			$components->removeComponentsByType(GridFieldAddNewButton::class);
99
+			$components->removeComponentsByType(GridFieldEditButton::class);
100
+			$components->removeComponentsByType(GridFieldFilterHeader::class);
101
+			$components->addComponent(new GridFieldSortableRows('SortOrder'));
102
+
103
+			/** @var GridFieldDataColumns $dataColumns */
104
+			$dataColumns = $components->getComponentByType(GridFieldDataColumns::class);
105
+			$dataColumns->setDisplayFields([
106
+				'Title' => _t(__CLASS__ . '.ColumnTitle', 'Title'),
107
+				'ClassName' => _t(__CLASS__ . '.ColumnPageType', 'Page Type')
108
+			]);
109
+
110
+			$fields->findOrMakeTab(
111
+				'Root.RelatedPages',
112
+				_t(__CLASS__ . '.RelatedPages', 'Related pages')
113
+			);
114
+			$fields->addFieldToTab(
115
+				'Root.RelatedPages',
116
+				GridField::create(
117
+					'RelatedPages',
118
+					_t(__CLASS__ . '.RelatedPages', 'Related pages'),
119
+					$this->RelatedPages(),
120
+					$components
121
+				)
122
+			);
123
+
124
+			// Taxonomies - Unless they have their own 'Tags' field (such as in Blog, etc)
125
+			$hasMany = $this->hasMany();
126
+			$manyMany = $this->manyMany();
127
+			if (!isset($hasMany['Tags']) && !isset($manyMany['Tags'])) {
128
+				$components = GridFieldConfig_RelationEditor::create();
129
+				$components->removeComponentsByType(GridFieldAddNewButton::class);
130
+				$components->removeComponentsByType(GridFieldEditButton::class);
131
+
132
+				/** @var GridFieldAddExistingAutocompleter $autoCompleter */
133
+				$autoCompleter = $components->getComponentByType(GridFieldAddExistingAutocompleter::class);
134
+				$autoCompleter->setResultsFormat('$Name ($TaxonomyName)');
135
+
136
+				/** @var GridFieldDataColumns $dataColumns */
137
+				$dataColumns = $components->getComponentByType(GridFieldDataColumns::class);
138
+				$dataColumns->setDisplayFields([
139
+					'Name' => _t(__CLASS__ . '.Term', 'Term'),
140
+					'TaxonomyName' => _t(__CLASS__ . '.Taxonomy', 'Taxonomy')
141
+				]);
142
+
143
+				$fields->findOrMakeTab('Root.Tags', _t(__CLASS__ . '.TagsTabTitle', 'Tags'));
144
+				$fields->addFieldToTab(
145
+					'Root.Tags',
146
+					TreeMultiselectField::create(
147
+						'Terms',
148
+						_t(__CLASS__ . '.Terms', 'Terms'),
149
+						TaxonomyTerm::class
150
+					)->setDescription(_t(__CLASS__ . '.TermsDescription', 'Click to search for additional terms'))
151
+				);
152
+			}
153
+		});
154
+		return parent::getCMSFields();
155
+	}
156
+
157
+	/**
158
+	 * Returns the native language name for the selected locale/language, empty string if Fluent is not available
159
+	 *
160
+	 * @return string
161
+	 */
162
+	public function getSelectedLanguage()
163
+	{
164
+		if (!class_exists(Locale::class) || !$this->hasMethod('Locales')) {
165
+			return '';
166
+		}
167
+
168
+		/** @var ArrayData $information */
169
+		$information = $this->LocaleInformation(FluentState::singleton()->getLocale());
170
+
171
+		return $information->LanguageNative;
172
+	}
173 173
 }
Please login to merge, or discard this patch.