Browse Source

update installer

pull/40/head
czaks 8 years ago
parent
commit
8dac72e924
  1. 103
      install.php
  2. 3
      templates/installer/config.html

103
install.php

@ -581,6 +581,25 @@ if (file_exists($config['has_installed'])) {
die(Element('page.html', $page)); die(Element('page.html', $page));
} }
function create_config_from_array(&$instance_config, &$array, $prefix = '') {
foreach ($array as $name => $value) {
if (is_array($value)) {
$instance_config .= "\n";
create_config_from_array($instance_config, $value, $prefix . '[\'' . addslashes($name) . '\']');
$instance_config .= "\n";
} else {
$instance_config .= ' $config' . $prefix . '[\'' . addslashes($name) . '\'] = ';
if (is_numeric($value))
$instance_config .= $value;
else
$instance_config .= "'" . addslashes($value) . "'";
$instance_config .= ";\n";
}
}
}
if ($step == 0) { if ($step == 0) {
// Agreeement // Agreeement
$page['body'] = ' $page['body'] = '
@ -614,7 +633,7 @@ if ($step == 0) {
'installed' => extension_loaded('pdo'), 'installed' => extension_loaded('pdo'),
'required' => true 'required' => true
), ),
'PDO' => array( 'GD' => array(
'installed' => extension_loaded('gd'), 'installed' => extension_loaded('gd'),
'required' => true 'required' => true
), ),
@ -627,17 +646,17 @@ if ($step == 0) {
$tests = array( $tests = array(
array( array(
'category' => 'PHP', 'category' => 'PHP',
'name' => 'PHP ≥ 5.3', 'name' => 'PHP ≥ 5.4',
'result' => PHP_VERSION_ID >= 50300, 'result' => PHP_VERSION_ID >= 50400,
'required' => true, 'required' => true,
'message' => 'vichan requires PHP 5.3 or better.', 'message' => 'vichan requires PHP 5.4 or better.',
), ),
array( array(
'category' => 'PHP', 'category' => 'PHP',
'name' => 'PHP ≥ 5.4', 'name' => 'PHP ≥ 5.6',
'result' => PHP_VERSION_ID >= 50400, 'result' => PHP_VERSION_ID >= 50600,
'required' => false, 'required' => false,
'message' => 'vichan works best on PHP 5.4 or better.', 'message' => 'vichan works best on PHP 5.6 or better.',
), ),
array( array(
'category' => 'PHP', 'category' => 'PHP',
@ -694,6 +713,7 @@ if ($step == 0) {
'result' => $can_exec && shell_exec('which convert'), 'result' => $can_exec && shell_exec('which convert'),
'required' => false, 'required' => false,
'message' => '(Optional) `convert` was not found or executable; command-line ImageMagick image processing cannot be enabled.', 'message' => '(Optional) `convert` was not found or executable; command-line ImageMagick image processing cannot be enabled.',
'effect' => function (&$config) { $config['thumb_method'] = 'convert'; },
), ),
array( array(
'category' => 'Image processing', 'category' => 'Image processing',
@ -708,6 +728,7 @@ if ($step == 0) {
'result' => $can_exec && shell_exec('which gm'), 'result' => $can_exec && shell_exec('which gm'),
'required' => false, 'required' => false,
'message' => '(Optional) `gm` was not found or executable; command-line GraphicsMagick (faster than ImageMagick) cannot be enabled.', 'message' => '(Optional) `gm` was not found or executable; command-line GraphicsMagick (faster than ImageMagick) cannot be enabled.',
'effect' => function (&$config) { $config['thumb_method'] = 'gm'; },
), ),
array( array(
'category' => 'Image processing', 'category' => 'Image processing',
@ -715,13 +736,25 @@ if ($step == 0) {
'result' => $can_exec && shell_exec('which gifsicle'), 'result' => $can_exec && shell_exec('which gifsicle'),
'required' => false, 'required' => false,
'message' => '(Optional) `gifsicle` was not found or executable; you may not use `convert+gifsicle` for better animated GIF thumbnailing.', 'message' => '(Optional) `gifsicle` was not found or executable; you may not use `convert+gifsicle` for better animated GIF thumbnailing.',
'effect' => function (&$config) { if ($config['thumb_method'] == 'gm') $config['thumb_method'] = 'gm+gifsicle';
if ($config['thumb_method'] == 'convert') $config['thumb_method'] = 'convert+gifsicle'; },
), ),
array( array(
'category' => 'Image processing', 'category' => 'Image processing',
'name' => '`md5sum` (quick file hashing)', 'name' => '`md5sum` (quick file hashing on GNU/Linux)',
'prereq' => '',
'result' => $can_exec && shell_exec('echo "vichan" | md5sum') == "141225c362da02b5c359c45b665168de -\n", 'result' => $can_exec && shell_exec('echo "vichan" | md5sum') == "141225c362da02b5c359c45b665168de -\n",
'required' => false, 'required' => false,
'message' => '(Optional) `md5sum` was not found or executable; file hashing for multiple images will be slower.', 'message' => '(Optional) `md5sum` was not found or executable; file hashing for multiple images will be slower. Ignore if not using Linux.',
'effect' => function (&$config) { $config['gnu_md5'] = true; },
),
array(
'category' => 'Image processing',
'name' => '`/sbin/md5` (quick file hashing on BSDs)',
'result' => $can_exec && shell_exec('echo "vichan" | /sbin/md5 -r') == "141225c362da02b5c359c45b665168de\n",
'required' => false,
'message' => '(Optional) `/sbin/md5` was not found or executable; file hashing for multiple images will be slower. Ignore if not using BSD.',
'effect' => function (&$config) { $config['bsd_md5'] = true; },
), ),
array( array(
'category' => 'File permissions', 'category' => 'File permissions',
@ -737,6 +770,13 @@ if ($step == 0) {
'required' => true, 'required' => true,
'message' => 'You must give vichan permission to create (and write to) the <code>templates/cache</code> directory or performance will be drastically reduced.' 'message' => 'You must give vichan permission to create (and write to) the <code>templates/cache</code> directory or performance will be drastically reduced.'
), ),
array(
'category' => 'File permissions',
'name' => getcwd() . '/tmp/cache',
'result' => is_dir('tmp/cache') && is_writable('tmp/cache'),
'required' => true,
'message' => 'You must give vichan permission to write to the <code>tmp/cache</code> directory.'
),
array( array(
'category' => 'File permissions', 'category' => 'File permissions',
'name' => getcwd() . '/inc/instance-config.php', 'name' => getcwd() . '/inc/instance-config.php',
@ -760,17 +800,27 @@ if ($step == 0) {
'message' => 'vichan is still beta software and it\'s not going to come out of beta any time soon. As there are often many months between releases yet changes and bug fixes are very frequent, it\'s recommended to use the git repository to maintain your vichan installation. Using git makes upgrading much easier.' 'message' => 'vichan is still beta software and it\'s not going to come out of beta any time soon. As there are often many months between releases yet changes and bug fixes are very frequent, it\'s recommended to use the git repository to maintain your vichan installation. Using git makes upgrading much easier.'
) )
); );
$config['font_awesome'] = true; $config['font_awesome'] = true;
$additional_config = array();
foreach ($tests as $test) {
if ($test['result'] && $test['effect']) {
$test['effect']($additional_config);
}
}
$more = '';
create_config_from_array($more, $additional_config);
$_SESSION['more'] = $more;
echo Element('page.html', array( echo Element('page.html', array(
'body' => Element('installer/check-requirements.html', array( 'body' => Element('installer/check-requirements.html', array(
'extensions' => $extensions, 'extensions' => $extensions,
'tests' => $tests, 'tests' => $tests,
'config' => $config 'config' => $config,
)), )),
'title' => 'Checking environment', 'title' => 'Checking environment',
'config' => $config 'config' => $config,
)); ));
} elseif ($step == 2) { } elseif ($step == 2) {
// Basic config // Basic config
@ -781,14 +831,18 @@ if ($step == 0) {
echo Element('page.html', array( echo Element('page.html', array(
'body' => Element('installer/config.html', array( 'body' => Element('installer/config.html', array(
'config' => $config 'config' => $config,
'more' => $more,
)), )),
'title' => 'Configuration', 'title' => 'Configuration',
'config' => $config 'config' => $config
)); ));
} elseif ($step == 3) { } elseif ($step == 3) {
$more = $_POST['more'];
unset($_POST['more']);
$instance_config = $instance_config =
'<?php '<'.'?php
/* /*
* Instance Configuration * Instance Configuration
@ -800,27 +854,10 @@ if ($step == 0) {
'; ';
function create_config_from_array(&$instance_config, &$array, $prefix = '') {
foreach ($array as $name => $value) {
if (is_array($value)) {
$instance_config .= "\n";
create_config_from_array($instance_config, $value, $prefix . '[\'' . addslashes($name) . '\']');
$instance_config .= "\n";
} else {
$instance_config .= ' $config' . $prefix . '[\'' . addslashes($name) . '\'] = ';
if (is_numeric($value))
$instance_config .= $value;
else
$instance_config .= "'" . addslashes($value) . "'";
$instance_config .= ";\n";
}
}
}
create_config_from_array($instance_config, $_POST); create_config_from_array($instance_config, $_POST);
$instance_config .= "\n";
$instance_config .= $more;
$instance_config .= "\n"; $instance_config .= "\n";
if (@file_put_contents('inc/instance-config.php', $instance_config)) { if (@file_put_contents('inc/instance-config.php', $instance_config)) {

3
templates/installer/config.html

@ -87,6 +87,9 @@
<legend>Miscellaneous</legend> <legend>Miscellaneous</legend>
<label for="secure_trip_salt">Secure trip (##) salt:</label> <label for="secure_trip_salt">Secure trip (##) salt:</label>
<input type="text" id="secure_trip_salt" name="secure_trip_salt" value="{{ config.secure_trip_salt }}" size="40"> <input type="text" id="secure_trip_salt" name="secure_trip_salt" value="{{ config.secure_trip_salt }}" size="40">
<label for="more">Additional configuration:</label>
<textarea id="more" name="more">{{ more }}</textarea>
</fieldset> </fieldset>
<p style="text-align:center"> <p style="text-align:center">

Loading…
Cancel
Save