| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- <?php return '/**
- * The base seoPro snippet.
- *
- * @package seopro
- */
- $seoPro = $modx->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\'),
- \'<span id=\\"seopro-replace-alias\\">\' . $resource->get(\'alias\') . \'</span>\',
- $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(\'<script type="text/javascript">
- Ext.onReady(function() {
- seoPro.config = \' . $modx->toJSON($config) . \';
- seoPro.config.record = "\' . $keywords . \'";
- seoPro.config.values = {};
- seoPro.config.fields = "\' . implode(",", array_keys($arrFields)) . \'";
- seoPro.config.chars = \' . $modx->toJSON($arrFields) . \'
- seoPro.config.url = "\' . $url . \'";
- });</script>\');
- /* 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;
- ';
|