20.cache.php 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <?php return '/** @var array $scriptProperties */
  2. $path = $modx->getOption(\'admintools_core_path\', null, $modx->getOption(\'core_path\') . \'components/admintools/\') . \'services/\';
  3. /** @var AdminTools $AdminTools */
  4. $AdminTools = $modx->getService(\'admintools\', \'AdminTools\', $path);
  5. $elementType = null;
  6. if ($AdminTools instanceof AdminTools) {
  7. switch ($modx->event->name) {
  8. case \'OnManagerPageBeforeRender\':
  9. if ($modx->user->id) $AdminTools->initialize();
  10. break;
  11. case \'OnManagerPageAfterRender\':
  12. if ($AdminTools->isLocked()) {
  13. $controller->content = $modx->getChunk(\'tpl.lockScreen\', [
  14. \'username\' => $modx->user->username,
  15. \'photo\' => $modx->user->getPhoto(),
  16. \'title\' => $modx->getOption(\'site_name\'),
  17. \'lang\' => $modx->getOption(\'manager_language\'),
  18. \'form_action\' => $AdminTools->getOption(\'connectorUrl\'),
  19. \'auth\' => $modx->user->getUserToken(\'mgr\'),
  20. \'assets_url\' => MODX_ASSETS_URL,
  21. \'input_placeholder\' => $AdminTools->getInputPlaceholder(),
  22. ]
  23. );
  24. }
  25. break;
  26. case \'OnDocFormSave\':
  27. if ($modx->getOption(\'admintools_clear_only_resource_cache\',null,false) && $modx->event->params[\'mode\'] == modSystemEvent::MODE_UPD) {
  28. if ($resource->get(\'syncsite\')) {
  29. $AdminTools->clearResourceCache($resource);
  30. }
  31. if (!empty($_POST[\'createCache\'])) {
  32. $AdminTools->createResourceCache($resource->uri);
  33. }
  34. }
  35. break;
  36. case \'OnManagerPageInit\':
  37. if (!$modx->user->isAuthenticated(\'mgr\') && $modx->getOption(\'admintools_email_authorization\', null, false)) {
  38. $id = (int) $modx->getOption(\'admintools_loginform_resource\');
  39. if (!empty($id) && $modx->getCount(\'modResource\', [\'id\' => $id, \'published\' => 1, \'deleted\' => 0])) {
  40. $url = $modx->makeUrl($id, \'\', \'\', \'full\');
  41. $modx->setOption(\'manager_login_url_alternate\', $url);
  42. }
  43. }
  44. break;
  45. case \'OnManagerAuthentication\':
  46. if ($modx->getOption(\'admintools_user_can_login\', null, false)) {
  47. $modx->setOption(\'admintools_user_can_login\', false);
  48. $modx->event->output(true);
  49. }
  50. break;
  51. case \'OnLoadWebDocument\':
  52. if ($modx->user->isAuthenticated($modx->context->get(\'key\')) && (!$modx->user->active || $modx->user->Profile->blocked)) {
  53. $modx->runProcessor(\'security/logout\');
  54. }
  55. if ($modx->getOption(\'admintools_alternative_permissions\', null, false) && !$AdminTools->hasPermissions()){
  56. $modx->sendUnauthorizedPage();
  57. }
  58. break;
  59. case \'OnTempFormPrerender\':
  60. if ($modx->getOption(\'admintools_template_resource_relationship\', null, true)) {
  61. $modx->controller->addLastJavascript($AdminTools->getOption(\'jsUrl\') . \'mgr/templates.js\');
  62. }
  63. break;
  64. case \'OnDocFormPrerender\':
  65. $_html = array();
  66. $output = \'\';
  67. if ($modx->getOption(\'admintools_template_resource_relationship\', null, true)) {
  68. $_html[\'tpl_res_relationship\'] = \'
  69. var tmpl = Ext.getCmp("modx-resource-template");
  70. if (tmpl.getValue()) tmpl.label.update(_("resource_template") + "&nbsp;&nbsp;<a href=\\"?a=element/template/update&id=" + tmpl.getValue() + "\\"><i class=\\"icon icon-external-link\\"></i></a>");\';
  71. }
  72. if ($modx->getOption(\'admintools_clear_only_resource_cache\', null, true) && $modx->event->params[\'mode\'] != modSystemEvent::MODE_NEW) {
  73. $_html[\'create_resource_cache\'] = \'
  74. var cb = Ext.create({
  75. xtype: "xcheckbox",
  76. boxLabel: _("admintools_create_resource_cache"),
  77. description: _("admintools_create_resource_cache_help"),
  78. hideLabel: true,
  79. name: "createCache",
  80. id: "createCache",
  81. checked: \'. intval($modx->getOption(\'admintools_create_resource_cache\', null, false)) .\'
  82. });
  83. if (Ext.getCmp("modx-page-settings-right-box-right")) {
  84. Ext.getCmp("modx-page-settings-right-box-right").insert(2,cb);
  85. Ext.getCmp("modx-page-settings-right-box-left").add(Ext.getCmp("modx-resource-uri-override"));
  86. Ext.getCmp("modx-panel-resource").on("success", function(o){
  87. if (o.result.object.createCache != 0) {
  88. cb.setValue(true);
  89. }
  90. });
  91. }\';
  92. }
  93. if (!empty($_html)) {
  94. $output .= \'
  95. Ext.onReady(function() {
  96. setTimeout(function(){\' . implode("\\n", $_html) . \'
  97. }, 200);
  98. });\';
  99. }
  100. if ($modx->getOption(\'admintools_alternative_permissions\', null, true) && $modx->hasPermission(\'access_permissions\')) {
  101. $modx->controller->addLastJavascript($AdminTools->getOption(\'jsUrl\') . \'mgr/permissions.js\');
  102. $output .= \'
  103. Ext.ComponentMgr.onAvailable("modx-resource-tabs", function() {
  104. this.on("beforerender", function() {
  105. this.add({
  106. title: _("admintools_permissions"),
  107. border: false,
  108. items: [{
  109. layout: "anchor",
  110. border: false,
  111. items: [{
  112. html: _("admintools_permissions_desc"),
  113. border: false,
  114. bodyCssClass: "panel-desc"
  115. }, {
  116. xtype: "admintools-grid-permissions",
  117. anchor: "100%",
  118. cls: "main-wrapper",
  119. resource: \' . $id . \'
  120. }]
  121. }]
  122. });
  123. });
  124. });
  125. \';
  126. }
  127. if (!empty($output)) $modx->controller->addHtml(\'<script>\' . $output . \'</script>\');
  128. break;
  129. case \'OnMODXInit\':
  130. if ($modx->context->get(\'key\') !== \'mgr\') {
  131. if ( $modx->getOption(\'admintools_only_current_context_user\', null, false)
  132. && $modx->user->isAuthenticated(\'mgr\')
  133. && !$modx->user->isAuthenticated($modx->context->get(\'key\')) ) {
  134. $modx->user = $modx->newObject(\'modUser\');
  135. $modx->user->fromArray(array(\'id\' => 0, \'username\' => $modx->getOption(\'default_username\', \'\', \'(anonymous)\', true)), \'\', true);
  136. }
  137. }
  138. break;
  139. }
  140. }
  141. return;
  142. ';