, (*1)
Overview
Adds limit counters to the meta title and description fields in the CMS., (*2)
Two levels of limits can be configured to allow longer texts for certain search engines (i.e. Google)., (*3)
Requirements
Note: this version is compatible with SilverStripe 5. For SilverStripe 4, please see the 2 release line. For SilverStripe 3, please see the 1.1 release line., (*4)
Installation
Install the module using composer:, (*5)
composer require innoweb/silverstripe-metacounter dev-master
Then run dev/build., (*6)
Configuration
The default limits are as follows and can be overridden in your site's config.yml:, (*7)
Innoweb\MetaCounter\Model\SiteTreeExtension:
meta_title_length: 55
meta_title_length_extended: 55
meta_description_length: 160
meta_description_length_extended: 300
Once the text exceeds the configured length of a field the counter will turn orange, once it exceeds length_extended it will turn red and count backwards., (*8)
If length_extended is not configured or if it is the same as length, the counter will turn red if the text exceeds length., (*9)
Troubleshooting
Sometimes you may add a MetaTitle field to your Page sub/class, with correct length configurations, but no counter appears., (*10)
If you have added the field manually rather than via kinglozzer/metatitle sometimes the Page extension in this module will run before your MetaTitle field is present (and as result there is no field for the counter to attach to)., (*11)
To protect against this, use beforeUpdateCMSFields() inside your getCMSFields():, (*12)
public function getCMSFields()
{
$this->beforeUpdateCMSFields(function(FieldList $fields) {
$fields->insertBefore(
'MetaDescription',
TextField::create('MetaTitle', $this->fieldLabel('MetaTitle'))
);
});
$fields = parent::getCMSFields();
// your other class-specific CMS fields setup
return $fields;
}
License
BSD 3-Clause License, see License, (*13)