Skip to content
This repository was archived by the owner on Oct 13, 2025. It is now read-only.

Commit 9645ae3

Browse files
committed
metadescription
1 parent 1976bd3 commit 9645ae3

File tree

1 file changed

+60
-35
lines changed

1 file changed

+60
-35
lines changed

code/ExtraPageFieldsExtension.php

Lines changed: 60 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -4,52 +4,77 @@
44
* Class ExtraPageFieldsExtension
55
*
66
*/
7-
class ExtraPageFieldsExtension extends SiteTreeExtension {
7+
class ExtraPageFieldsExtension extends SiteTreeExtension
8+
{
89

9-
private static $db = array(
10-
'SubTitle' => 'Text',
11-
'MetaTitle' => 'Text',
12-
'MenuTarget' => 'Varchar(255)'
13-
);
10+
private $metaDescriptionLength = 156;
1411

15-
public function updateCMSFields(FieldList $fields) {
12+
private static $db = array(
13+
'SubTitle' => 'Text',
14+
'MetaTitle' => 'Text',
15+
'MenuTarget' => 'Varchar(255)'
16+
);
1617

17-
//change Page Name label to Primary Heading - H1 - Only if the title hasn't already been changed
18-
/** @var TextField $titleField */
19-
$titleField = $fields->dataFieldByName('Title');
20-
if ($titleField->Title() == 'Page Name') {
21-
$fields->renameField('Title', 'Primary Heading');
22-
}
18+
public function updateCMSFields(FieldList $fields)
19+
{
2320

24-
//Add secondary heading - H2
25-
$fields->insertAfter(TextField::create('SubTitle', 'Secondary Heading'), 'Title');
21+
//change Page Name label to Primary Heading - H1 - Only if the title hasn't already been changed
22+
/** @var TextField $titleField */
23+
$titleField = $fields->dataFieldByName('Title');
24+
if ($titleField->Title() == 'Page name') {
25+
$fields->renameField('Title', 'Primary Heading');
26+
}
2627

27-
//Move meta fields to their own tab
28+
//Add secondary heading - H2
29+
$fields->insertAfter(TextField::create('SubTitle', 'Secondary Heading'), 'Title');
2830

29-
/** @var ToggleCompositeField $metaDataChildren */
30-
$metaDataChildren = $fields->fieldByName('Root.Main.Metadata');
31-
$children = array_merge([$metaTitle = TextField::create('MetaTitle')], $metaDataChildren->getChildren()->toArray());
32-
$fields->removeFieldFromTab('Root.Main', 'Metadata');
33-
$fields->addFieldToTab('Root', Tab::create('Metadata'), 'Content');
31+
//Move meta fields to their own tab
3432

35-
//Add META Title tag to METADATA
36-
$fields->addFieldsToTab('Root.Metadata', $children);
33+
/** @var ToggleCompositeField $metaDataChildren */
34+
$metaDataChildren = $fields->fieldByName('Root.Main.Metadata');
35+
// ddd($metaDataChildren->fieldByName('MetaDescription'));
36+
$children = array_merge([$metaTitle = TextField::create('MetaTitle')], $metaDataChildren->getChildren()->toArray());
37+
$fields->removeFieldFromTab('Root.Main', 'Metadata');
38+
$fields->addFieldToTab('Root', Tab::create('Metadata'), 'Content');
3739

38-
$metaTitle->setDescription('Displayed as the tab/window name; Also displayed in search engine result listings as the page title.<br />
40+
//Add META Title tag to METADATA
41+
$metaDataChildren->fieldByName('MetaDescription')->setAttribute('maxlength', $this->metaDescriptionLength);
42+
$fields->addFieldsToTab('Root.Metadata', $children);
43+
44+
$metaTitle->setDescription('Displayed as the tab/window name; Also displayed in search engine result listings as the page title.<br />
3945
Falls back to the Primary Heading field if not provided.');
4046

41-
}
47+
}
48+
49+
public function updateSettingsFields(FieldList $fields)
50+
{
51+
//quick links option
52+
$fields->addFieldToTab("Root.Settings", new DropdownField('MenuTarget', 'Open page in', [
53+
'' => 'Current Tab (Browser default)',
54+
'_blank' => 'New Tab'
55+
]));
56+
}
57+
58+
Public function MenuTarget()
59+
{
60+
return empty($this->owner->MenuTarget) ? '' : "target=\"{$this->owner->MenuTarget}\"";
61+
}
62+
63+
public function onBeforeWrite()
64+
{
65+
parent::onBeforeWrite();
4266

43-
public function updateSettingsFields(FieldList $fields) {
44-
//quick links option
45-
$fields->addFieldToTab("Root.Settings", new DropdownField('MenuTarget', 'Open page in', [
46-
'' => 'Current Tab (Browser default)',
47-
'_blank' => 'New Tab'
48-
]));
49-
}
5067

51-
Public function MenuTarget(){
52-
return empty($this->owner->MenuTarget) ? '' : "target=\"{$this->owner->MenuTarget}\"";
53-
}
68+
if (strlen($this->owner->MetaDescription) > $this->metaDescriptionLength) {
69+
/** @var Text $value */
70+
$value = $this->owner->dbObject('MetaDescription');
71+
$value = $value->LimitCharacters($this->metaDescriptionLength);
72+
$this->owner->MetaDescription = $value;
73+
};
74+
75+
76+
//here
77+
}
5478
}
5579

80+

0 commit comments

Comments
 (0)