16 import(
'classes.handler.Handler');
27 parent::__construct();
41 'downloadScheduledTaskLogFile',
42 'clearScheduledTaskLogFiles',
50 function authorize($request, &$args, $roleAssignments) {
51 import(
'lib.pkp.classes.security.authorization.PKPSiteAccessPolicy');
53 $returner = parent::authorize($request, $args, $roleAssignments);
56 if ($request->getContext()) {
68 LOCALE_COMPONENT_PKP_ADMIN,
69 LOCALE_COMPONENT_APP_MANAGER,
70 LOCALE_COMPONENT_APP_ADMIN,
71 LOCALE_COMPONENT_APP_COMMON,
72 LOCALE_COMPONENT_PKP_USER,
73 LOCALE_COMPONENT_PKP_MANAGER
77 $templateMgr->assign([
78 'pageComponent' =>
'AdminPage',
81 if ($request->getRequestedOp() !==
'index') {
82 $router = $request->getRouter();
83 $templateMgr->assign([
87 'url' => $router->url($request,
'index',
'admin'),
88 'name' => __(
'navigation.admin'),
95 import(
'lib.pkp.classes.site.VersionCheck');
98 $templateMgr->assign([
99 'currentVersion' => $currentVersion,
100 'newVersionAvailable' =>
true,
101 'latestVersion' => $latestVersion,
106 return parent::initialize($request);
117 $templateMgr->assign([
118 'pageTitle' => __(
'admin.siteAdmin'),
120 $templateMgr->display(
'admin/index.tpl');
131 $breadcrumbs = $templateMgr->get_template_vars(
'breadcrumbs');
134 'name' => __(
'admin.hostedContexts'),
136 $templateMgr->assign([
137 'breadcrumbs' => $breadcrumbs,
138 'pageTitle' => __(
'admin.hostedContexts'),
140 $templateMgr->display(
'admin/contexts.tpl');
150 $site = $request->getSite();
151 $dispatcher = $request->getDispatcher();
153 $apiUrl = $dispatcher->url($request, ROUTE_API, CONTEXT_ID_ALL,
'site');
154 $themeApiUrl = $dispatcher->url($request, ROUTE_API, CONTEXT_ID_ALL,
'site/theme');
155 $temporaryFileApiUrl = $dispatcher->url($request, ROUTE_API, CONTEXT_ID_ALL,
'temporaryFiles');
157 import(
'classes.file.PublicFileManager');
159 $baseUrl = $request->getBaseUrl() .
'/' . $publicFileManager->getSiteFilesPath();
161 $supportedLocales = $site->getSupportedLocales();
163 $locales = array_map(
function($localeKey) use ($localeNames) {
164 return [
'key' => $localeKey,
'label' => $localeNames[$localeKey]];
165 }, $supportedLocales);
167 $siteAppearanceForm = new \PKP\components\forms\site\PKPSiteAppearanceForm($apiUrl, $locales, $site, $baseUrl, $temporaryFileApiUrl);
168 $siteConfigForm = new \PKP\components\forms\site\PKPSiteConfigForm($apiUrl, $locales, $site);
169 $siteInformationForm = new \PKP\components\forms\site\PKPSiteInformationForm($apiUrl, $locales, $site);
170 $themeForm = new \PKP\components\forms\context\PKPThemeForm($themeApiUrl, $locales);
174 $templateMgr->setState([
176 FORM_SITE_APPEARANCE => $siteAppearanceForm->getConfig(),
177 FORM_SITE_CONFIG => $siteConfigForm->getConfig(),
178 FORM_SITE_INFO => $siteInformationForm->getConfig(),
179 FORM_THEME => $themeForm->getConfig(),
183 $breadcrumbs = $templateMgr->get_template_vars(
'breadcrumbs');
186 'name' => __(
'admin.siteSettings'),
188 $templateMgr->assign([
189 'breadcrumbs' => $breadcrumbs,
190 'pageTitle' => __(
'admin.siteSettings'),
191 'componentAvailability' => $this->siteSettingsAvailability($request),
194 $templateMgr->display(
'admin/settings.tpl');
203 private function siteSettingsAvailability($request) {
204 $tabsSingleContextAvailability = [
218 'siteAppearanceSetup',
221 $singleContextSite = (
Services::get(
'context')->getCount() == 1);
223 $tabsAvailability = array();
225 foreach ($tabs as $tab) {
226 $tabsAvailability[$tab] =
true;
227 if ($singleContextSite && !in_array($tab, $tabsSingleContextAvailability)) {
228 $tabsAvailability[$tab] =
false;
232 return $tabsAvailability;
241 public function wizard($args, $request) {
243 $router = $request->getRouter();
244 $dispatcher = $request->getDispatcher();
246 if (!isset($args[0]) || !ctype_digit((
string) $args[0])) {
247 $request->getDispatcher()->handle404();
250 import(
'classes.core.Services');
252 $context = $contextService->get((
int) $args[0]);
254 if (empty($context)) {
255 $request->getDispatcher()->handle404();
258 $apiUrl = $dispatcher->url($request, ROUTE_API, $context->getPath(),
'contexts/' . $context->getId());
259 $themeApiUrl = $dispatcher->url($request, ROUTE_API, $context->getPath(),
'contexts/' . $context->getId() .
'/theme');
260 $sitemapUrl = $router->url($request, $context->getPath(),
'sitemap');
262 $supportedFormLocales = $context->getSupportedFormLocales();
264 $locales = array_map(
function($localeKey) use ($localeNames) {
265 return [
'key' => $localeKey,
'label' => $localeNames[$localeKey]];
266 }, $supportedFormLocales);
274 $templateMgr->setState([
276 FORM_CONTEXT => $contextForm->getConfig(),
277 FORM_SEARCH_INDEXING => $indexingForm->getConfig(),
278 FORM_THEME => $themeForm->getConfig(),
282 $breadcrumbs = $templateMgr->get_template_vars(
'breadcrumbs');
285 'name' => __(
'admin.hostedContexts'),
286 'url' => $router->url($request,
'index',
'admin',
'contexts'),
290 'name' => __(
'manager.settings.wizard'),
293 $templateMgr->assign([
294 'breadcrumbs' => $breadcrumbs,
295 'editContext' => $context,
296 'pageTitle' => __(
'manager.settings.wizard'),
299 $templateMgr->display(
'admin/contextSettings.tpl');
311 $currentVersion = $versionDao->getCurrentVersion();
313 if ($request->getUserVar(
'versionCheck')) {
319 $versionHistory = $versionDao->getVersionHistory();
322 $dbServerInfo = $dbconn->ServerInfo();
324 'admin.server.platform' => PHP_OS,
325 'admin.server.phpVersion' => phpversion(),
326 'admin.server.apacheVersion' => $_SERVER[
'SERVER_SOFTWARE'],
328 'admin.server.dbVersion' => (empty($dbServerInfo[
'description']) ? $dbServerInfo[
'version'] : $dbServerInfo[
'description'])
333 $breadcrumbs = $templateMgr->get_template_vars(
'breadcrumbs');
336 'name' => __(
'admin.systemInformation'),
339 $templateMgr->assign([
340 'breadcrumbs' => $breadcrumbs,
341 'currentVersion' => $currentVersion,
342 'latestVersionInfo' => $latestVersionInfo,
343 'pageTitle' => __(
'admin.systemInformation'),
344 'versionHistory' => $versionHistory,
345 'serverInfo' => $serverInfo,
349 $templateMgr->display(
'admin/systemInfo.tpl');
366 $sessionDao->deleteAllSessions();
367 $request->redirect(
null,
'admin');
377 $templateMgr->clearTemplateCache();
378 $templateMgr->clearCssCache();
379 $request->redirect(
null,
'admin');
390 $cacheManager->flush();
394 $userDao->flushCache();
396 $request->redirect(
null,
'admin');
405 $file = basename($request->getUserVar(
'file'));
406 import(
'lib.pkp.classes.scheduledTask.ScheduledTaskHelper');
414 import(
'lib.pkp.classes.scheduledTask.ScheduledTaskHelper');
418 $request->redirect(
null,
'admin');