use Friendica\App;
use Friendica\BaseModule;
use Friendica\Core;
-use Friendica\Core\Config\Cache\IConfigCache;
+use Friendica\Core\Config\Cache\ConfigCache;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
+use Friendica\Network\HTTPException;
use Friendica\Util\BasePath;
-use Friendica\Util\BaseURL;
use Friendica\Util\Strings;
use Friendica\Util\Temporal;
*/
private static $installer;
- public static function init()
+ public static function init(array $parameters = [])
{
$a = self::getApp();
if (!$a->getMode()->isInstall()) {
- throw new \Friendica\Network\HTTPException\ForbiddenException();
+ throw new HTTPException\ForbiddenException();
}
// route: install/testrwrite
// @TODO: Replace with parameter from router
if ($a->getArgumentValue(1, '') == 'testrewrite') {
// Status Code 204 means that it worked without content
- throw new \Friendica\Network\HTTPException\NoContentException();
+ throw new HTTPException\NoContentException();
}
self::$installer = new Core\Installer();
// get basic installation information and save them to the config cache
$configCache = $a->getConfigCache();
- self::$installer->setUpCache($configCache, BasePath::create($a->getBasePath(), $_SERVER));
+ $basePath = new BasePath($a->getBasePath());
+ self::$installer->setUpCache($configCache, $basePath->getPath());
// We overwrite current theme css, because during install we may not have a working mod_rewrite
// so we may not have a css at all. Here we set a static css file for the install procedure pages
Renderer::$theme['stylesheet'] = $a->getBaseURL() . '/view/install/style.css';
- self::$currentWizardStep = defaults($_POST, 'pass', self::SYSTEM_CHECK);
+ self::$currentWizardStep = ($_POST['pass'] ?? '') ?: self::SYSTEM_CHECK;
}
- public static function post()
+ public static function post(array $parameters = [])
{
- $a = self::getApp();
+ $a = self::getApp();
$configCache = $a->getConfigCache();
switch (self::$currentWizardStep) {
self::checkSetting($configCache, $_POST, 'database', 'database', '');
// If we cannot connect to the database, return to the previous step
- if (!self::$installer->checkDB($configCache, $a->getProfiler())) {
+ if (!self::$installer->checkDB($a->getDBA())) {
self::$currentWizardStep = self::DATABASE_CONFIG;
}
self::checkSetting($configCache, $_POST, 'config', 'admin_email', '');
// If we cannot connect to the database, return to the Database config wizard
- if (!self::$installer->checkDB($configCache, $a->getProfiler())) {
+ if (!self::$installer->checkDB($a->getDBA())) {
self::$currentWizardStep = self::DATABASE_CONFIG;
return;
}
}
}
- public static function content()
+ public static function content(array $parameters = [])
{
- $a = self::getApp();
+ $a = self::getApp();
$configCache = $a->getConfigCache();
$output = '';
$status = self::$installer->checkEnvironment($a->getBaseURL(), $php_path);
- $tpl = Renderer::getMarkupTemplate('install_checks.tpl');
+ $tpl = Renderer::getMarkupTemplate('install_checks.tpl');
$output .= Renderer::replaceMacros($tpl, [
'$title' => $install_title,
'$pass' => L10n::t('System check'),
case self::BASE_CONFIG:
$ssl_choices = [
- BaseURL::SSL_POLICY_NONE => L10n::t("No SSL policy, links will track page SSL state"),
- BaseURL::SSL_POLICY_FULL => L10n::t("Force all links to use SSL"),
- BaseURL::SSL_POLICY_SELFSIGN => L10n::t("Self-signed certificate, use SSL for local links only \x28discouraged\x29")
+ App\BaseURL::SSL_POLICY_NONE => L10n::t("No SSL policy, links will track page SSL state"),
+ App\BaseURL::SSL_POLICY_FULL => L10n::t("Force all links to use SSL"),
+ App\BaseURL::SSL_POLICY_SELFSIGN => L10n::t("Self-signed certificate, use SSL for local links only \x28discouraged\x29")
];
- $tpl = Renderer::getMarkupTemplate('install_base.tpl');
+ $tpl = Renderer::getMarkupTemplate('install_base.tpl');
$output .= Renderer::replaceMacros($tpl, [
'$title' => $install_title,
'$pass' => L10n::t('Base settings'),
break;
case self::DATABASE_CONFIG:
- $tpl = Renderer::getMarkupTemplate('install_db.tpl');
+ $tpl = Renderer::getMarkupTemplate('install_db.tpl');
$output .= Renderer::replaceMacros($tpl, [
'$title' => $install_title,
'$pass' => L10n::t('Database connection'),
/* Installed langs */
$lang_choices = L10n::getAvailableLanguages();
- $tpl = Renderer::getMarkupTemplate('install_settings.tpl');
+ $tpl = Renderer::getMarkupTemplate('install_settings.tpl');
$output .= Renderer::replaceMacros($tpl, [
'$title' => $install_title,
'$checks' => self::$installer->getChecks(),
$db_return_text = "";
if (count(self::$installer->getChecks()) == 0) {
- $txt = '<p style="font-size: 130%;">';
- $txt .= L10n::t('Your Friendica site database has been installed.') . EOL;
+ $txt = '<p style="font-size: 130%;">';
+ $txt .= L10n::t('Your Friendica site database has been installed.') . EOL;
$db_return_text .= $txt;
}
- $tpl = Renderer::getMarkupTemplate('install_finished.tpl');
+ $tpl = Renderer::getMarkupTemplate('install_finished.tpl');
$output .= Renderer::replaceMacros($tpl, [
'$title' => $install_title,
'$checks' => self::$installer->getChecks(),
$baseurl = $a->getBaseUrl();
return
L10n::t('<h1>What next</h1>')
- . "<p>".L10n::t('IMPORTANT: You will need to [manually] setup a scheduled task for the worker.')
+ . "<p>" . L10n::t('IMPORTANT: You will need to [manually] setup a scheduled task for the worker.')
. L10n::t('Please see the file "INSTALL.txt".')
. "</p><p>"
. L10n::t('Go to your new Friendica node <a href="%s/register">registration page</a> and register as new user. Remember to use the same email you have entered as administrator email. This will allow you to enter the site admin panel.', $baseurl)
/**
* Checks the $_POST settings and updates the config Cache for it
*
- * @param IConfigCache $configCache The current config cache
- * @param array $post The $_POST data
- * @param string $cat The category of the setting
- * @param string $key The key of the setting
- * @param null|string $default The default value
+ * @param ConfigCache $configCache The current config cache
+ * @param array $post The $_POST data
+ * @param string $cat The category of the setting
+ * @param string $key The key of the setting
+ * @param null|string $default The default value
*/
- private static function checkSetting(IConfigCache $configCache, array $post, $cat, $key, $default = null)
+ private static function checkSetting(ConfigCache $configCache, array $post, $cat, $key, $default = null)
{
$configCache->set($cat, $key,
Strings::escapeTags(
- trim(defaults($post, sprintf('%s-%s', $cat, $key),
- (!isset($default) ? $configCache->get($cat, $key) : $default))
+ trim(($post[sprintf('%s-%s', $cat, $key)] ?? '') ?:
+ ($default ?? $configCache->get($cat, $key))
)
)
);