getOption('admintools_core_path', null, $modx->getOption('core_path') . 'components/admintools/') . 'services/'; /** @var AdminTools $AdminTools */ $AdminTools = $modx->getService('admintools', 'AdminTools', $path); $elementType = null; if ($AdminTools instanceof AdminTools) { switch ($modx->event->name) { case 'OnManagerPageBeforeRender': if ($modx->user->id) $AdminTools->initialize(); break; case 'OnManagerPageAfterRender': if ($AdminTools->isLocked()) { $controller->content = $modx->getChunk('tpl.lockScreen', [ 'username' => $modx->user->username, 'photo' => $modx->user->getPhoto(), 'title' => $modx->getOption('site_name'), 'lang' => $modx->getOption('manager_language'), 'form_action' => $AdminTools->getOption('connectorUrl'), 'auth' => $modx->user->getUserToken('mgr'), 'assets_url' => MODX_ASSETS_URL, 'input_placeholder' => $AdminTools->getInputPlaceholder(), ] ); } break; case 'OnDocFormSave': if ($modx->getOption('admintools_clear_only_resource_cache',null,false) && $modx->event->params['mode'] == modSystemEvent::MODE_UPD) { if ($resource->get('syncsite')) { $AdminTools->clearResourceCache($resource); } if (!empty($_POST['createCache'])) { $AdminTools->createResourceCache($resource->uri); } } break; case 'OnManagerPageInit': if (!$modx->user->isAuthenticated('mgr') && $modx->getOption('admintools_email_authorization', null, false)) { $id = (int) $modx->getOption('admintools_loginform_resource'); if (!empty($id) && $modx->getCount('modResource', ['id' => $id, 'published' => 1, 'deleted' => 0])) { $url = $modx->makeUrl($id, '', '', 'full'); $modx->setOption('manager_login_url_alternate', $url); } } break; case 'OnManagerAuthentication': if ($modx->getOption('admintools_user_can_login', null, false)) { $modx->setOption('admintools_user_can_login', false); $modx->event->output(true); } break; case 'OnLoadWebDocument': if ($modx->user->isAuthenticated($modx->context->get('key')) && (!$modx->user->active || $modx->user->Profile->blocked)) { $modx->runProcessor('security/logout'); } if ($modx->getOption('admintools_alternative_permissions', null, false) && !$AdminTools->hasPermissions()){ $modx->sendUnauthorizedPage(); } break; case 'OnTempFormPrerender': if ($modx->getOption('admintools_template_resource_relationship', null, true)) { $modx->controller->addLastJavascript($AdminTools->getOption('jsUrl') . 'mgr/templates.js'); } break; case 'OnDocFormPrerender': $_html = array(); $output = ''; if ($modx->getOption('admintools_template_resource_relationship', null, true)) { $_html['tpl_res_relationship'] = ' var tmpl = Ext.getCmp("modx-resource-template"); if (tmpl.getValue()) tmpl.label.update(_("resource_template") + "  ");'; } if ($modx->getOption('admintools_clear_only_resource_cache', null, true) && $modx->event->params['mode'] != modSystemEvent::MODE_NEW) { $_html['create_resource_cache'] = ' var cb = Ext.create({ xtype: "xcheckbox", boxLabel: _("admintools_create_resource_cache"), description: _("admintools_create_resource_cache_help"), hideLabel: true, name: "createCache", id: "createCache", checked: '. intval($modx->getOption('admintools_create_resource_cache', null, false)) .' }); if (Ext.getCmp("modx-page-settings-right-box-right")) { Ext.getCmp("modx-page-settings-right-box-right").insert(2,cb); Ext.getCmp("modx-page-settings-right-box-left").add(Ext.getCmp("modx-resource-uri-override")); Ext.getCmp("modx-panel-resource").on("success", function(o){ if (o.result.object.createCache != 0) { cb.setValue(true); } }); }'; } if (!empty($_html)) { $output .= ' Ext.onReady(function() { setTimeout(function(){' . implode("\n", $_html) . ' }, 200); });'; } if ($modx->getOption('admintools_alternative_permissions', null, true) && $modx->hasPermission('access_permissions')) { $modx->controller->addLastJavascript($AdminTools->getOption('jsUrl') . 'mgr/permissions.js'); $output .= ' Ext.ComponentMgr.onAvailable("modx-resource-tabs", function() { this.on("beforerender", function() { this.add({ title: _("admintools_permissions"), border: false, items: [{ layout: "anchor", border: false, items: [{ html: _("admintools_permissions_desc"), border: false, bodyCssClass: "panel-desc" }, { xtype: "admintools-grid-permissions", anchor: "100%", cls: "main-wrapper", resource: ' . $id . ' }] }] }); }); }); '; } if (!empty($output)) $modx->controller->addHtml(''); break; case 'OnMODXInit': if ($modx->context->get('key') !== 'mgr') { if ( $modx->getOption('admintools_only_current_context_user', null, false) && $modx->user->isAuthenticated('mgr') && !$modx->user->isAuthenticated($modx->context->get('key')) ) { $modx->user = $modx->newObject('modUser'); $modx->user->fromArray(array('id' => 0, 'username' => $modx->getOption('default_username', '', '(anonymous)', true)), '', true); } } break; } }