✖";
$succeed="✓";
$inc_path=get_include_path();
/**
*@brief create correctly the htaccess file
*@param
*@param
*@return
*@see
*/
function create_htaccess() {
$inc_path=get_include_path();
if ( strpos($inc_path,";") != 0 ) {
$new_path=$inc_path.';..\..\include;addon';
$os=0; /* $os is 0 for windoz */
} else {
$new_path=$inc_path.':../../include:addon';
$os=1; /* $os is 1 for unix */
}
/* If htaccess file doesn't exists we create them here
* if os == 1 then windows, 0 means Unix
*/
/**
*@todo remove this test for production
*/
if ( ! DEBUG )
{
$file='..'.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'include'.DIRECTORY_SEPARATOR.'.htaccess';
$hFile=@fopen($file,'w+');
if ( ! $hFile ) exit('Impossible d\'écrire dans le répertoire include');
fwrite($hFile,'order deny,allow'."\n");
fwrite($hFile,'deny from all'."\n");
fclose($hFile);
$file='..'.DIRECTORY_SEPARATOR.'.htaccess';
$hFile=@fopen($file,'w+');
if ( ! $hFile ) exit('Impossible d\'écrire dans le répertoire html');
$array=array("php_flag magic_quotes_gpc off",
"php_flag session.auto_start on",
"php_value max_execution_time 240",
"php_value memory_limit 20M",
"AddDefaultCharset utf-8",
"php_value error_reporting 10239",
"php_value post_max_size 20M",
"php_flag short_open_tag on",
"php_value upload_max_filesize 20M",
"php_value session.use_trans_sid 1",
"php_value session.use_cookies 1",
"php_flag session.use_only_cookies on");
if ( $os == 0 )
fwrite($hFile,'php_value include_path .;..\..\include;..\include;addon'."\n");
else
fwrite($hFile,'php_value include_path .:../../include:../include:addon'."\n");
foreach ($array as $value ) fwrite($hFile,$value."\n");
fclose($hFile);
}
if ( strpos($inc_path,";") != 0 ) {
$new_path=$inc_path.';..\..\include;addon';
$os=0; /* $os is 0 for windoz */
} else {
$new_path=$inc_path.':../../include:addon';
$os=1; /* $os is 1 for unix */
}
set_include_path($new_path);
/* The config file is created here */
if (isset($_POST['save_config'])) {
require_once('config_file.php');
$url=config_file_create($_POST,1,$os);
echo '
';
create_htaccess();
exit();
}
if ( ! file_exists('..'.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'include'.DIRECTORY_SEPARATOR.'config.inc.php')) {
/* if the config file is not found we propose to create one */
if ( is_writable ('..'.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'include'.DIRECTORY_SEPARATOR.'constant.php') == false ) {
echo ' Ecriture non possible
On ne peut pas écrire dans le répertoire de phpcompta, changez-en les droits
';
exit();
}
echo '';
exit();
}
create_htaccess();
//----------------------------------------------------------------------
// End functions
//
//----------------------------------------------------------------------
// Verify some PHP parameters
// magic_quotes_gpc = Off
// magic_quotes_runtime = Off
// magic_quotes_sybase = Off
// include_path
}
?>
require_once('config_file.php');
include_once('constant.php');
require_once('class_database.php');
echo "Configuration
";
?>
Info
Vous utilisez le domaine
Php setting
";
foreach (array('magic_quotes_gpc','magic_quotes_runtime') as $a) {
echo "";
if ( ini_get($a) == false ) print $a.': '.$succeed;
else {
print $a.': '.$failed;
print ("$a a une mauvaise valeur !
");
$flag_php++;
}
echo "";
}
$module=get_loaded_extensions();
echo "";
if ( in_array('pgsql',$module) == false )
{
echo 'module PGSQL '.$failed;
print 'Désolé mais soit vous n\'avez pas installé ou activé l\'extension(pgsql) pour postgresql soit php n\'a pas pas été compilé avec les bonnes options ';
$flag_php++;
} else echo 'module PGSQL '.$succeed;
echo "";
echo "";
if ( in_array('bcmath',$module) == false )
{
echo 'module BCMATH ok '.$failed;
print 'Désolé mais soit vous n\'avez pas installé ou activé l\'extension (bcmath) pour bcmath soit php n\'a pas pas été compilé avec les bonnes options ';
$flag_php++;
} else echo 'module BCMATH '.$succeed;
echo "";
echo "";
if ( in_array('gettext',$module) == false )
{
echo 'module GETTEXT '.$failed;
print 'Désolé mais soit vous n\'avez pas installé ou activé l\'extension (gettext) pour gettext soit php n\'a pas pas été compilé avec les bonnes options ';
$flag_php++;
} else echo 'module GETTEXT '.$succeed;
echo "";
echo "";
if ( in_array('zip',$module) == false )
{
echo 'module ZIP '.$failed;
print 'Désolé mais soit vous n\'avez pas installé ou activé l\'extension (zip) pour zip soit php n\'a pas pas été compilé avec les bonnes options ';
$flag_php++;
} else echo 'module ZIP '.$succeed;
echo "";
if ( ini_get("max_execution_time") < 60 ) {
echo "";
echo 'Avertissement : '.$failed;
print ' max_execution_time devrait être de 60 minimum';
echo "";
}
if ( ini_get("session.auto_start") == false ) {
echo "";
echo 'Avertissement : '.$failed;
print ' session.auto_start doit être mis à vrai';
echo "";
$flag_php++;
}
if ( ini_get("session.use_trans_sid") == false ) {
echo "";
echo 'Avertissement : '.$failed;
print ' avertissement session.use_trans_sid should be set to true ';
echo "";
}
echo "";
if ( strpos($inc_path,"../include") == 0 && strpos ($inc_path,'..\\include') == 0)
{
echo 'variable include_path: '.$failed;
print (" include_path incorrect !!!".$inc_path."");
$flag_php++;
}
else
if ( strpos($inc_path,"addon") == 0) {
echo 'variable include_path: '.$failed;
print ("2 include_path incorrect !!!".$inc_path."");
$flag_php++;
}else
echo 'variable include_path: '.$succeed;
echo "";
echo "";
if ( $flag_php==0 ) {
echo ' php.ini est bien configuré '.$succeed.'
';
} else {
echo ' php mal configuré '.$failed.'
';
exit -1;
}
/* check user */
$cn=new Database(-1,'template');
?>
Database version
get_value($sql);
var_dump($version);
if ( $version[0] < 8 ||
($version[0]=='8' && $version[2]<4)
)
{
?>
=$failed?> Vous devez absolument utiliser au minimum une version 8.4 de PostGresql, si votre distribution n'en
offre pas, installez en une en la compilant.
Lisez attentivement la notice sur postgresql.org pour migrer
vos bases de données
Database Setting
count_sql($sql);
if ( $Res==0) { ?>
=$failed?> Vous devez installer le langage plpgsql pour permettre aux fonctions SQL de fonctionner.
Pour cela, sur la ligne de commande en tant qu\'utilisateur postgres, faites createlang plpgsql template1
exec_sql($sql);
$flag=0;
for ($e=0;$e<$cn->size();$e++) {
$a=$cn->fetch($e);
switch ($a['name']){
case 'effective_cache_size':
if ( $a['setting'] < 1000 ){
print ''.$failed.'Attention le paramètre effective_cache_size est de '.
$a['setting']." au lieu de 1000
";
$flag++;
}
break;
case 'shared_buffers':
if ( $a['setting'] < 640 ){
print ''.$failed.'Attention le paramètre shared_buffer est de '.
$a['setting']."au lieu de 640
";
$flag++;
}
break;
}
}
if ( $flag == 0 ) {
echo ' La base de données est bien configurée '.$succeed.'
';
} else {
echo ''.$failed.'Il y a '.$flag.' paramètre qui sont trop bas
';
}
if ( ! isset($_POST['go']) ) {
?>
count_sql("select * from pg_database where datname=lower('".domaine."account_repository')");
// Create the account_repository
if ($account == 0 ) {
echo "Creation of ".domaine."account_repository";
if ( ! DEBUG) ob_start();
$cn->exec_sql("create database ".domaine."account_repository encoding='utf8'");
$cn=new Database();
$cn->start();
$cn->execute_script("sql/account_repository/schema.sql");
$cn->execute_script("sql/account_repository/data.sql");
$cn->execute_script("sql/account_repository/constraint.sql");
$cn->commit($cn);
if ( ! DEBUG) ob_end_clean();
echo "Creation of Modele1";
if ( ! DEBUG) ob_start();
$cn->exec_sql("create database ".domaine."mod1 encoding='utf8'");
$cn=new Database(1,'mod');
$cn->start();
$cn->execute_script('sql/mod1/schema.sql');
$cn->execute_script('sql/mod1/data.sql');
$cn->execute_script('sql/mod1/constraint.sql');
$cn->commit();
if ( ! DEBUG) ob_end_clean();
echo "Creation of Modele2";
$cn->exec_sql("create database ".domaine."mod2 encoding='utf8'");
$cn=new Database(2,'mod');
$cn->start();
if ( ! DEBUG) { ob_start(); }
$cn->execute_script('sql/mod1/schema.sql');
$cn->execute_script('sql/mod2/data.sql');
$cn->execute_script('sql/mod1/constraint.sql');
$cn->commit();
if ( ! DEBUG) ob_end_clean();
}// end if
// Add a french accountancy model
//--
$cn=new Database();
echo " Félicitation : Installation réussie
";
echo '
';
echo "Mise a jour du systeme
";
echo " Mise à jour dossier
";
$Resdossier=$cn->exec_sql("select dos_id, dos_name from ac_dossier");
$MaxDossier=$cn->size($Resdossier);
//----------------------------------------------------------------------
// Upgrade the folders
//----------------------------------------------------------------------
for ($e=0;$e < $MaxDossier;$e++) {
$db_row=$cn->fetch($e);
echo "Patching ".$db_row['dos_name'].'
';
$db=new Database($db_row['dos_id'],'dos');
$db->apply_patch($db_row['dos_name']);
}
//----------------------------------------------------------------------
// Upgrade the template
//----------------------------------------------------------------------
$Resdossier=$cn->exec_sql("select mod_id, mod_name from modeledef");
$MaxDossier=$cn->size();
echo '
';
echo "Mise à jour modèle
";
for ($e=0;$e < $MaxDossier;$e++) {
$db_row=$cn->fetch($e);
echo "Patching ".$db_row['mod_name']."
";
$db=new Database($db_row['mod_id'],'mod');
$db->apply_patch($db_row['mod_name']);
}
//----------------------------------------------------------------------
// Upgrade the account_repository
//----------------------------------------------------------------------
echo '
';
echo "Mise à jour Repository
";
$cn=new Database();
if ( DEBUG == false ) ob_start();
$MaxVersion=DBVERSIONREPO-1;
for ($i=4;$i<= $MaxVersion;$i++)
{
if ( $cn->get_version() <= $i ) {
$cn->execute_script('sql/patch/ac-upgrade'.$i.'.sql');
}
}
if (! DEBUG) ob_end_clean();
echo "Tout est installé $succeed
";
?>
Connectez-vous à PhpCompta