Skip to content

Commit

Permalink
Feature 1460 : Customize form installation depending on database engine
Browse files Browse the repository at this point in the history
- 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
  • Loading branch information
nikrou committed Feb 27, 2010
1 parent 4986d62 commit d4287e2
Show file tree
Hide file tree
Showing 5 changed files with 68 additions and 11 deletions.
39 changes: 30 additions & 9 deletions admin/include/functions_install.inc.php
Expand Up @@ -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;
}
?>
19 changes: 19 additions & 0 deletions 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}
10 changes: 8 additions & 2 deletions admin/template/goto/install.tpl
Expand Up @@ -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 {
Expand Down Expand Up @@ -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>
Expand Down
1 change: 1 addition & 0 deletions admin/template/goto/theme/roma/theme.css
Expand Up @@ -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; } */
Expand Down
10 changes: 10 additions & 0 deletions include/config_default.inc.php
Expand Up @@ -520,6 +520,16 @@
'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);');
Expand Down

0 comments on commit d4287e2

Please sign in to comment.