getService(\'seopro\', \'seoPro\', $modx->getOption(\'seopro.core_path\', null, $modx->getOption(\'core_path\') . \'components/seopro/\') . \'model/seopro/\', $scriptProperties);
if (!($seoPro instanceof seoPro)) {
return \'\';
}
$disabledTemplates = explode(\',\', $modx->getOption(\'seopro.disabledtemplates\', null, \'0\'));
switch ($modx->event->name) {
case \'OnMODXInit\':
$version = $modx->getVersionData();
$version = (int)($version[\'version\'] . $version[\'major_version\']);
if ($version < 27) {
$modx->loadClass(\'modResource\');
$modx->map[\'modResource\'][\'fieldMeta\'][\'description\'] = array(
\'dbtype\' => \'text\',
\'phptype\' => \'string\',
\'index\' => \'fulltext\',
\'indexgrp\' => \'content_ft_idx\',
);
}
break;
case \'OnDocFormRender\':
$template = (string)$resource->get(\'template\');
$override = false;
if (isset($_REQUEST[\'template\'])) {
$template = (string)$_REQUEST[\'template\'];
$override = true;
}
if (($override && $template === \'0\') || (!empty($template) && in_array($template, $disabledTemplates))) {
break;
}
$currClassKey = $resource->get(\'class_key\');
$strFields = $modx->getOption(\'seopro.fields\', null, \'pagetitle:70,longtitle:70,description:320,alias:2023,menutitle:2023\');
$arrFields = array();
if (is_array(explode(\',\', $strFields))) {
foreach (explode(\',\', $strFields) as $field) {
list($fieldName, $fieldCount) = explode(\':\', $field);
$arrFields[$fieldName] = $fieldCount;
}
} else {
return \'\';
}
$keywords = \'\';
$modx->controller->addLexiconTopic(\'seopro:default\');
$ctxKey = !empty($resource) ? $resource->get(\'context_key\') : $modx->getOption(\'default_context\');
$ctx = $modx->getContext($ctxKey);
if ($ctx) {
$url = $ctx->getOption(\'site_url\', \'\', $modx->getOption(\'site_url\'));
} else {
$url = $modx->getOption(\'site_url\');
}
if ($mode == \'upd\') {
if ($ctx) {
if ($resource->get(\'id\') != $ctx->getOption(\'site_start\', \'\', $modx->getOption(\'site_start\'))) {
$url .= $resource->get(\'uri\');
}
} else {
$url = $modx->makeUrl($resource->get(\'id\'), \'\', \'\', \'full\');
}
$url = str_replace(
$resource->get(\'alias\'),
\'\' . $resource->get(\'alias\') . \'\',
$url
);
$seoKeywords = $modx->getObject(\'seoKeywords\', array(\'resource\' => $resource->get(\'id\')));
if ($seoKeywords) {
$keywords = $seoKeywords->get(\'keywords\');
}
}
if ($_REQUEST[\'id\'] == $modx->getOption(\'site_start\')) {
unset($arrFields[\'alias\']);
unset($arrFields[\'menutitle\']);
}
$config = $seoPro->config;
unset($config[\'resource\']);
$modx->regClientStartupHTMLBlock(\'\');
/* include CSS and JS*/
$version = $modx->getVersionData();
if($version[\'version\'] == 2 && $version[\'major_version\'] == 2){
$modx->regClientCSS($seoPro->config[\'assetsUrl\'] . \'css/mgr.css\');
}else{
$modx->regClientCSS($seoPro->config[\'assetsUrl\'] . \'css/mgr23.css\');
}
$modx->regClientStartupScript($seoPro->config[\'assetsUrl\'] . \'js/mgr/seopro.js??v=\' . $modx->getOption(\'seopro.version\', null, \'v1.0.0\'));
$modx->regClientStartupScript($seoPro->config[\'assetsUrl\'] . \'js/mgr/resource.js?v=\' . $modx->getOption(\'seopro.version\', null, \'v1.0.0\'));
break;
case \'OnDocFormSave\':
$template = (string)$resource->get(\'template\');
$override = false;
if (isset($_REQUEST[\'template\'])) {
$template = (string)$_REQUEST[\'template\'];
$override = true;
}
if (($override && $template === \'0\') || (!empty($template) && in_array($template, $disabledTemplates))) {
break;
}
$seoKeywords = $modx->getObject(\'seoKeywords\', array(\'resource\' => $resource->get(\'id\')));
if (!$seoKeywords && isset($resource)) {
$seoKeywords = $modx->newObject(\'seoKeywords\', array(\'resource\' => $resource->get(\'id\')));
}
if($seoKeywords){
if (isset($_POST[\'keywords\'])){
$seoKeywords->set(\'keywords\', trim($_POST[\'keywords\'], \',\'));
} else {
$seoKeywords->set(\'keywords\', \'\');
}
$seoKeywords->save();
}
break;
case \'onResourceDuplicate\':
$template = (string)$resource->get(\'template\');
$override = false;
if (isset($_REQUEST[\'template\'])) {
$template = (string)$_REQUEST[\'template\'];
$override = true;
}
if (($override && $template === \'0\') || (!empty($template) && in_array($template, $disabledTemplates))) {
break;
}
$seoKeywords = $modx->getObject(\'seoKeywords\', array(\'resource\' => $resource->get(\'id\')));
if (!$seoKeywords) {
$seoKeywords = $modx->newObject(\'seoKeywords\', array(\'resource\' => $resource->get(\'id\')));
}
$newSeoKeywords = $modx->newObject(\'seoKeywords\');
$newSeoKeywords->fromArray($seoKeywords->toArray());
$newSeoKeywords->set(\'resource\', $newResource->get(\'id\'));
$newSeoKeywords->save();
break;
case \'OnLoadWebDocument\':
if ($modx->context->get(\'key\') == "mgr") {
break;
}
$template = ($modx->resource->get(\'template\')) ? (string)$modx->resource->get(\'template\') : \'\';
if (in_array($template, $disabledTemplates)) {
break;
}
$seoKeywords = $modx->getObject(\'seoKeywords\', array(\'resource\' => $modx->resource->get(\'id\')));
if ($seoKeywords) {
$keyWords = $seoKeywords->get(\'keywords\');
$modx->setPlaceholder(\'seoPro.keywords\', $keyWords);
}
// Render the meta title, based on system settings
$titleFormat = $modx->getOption(\'seopro.title_format\');
if (empty($titleFormat)) {
$siteDelimiter = $modx->getOption(\'seopro.delimiter\', null, \'/\');
$siteUseSitename = (boolean)$modx->getOption(\'seopro.usesitename\', null, true);
$siteID = $modx->resource->get(\'id\');
$siteName = $modx->getOption(\'site_name\');
$longtitle = $modx->resource->get(\'longtitle\');
$pagetitle = $modx->resource->get(\'pagetitle\');
$seoProTitle = array();
if ($siteID == $modx->getOption(\'site_start\')) {
$seoProTitle[\'pagetitle\'] = !empty($longtitle) ? $longtitle : $siteName;
} else {
$seoProTitle[\'pagetitle\'] = !empty($longtitle) ? $longtitle : $pagetitle;
if ($siteUseSitename) {
$seoProTitle[\'delimiter\'] = $siteDelimiter;
$seoProTitle[\'sitename\'] = $siteName;
}
}
$title = implode(\' \', $seoProTitle);
} else {
$title = $modx->getOption(\'seopro.title_format\');
}
$modx->setPlaceholder(\'seoPro.title\', $title);
break;
}
return;
';