container->application->getDocument(); // Load the necessary Javascript Template::addJs('media://js/solo/configuration.js', $this->container->application); $this->getProfileIdAndName(); // Are the settings secured? $this->securesettings = $this->getSecureSettingsOption(); // Should I show the Configuration Wizard popup prompt? $this->promptForConfigurationWizard = Factory::getConfiguration()->get('akeeba.flag.confwiz', 0) != 1; // Push the media folder name @todo Do we really use it? $media_folder = URI::base(false, $this->container) . '/media/'; $this->mediadir = Escape::escapeJS($media_folder . 'theme/'); // Append buttons to the toolbar $buttons = [ [ 'title' => 'SOLO_BTN_SAVECLOSE', 'class' => 'akeeba-btn--green', 'onClick' => 'akeeba.System.submitForm(\'save\')', 'icon' => 'akion-checkmark-circled', ], [ 'title' => 'SOLO_BTN_SAVE', 'class' => 'akeeba-btn--grey', 'onClick' => 'akeeba.System.submitForm(\'apply\')', 'icon' => 'akion-checkmark', ], [ 'title' => 'SOLO_BTN_SAVENEW', 'class' => 'akeeba-btn--grey', 'onClick' => 'akeeba.System.submitForm(\'savenew\')', 'icon' => 'akion-ios-copy', ], [ 'title' => 'SOLO_BTN_CANCEL', 'class' => 'akeeba-btn--orange', 'onClick' => 'akeeba.System.submitForm(\'cancel\')', 'icon' => 'akion-close-circled', ], [ 'title' => 'COM_AKEEBA_CONFWIZ', 'class' => 'akeeba-btn--teal', 'url' => $this->container->router->route('index.php?view=wizard'), 'icon' => 'akion-flash', ], ]; if (AKEEBABACKUP_PRO) { $buttons[] = [ 'title' => 'COM_AKEEBA_SCHEDULE', 'class' => 'akeeba-btn--grey', 'url' => $this->container->router->route('index.php?view=schedule'), 'icon' => 'akion-android-calendar', ]; } $toolbar = $document->getToolbar(); foreach ($buttons as $button) { $toolbar->addButtonFromDefinition($button); } // JavaScript language strings Text::script('COM_AKEEBA_CONFIG_UI_BROWSE'); Text::script('COM_AKEEBA_CONFIG_UI_CONFIG'); Text::script('COM_AKEEBA_CONFIG_UI_REFRESH'); Text::script('COM_AKEEBA_CONFIG_UI_FTPBROWSER_TITLE'); Text::script('COM_AKEEBA_FILEFILTERS_LABEL_UIROOT'); Text::script('COM_AKEEBA_CONFIG_DIRECTFTP_TEST_OK'); Text::script('COM_AKEEBA_CONFIG_DIRECTFTP_TEST_FAIL'); Text::script('COM_AKEEBA_CONFIG_DIRECTSFTP_TEST_OK'); Text::script('COM_AKEEBA_CONFIG_DIRECTSFTP_TEST_FAIL'); // Script options $router = $this->getContainer()->router; $ajaxURL = $router->route('index.php?view=configuration&task=dpecustomapi&format=raw'); $json = Factory::getEngineParamsProvider()->getJsonGuiDefinition(); $document->addScriptOptions('akeeba.Configuration.URLs', [ 'browser' => $router->route('index.php?view=browser&tmpl=component&processfolder=1&folder='), 'ftpBrowser' => $router->route('index.php?view=ftpbrowser&tmpl=component'), 'sftpBrowser' => $router->route('index.php?view=sftpbrowser&tmpl=component'), 'testFtp' => $router->route('index.php?view=configuration&task=testftp&format=raw'), 'testSftp' => $router->route('index.php?view=configuration&task=testsftp&format=raw'), 'dpeauthopen' => $router->route('index.php?view=configuration&task=dpeoauthopen&format=raw'), 'dpecustomapi' => $ajaxURL, ]); $document->addScriptOptions('akeeba.System.params.AjaxURL', $ajaxURL); $document->addScriptOptions('akeeba.Configuration.GUIData', @json_decode($json, true)); // All done, show the page! return true; } /** * Returns the support status of settings encryption. The possible values are: * -1 Disabled by the user * 0 Enabled by inactive (not supported by the server) * 1 Enabled and active * * @return int */ private function getSecureSettingsOption() { // Encryption is disabled by the user if (Platform::getInstance()->get_platform_configuration_option('useencryption', -1) == 0) { return -1; } // Encryption is not supported by this server if (!Factory::getSecureSettings()->supportsEncryption()) { return 0; } $filename = $this->container->basePath . Application::secretKeyRelativePath; // Encryption enabled, supported and a key file is present: encryption enabled if (is_file($filename)) { return 1; } // Encryption enabled, supported but and a key file is NOT present: encryption not available return 0; } }