public function sanitizeMetaVars(&$metaVars)
{
$seomaticMeta = $metaVars['seomaticMeta'];
$seomaticSiteMeta = $metaVars['seomaticSiteMeta'];
$seomaticIdentity = $metaVars['seomaticIdentity'];
$seomaticSocial = $metaVars['seomaticSocial'];
$seomaticCreator = $metaVars['seomaticCreator'];
if (isset($metaVars['seomaticMainEntityOfPage'])) {
$seomaticMainEntityOfPage = $metaVars['seomaticMainEntityOfPage'];
}
/* -- Set up the title prefix and suffix for the OpenGraph and Twitter titles */
$titlePrefix = "";
if ($seomaticSiteMeta['siteSeoTitlePlacement'] == "before") {
$titlePrefix = $seomaticSiteMeta['siteSeoName'] . " " . $seomaticSiteMeta['siteSeoTitleSeparator'] . " ";
}
$titleSuffix = "";
if ($seomaticSiteMeta['siteSeoTitlePlacement'] == "after") {
$titleSuffix = " " . $seomaticSiteMeta['siteSeoTitleSeparator'] . " " . $seomaticSiteMeta['siteSeoName'];
}
if (isset($seomaticMeta['twitter'])) {
$seomaticMeta['twitter']['title'] = $titlePrefix . $seomaticMeta['seoTitle'] . $titleSuffix;
}
if (isset($seomaticMeta['og'])) {
$seomaticMeta['og']['title'] = $titlePrefix . $seomaticMeta['seoTitle'] . $titleSuffix;
}
/* -- Truncate seoTitle, seoDescription, and seoKeywords to recommended values */
$titleLength = 0;
if (craft()->config->get("truncateTitleTags", "seomatic")) {
$titleLength = craft()->config->get("maxTitleLength", "seomatic");
if ($seomaticSiteMeta['siteSeoTitlePlacement'] == "none") {
$titleLength = $titleLength;
} else {
$titleLength = $titleLength - strlen(" | ") - strlen($seomaticSiteMeta['siteSeoName']);
}
}
$descriptionLength = 0;
if (craft()->config->get("truncateDescriptionTags", "seomatic")) {
$descriptionLength = craft()->config->get("maxDescriptionLength", "seomatic");
}
$keywordsLength = 0;
if (craft()->config->get("truncateKeywordsTags", "seomatic")) {
$keywordsLength = craft()->config->get("maxKeywordsLength", "seomatic");
}
$vars = array('seoTitle' => $titleLength, 'seoDescription' => $descriptionLength, 'seoKeywords' => $keywordsLength);
foreach ($vars as $key => $value) {
if (isset($seomaticMeta[$key]) && $value) {
$seomaticMeta[$key] = $this->truncateStringOnWord($seomaticMeta[$key], $value);
}
}
/* -- Make sure all of our variables are properly encoded */
$this->sanitizeArray($seomaticMeta);
$this->sanitizeArray($seomaticSiteMeta);
$this->sanitizeArray($seomaticIdentity);
$this->sanitizeArray($seomaticSocial);
$this->sanitizeArray($seomaticCreator);
if (isset($metaVars['seomaticMainEntityOfPage'])) {
$this->sanitizeArray($seomaticMainEntityOfPage);
}
$metaVars['seomaticMeta'] = $seomaticMeta;
$metaVars['seomaticSiteMeta'] = $seomaticSiteMeta;
$metaVars['seomaticIdentity'] = $seomaticIdentity;
$metaVars['seomaticSocial'] = $seomaticSocial;
$metaVars['seomaticCreator'] = $seomaticCreator;
if (isset($metaVars['seomaticMainEntityOfPage'])) {
$metaVars['seomaticMainEntityOfPage'] = $seomaticMainEntityOfPage;
}
}