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
This commit is contained in:
nikrou
2010-02-27 20:00:00 +00:00
parent 4986d620e3
commit d4287e2ad8
5 changed files with 69 additions and 12 deletions
+31 -10
View File
@@ -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'];
}
elseif (file_exists(sprintf($pattern, $engine_name))
&& isset($engine['class_available'])
&& class_exists($engine['class_available']))
{
$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']);
}
else
{
unset($engines['sqlite']);
}
}
return $engines;
}
?>
@@ -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}
+8 -2
View File
@@ -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>
+1
View File
@@ -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; } */