$domDocument->insertHTML($response->content); $response->content = $app->components->process($domDocument->saveHTML()); $currentUserExists = Options::hasServer() && (Options::hasFeature('USERS') || Options::hasFeature('USERS_LOGIN_*')) ? $app->bearCMS->currentUser->exists() : false; $externalLinksAreEnabled = !empty($settings['externalLinks']); if ($externalLinksAreEnabled) { $domDocument = new HTML5DOMDocument(); $domDocument->loadHTML($response->content); $domDocument->insertHTML('<html><body><script src="' . htmlentities($context->assets->getUrl('assets/externalLinks.min.js')) . '" async onload="bearCMS.externalLinks.initialize(' . ($externalLinksAreEnabled ? 1 : 0) . ',' . ($currentUserExists ? 1 : 0) . ');"></script></body></html>'); $response->content = $domDocument->saveHTML(); } if (!$currentUserExists) { return; } $serverCookies = Cookies::getList(Cookies::TYPE_SERVER); if (!empty($serverCookies['tmcs']) || !empty($serverCookies['tmpr'])) { ElementsHelper::$editorData = []; } $requestArguments = []; $requestArguments['hasEditableElements'] = empty(ElementsHelper::$editorData) ? '0' : '1'; $requestArguments['hasEditableContainers'] = '0'; foreach (ElementsHelper::$editorData as $itemData) { if ($itemData[0] === 'container') { $requestArguments['hasEditableContainers'] = '1'; } } $cacheKey = json_encode(['adminUI', $app->request->base, $requestArguments, $app->bearCMS->currentUser->getSessionKey(), $app->bearCMS->currentUser->getPermissions(), get_class_vars('\\BearCMS\\Internal\\Options'), $serverCookies]); $adminUIData = $app->cache->get($cacheKey); if (!is_array($adminUIData)) { $adminUIData = Server::call('adminui', $requestArguments, true); $app->cache->set($cacheKey, $adminUIData, is_array($adminUIData) && isset($adminUIData['result']) ? 99999 : 10); }