diff options
author | nikrou <nikrou@piwigo.org> | 2010-02-27 20:00:00 +0000 |
---|---|---|
committer | nikrou <nikrou@piwigo.org> | 2010-02-27 20:00:00 +0000 |
commit | d4287e2ad82770d8903dc1eb6cb906bb690de63a (patch) | |
tree | 614d7d8e12c9cbf94ba09682e09206aef370dd82 | |
parent | 4986d620e35d0ddecfb88c444cc220d379a48cda (diff) |
Feature 1460 : Customize form installation depending on database engine
- sqlite is proposed by default if severals
database engine are available (cf conf)
- sqlite is proposed before pdo-sqlite
- remove host, user and password for sqlite
git-svn-id: http://piwigo.org/svn/trunk@4985 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r-- | admin/include/functions_install.inc.php | 39 | ||||
-rw-r--r-- | admin/template/goto/include/install.inc.tpl | 19 | ||||
-rw-r--r-- | admin/template/goto/install.tpl | 10 | ||||
-rw-r--r-- | admin/template/goto/theme/roma/theme.css | 1 | ||||
-rw-r--r-- | include/config_default.inc.php | 10 |
5 files changed, 68 insertions, 11 deletions
diff --git a/admin/include/functions_install.inc.php b/admin/include/functions_install.inc.php index 65b1a24d6..166ed6b7d 100644 --- a/admin/include/functions_install.inc.php +++ b/admin/include/functions_install.inc.php @@ -86,20 +86,41 @@ function available_engines() foreach ($dblayers as $engine_name => $engine) { - if (file_exists(sprintf($pattern, $engine_name)) - && isset($engine['function_available']) - && function_exists($engine['function_available'])) + if (file_exists(sprintf($pattern, $engine_name))) { - $engines[$engine_name] = $engine['engine']; + $engines[$engine_name]['label'] = $engine['engine']; + $engines[$engine_name]['available'] = 'disabled'; + + if (isset($engine['function_available']) + && function_exists($engine['function_available'])) + { + $engines[$engine_name]['available'] = true; + } + elseif (isset($engine['class_available']) + && class_exists($engine['class_available'])) + { + $engines[$engine_name]['available'] = true; + } + } + } + + if (count($engines)>1) + { + $engines[$GLOBALS['conf']['dbengine_select_default']]['selected'] = true; + } + + if ($engines['sqlite']['available'] && $engines['pdo-sqlite']['available']) + { + if ($GLOBALS['conf']['db_sqlite_default']=='native') + { + unset($engines['pdo-sqlite']); } - elseif (file_exists(sprintf($pattern, $engine_name)) - && isset($engine['class_available']) - && class_exists($engine['class_available'])) + else { - $engines[$engine_name] = $engine['engine']; + unset($engines['sqlite']); } } - + return $engines; } ?>
\ No newline at end of file diff --git a/admin/template/goto/include/install.inc.tpl b/admin/template/goto/include/install.inc.tpl new file mode 100644 index 000000000..b153f0f30 --- /dev/null +++ b/admin/template/goto/include/install.inc.tpl @@ -0,0 +1,19 @@ +<script type="text/javascript" src="template-common/lib/jquery.packed.js"></script> +{literal} +<script type="text/javascript"> +$(function() { + $option_selected = $('#dblayer option:selected').attr('value'); + if ($option_selected=='sqlite' || $option_selected=='pdo-sqlite') { + $('input[name=dbhost],input[name=dbuser],input[name=dbpasswd]').parent().parent().hide(); + } + $('#dblayer').change(function() { + $db = this; + if ($db.value=='sqlite' || $db.value=='pdo-sqlite') { + $('input[name=dbhost],input[name=dbuser],input[name=dbpasswd]').parent().parent().hide(); + } else { + $('input[name=dbhost],input[name=dbuser],input[name=dbpasswd]').parent().parent().show(); + } + }); + }); +</script> +{/literal} diff --git a/admin/template/goto/install.tpl b/admin/template/goto/install.tpl index 6976d8ccc..2b83d3bf4 100644 --- a/admin/template/goto/install.tpl +++ b/admin/template/goto/install.tpl @@ -9,6 +9,7 @@ <link rel="stylesheet" type="text/css" href="{$ROOT_URL}admin/template/{$themeconf.template}/layout.css"> <link rel="stylesheet" type="text/css" href="{$ROOT_URL}admin/template/{$themeconf.template}/default-colors.css"> <link rel="stylesheet" type="text/css" href="{$ROOT_URL}admin/template/{$themeconf.template}/theme/{$themeconf.theme}/theme.css"> +{include file="include/install.inc.tpl"} {literal} <style type="text/css"> .content { @@ -88,8 +89,13 @@ TD { <tr> <td style="width: 30%;">{'step1_dbengine'|@translate}</td> <td> - <select name="dblayer"> - {html_options options=$F_DB_ENGINES selected=$F_DB_LAYER} + <select name="dblayer" id="dblayer"> + {foreach from=$F_DB_ENGINES key=k item=v} + <option value="{$k}" + {if $k==$F_DB_LAYER or $v.selected} selected="selected"{/if} + {if $v.available!=1} disabled="disabled"{/if} + >{$v.label}</option> + {/foreach} </select> </td> <td>{'step1_dbengine_info'|@translate}</td> diff --git a/admin/template/goto/theme/roma/theme.css b/admin/template/goto/theme/roma/theme.css index 0116283b0..85356582a 100644 --- a/admin/template/goto/theme/roma/theme.css +++ b/admin/template/goto/theme/roma/theme.css @@ -2,6 +2,7 @@ body, h3, dt, h2, .throw, .content, label, input.rateButtonSelected /* <= why IE doesn't inherit this ? */ { color:#666; } INPUT, select, textarea { color:#999; background-color: #444; } +option[disabled] { background-color: #999; color: #444; } input[type="radio"], input[type="checkbox"] { background-color: transparent; } /* INPUT[type="checkbox"], INPUT[type="radio"] { color:#999; background-color: #eee; } */ diff --git a/include/config_default.inc.php b/include/config_default.inc.php index c685002bb..972d89ea5 100644 --- a/include/config_default.inc.php +++ b/include/config_default.inc.php @@ -520,6 +520,16 @@ $conf['user_fields'] = array( 'email' => 'mail_address' ); +// database engine default choice between sqlite (native or via pdo) +// if the twice are available. +// $conf['db_sqlite_default'] = 'pdo'; +$conf['db_sqlite_default'] = 'native'; + +// default database engine proposed if severals are available +// choices : sqlite, mysql, pgsql, pdo-sqlite +// see include/dblayer/dblayers.inc.php +$conf['dbengine_select_default'] = 'sqlite'; + // pass_convert : function to crypt or hash the clear user password to store // it in the database $conf['pass_convert'] = create_function('$s', 'return md5($s);'); |