24.cache.php 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. <?php return '/**
  2. * The base seoPro snippet.
  3. *
  4. * @package seopro
  5. */
  6. $seoPro = $modx->getService(\'seopro\', \'seoPro\', $modx->getOption(\'seopro.core_path\', null, $modx->getOption(\'core_path\') . \'components/seopro/\') . \'model/seopro/\', $scriptProperties);
  7. if (!($seoPro instanceof seoPro)) {
  8. return \'\';
  9. }
  10. $disabledTemplates = explode(\',\', $modx->getOption(\'seopro.disabledtemplates\', null, \'0\'));
  11. switch ($modx->event->name) {
  12. case \'OnMODXInit\':
  13. $version = $modx->getVersionData();
  14. $version = (int)($version[\'version\'] . $version[\'major_version\']);
  15. if ($version < 27) {
  16. $modx->loadClass(\'modResource\');
  17. $modx->map[\'modResource\'][\'fieldMeta\'][\'description\'] = array(
  18. \'dbtype\' => \'text\',
  19. \'phptype\' => \'string\',
  20. \'index\' => \'fulltext\',
  21. \'indexgrp\' => \'content_ft_idx\',
  22. );
  23. }
  24. break;
  25. case \'OnDocFormRender\':
  26. $template = (string)$resource->get(\'template\');
  27. $override = false;
  28. if (isset($_REQUEST[\'template\'])) {
  29. $template = (string)$_REQUEST[\'template\'];
  30. $override = true;
  31. }
  32. if (($override && $template === \'0\') || (!empty($template) && in_array($template, $disabledTemplates))) {
  33. break;
  34. }
  35. $currClassKey = $resource->get(\'class_key\');
  36. $strFields = $modx->getOption(\'seopro.fields\', null, \'pagetitle:70,longtitle:70,description:320,alias:2023,menutitle:2023\');
  37. $arrFields = array();
  38. if (is_array(explode(\',\', $strFields))) {
  39. foreach (explode(\',\', $strFields) as $field) {
  40. list($fieldName, $fieldCount) = explode(\':\', $field);
  41. $arrFields[$fieldName] = $fieldCount;
  42. }
  43. } else {
  44. return \'\';
  45. }
  46. $keywords = \'\';
  47. $modx->controller->addLexiconTopic(\'seopro:default\');
  48. $ctxKey = !empty($resource) ? $resource->get(\'context_key\') : $modx->getOption(\'default_context\');
  49. $ctx = $modx->getContext($ctxKey);
  50. if ($ctx) {
  51. $url = $ctx->getOption(\'site_url\', \'\', $modx->getOption(\'site_url\'));
  52. } else {
  53. $url = $modx->getOption(\'site_url\');
  54. }
  55. if ($mode == \'upd\') {
  56. if ($ctx) {
  57. if ($resource->get(\'id\') != $ctx->getOption(\'site_start\', \'\', $modx->getOption(\'site_start\'))) {
  58. $url .= $resource->get(\'uri\');
  59. }
  60. } else {
  61. $url = $modx->makeUrl($resource->get(\'id\'), \'\', \'\', \'full\');
  62. }
  63. $url = str_replace(
  64. $resource->get(\'alias\'),
  65. \'<span id=\\"seopro-replace-alias\\">\' . $resource->get(\'alias\') . \'</span>\',
  66. $url
  67. );
  68. $seoKeywords = $modx->getObject(\'seoKeywords\', array(\'resource\' => $resource->get(\'id\')));
  69. if ($seoKeywords) {
  70. $keywords = $seoKeywords->get(\'keywords\');
  71. }
  72. }
  73. if ($_REQUEST[\'id\'] == $modx->getOption(\'site_start\')) {
  74. unset($arrFields[\'alias\']);
  75. unset($arrFields[\'menutitle\']);
  76. }
  77. $config = $seoPro->config;
  78. unset($config[\'resource\']);
  79. $modx->regClientStartupHTMLBlock(\'<script type="text/javascript">
  80. Ext.onReady(function() {
  81. seoPro.config = \' . $modx->toJSON($config) . \';
  82. seoPro.config.record = "\' . $keywords . \'";
  83. seoPro.config.values = {};
  84. seoPro.config.fields = "\' . implode(",", array_keys($arrFields)) . \'";
  85. seoPro.config.chars = \' . $modx->toJSON($arrFields) . \'
  86. seoPro.config.url = "\' . $url . \'";
  87. });</script>\');
  88. /* include CSS and JS*/
  89. $version = $modx->getVersionData();
  90. if($version[\'version\'] == 2 && $version[\'major_version\'] == 2){
  91. $modx->regClientCSS($seoPro->config[\'assetsUrl\'] . \'css/mgr.css\');
  92. }else{
  93. $modx->regClientCSS($seoPro->config[\'assetsUrl\'] . \'css/mgr23.css\');
  94. }
  95. $modx->regClientStartupScript($seoPro->config[\'assetsUrl\'] . \'js/mgr/seopro.js??v=\' . $modx->getOption(\'seopro.version\', null, \'v1.0.0\'));
  96. $modx->regClientStartupScript($seoPro->config[\'assetsUrl\'] . \'js/mgr/resource.js?v=\' . $modx->getOption(\'seopro.version\', null, \'v1.0.0\'));
  97. break;
  98. case \'OnDocFormSave\':
  99. $template = (string)$resource->get(\'template\');
  100. $override = false;
  101. if (isset($_REQUEST[\'template\'])) {
  102. $template = (string)$_REQUEST[\'template\'];
  103. $override = true;
  104. }
  105. if (($override && $template === \'0\') || (!empty($template) && in_array($template, $disabledTemplates))) {
  106. break;
  107. }
  108. $seoKeywords = $modx->getObject(\'seoKeywords\', array(\'resource\' => $resource->get(\'id\')));
  109. if (!$seoKeywords && isset($resource)) {
  110. $seoKeywords = $modx->newObject(\'seoKeywords\', array(\'resource\' => $resource->get(\'id\')));
  111. }
  112. if($seoKeywords){
  113. if (isset($_POST[\'keywords\'])){
  114. $seoKeywords->set(\'keywords\', trim($_POST[\'keywords\'], \',\'));
  115. } else {
  116. $seoKeywords->set(\'keywords\', \'\');
  117. }
  118. $seoKeywords->save();
  119. }
  120. break;
  121. case \'onResourceDuplicate\':
  122. $template = (string)$resource->get(\'template\');
  123. $override = false;
  124. if (isset($_REQUEST[\'template\'])) {
  125. $template = (string)$_REQUEST[\'template\'];
  126. $override = true;
  127. }
  128. if (($override && $template === \'0\') || (!empty($template) && in_array($template, $disabledTemplates))) {
  129. break;
  130. }
  131. $seoKeywords = $modx->getObject(\'seoKeywords\', array(\'resource\' => $resource->get(\'id\')));
  132. if (!$seoKeywords) {
  133. $seoKeywords = $modx->newObject(\'seoKeywords\', array(\'resource\' => $resource->get(\'id\')));
  134. }
  135. $newSeoKeywords = $modx->newObject(\'seoKeywords\');
  136. $newSeoKeywords->fromArray($seoKeywords->toArray());
  137. $newSeoKeywords->set(\'resource\', $newResource->get(\'id\'));
  138. $newSeoKeywords->save();
  139. break;
  140. case \'OnLoadWebDocument\':
  141. if ($modx->context->get(\'key\') == "mgr") {
  142. break;
  143. }
  144. $template = ($modx->resource->get(\'template\')) ? (string)$modx->resource->get(\'template\') : \'\';
  145. if (in_array($template, $disabledTemplates)) {
  146. break;
  147. }
  148. $seoKeywords = $modx->getObject(\'seoKeywords\', array(\'resource\' => $modx->resource->get(\'id\')));
  149. if ($seoKeywords) {
  150. $keyWords = $seoKeywords->get(\'keywords\');
  151. $modx->setPlaceholder(\'seoPro.keywords\', $keyWords);
  152. }
  153. // Render the meta title, based on system settings
  154. $titleFormat = $modx->getOption(\'seopro.title_format\');
  155. if (empty($titleFormat)) {
  156. $siteDelimiter = $modx->getOption(\'seopro.delimiter\', null, \'/\');
  157. $siteUseSitename = (boolean)$modx->getOption(\'seopro.usesitename\', null, true);
  158. $siteID = $modx->resource->get(\'id\');
  159. $siteName = $modx->getOption(\'site_name\');
  160. $longtitle = $modx->resource->get(\'longtitle\');
  161. $pagetitle = $modx->resource->get(\'pagetitle\');
  162. $seoProTitle = array();
  163. if ($siteID == $modx->getOption(\'site_start\')) {
  164. $seoProTitle[\'pagetitle\'] = !empty($longtitle) ? $longtitle : $siteName;
  165. } else {
  166. $seoProTitle[\'pagetitle\'] = !empty($longtitle) ? $longtitle : $pagetitle;
  167. if ($siteUseSitename) {
  168. $seoProTitle[\'delimiter\'] = $siteDelimiter;
  169. $seoProTitle[\'sitename\'] = $siteName;
  170. }
  171. }
  172. $title = implode(\' \', $seoProTitle);
  173. } else {
  174. $title = $modx->getOption(\'seopro.title_format\');
  175. }
  176. $modx->setPlaceholder(\'seoPro.title\', $title);
  177. break;
  178. }
  179. return;
  180. ';