diff --git a/build/perl/virtualmin/dolibarr.pl b/build/perl/virtualmin/dolibarr.pl index f105a89bc4d9583569a7f4b32aa941ff099a3a45..a8241055d0f9b89c63fb6c084b213de045d78ddd 100644 --- a/build/perl/virtualmin/dolibarr.pl +++ b/build/perl/virtualmin/dolibarr.pl @@ -1,7 +1,7 @@ #---------------------------------------------------------------------------- # \file dolibarr.pl # \brief Dolibarr script install for Virtualmin Pro -# \author (c)2009-2012 Regis Houssin <regis.houssin@capnetworks.com> +# \author (c)2009-2015 Regis Houssin <regis.houssin@capnetworks.com> #---------------------------------------------------------------------------- @@ -30,8 +30,7 @@ return "Regis Houssin"; # script_dolibarr_versions() sub script_dolibarr_versions { - # TODO Replace this with version of Dolibar we want to install - return ( "x.y.z", "3.6.0"); +return ( "3.7.2", "3.6.3", "3.5.6" ); } sub script_dolibarr_category @@ -57,6 +56,26 @@ local ($d, $ver) = @_; return ("mysql", "postgres"); } +# script_dolibarr_depends(&domain, version) +sub script_dolibarr_depends +{ +local ($d, $ver, $sinfo, $phpver) = @_; +local @rv; + +if ($ver >= 3.6) { + # Check for PHP 5.3+ + local $phpv = &get_php_version($phpver || 5, $d); + if (!$phpv) { + push(@rv, "Could not work out exact PHP version"); + } + elsif ($phpv < 5.3) { + push(@rv, "Dolibarr requires PHP version 5.3 or later"); + } + } + +return @rv; +} + # script_dolibarr_params(&domain, version, &upgrade-info) # Returns HTML for table rows for options for installing dolibarr sub script_dolibarr_params @@ -78,8 +97,7 @@ else { $rv .= &ui_table_row("Database for Dolibarr tables", &ui_database_select("db", undef, \@dbs, $d, "dolibarr")); $rv .= &ui_table_row("Install sub-directory under <tt>$hdir</tt>", - &ui_opt_textbox("dir", "dolibarr", 30, - "At top level")); + &ui_opt_textbox("dir", &substitute_scriptname_template("dolibarr", $d), 30, "At top level")); if ($d->{'ssl'} && $ver >= 3.0) { $rv .= &ui_table_row("Force https connection?", &ui_yesno_radio("forcehttps", 0)); @@ -159,7 +177,8 @@ if ($opts->{'newdb'} && !$upgrade) { local ($dbtype, $dbname) = split(/_/, $opts->{'db'}, 2); local $dbuser = $dbtype eq "mysql" ? &mysql_user($d) : &postgres_user($d); local $dbpass = $dbtype eq "mysql" ? &mysql_pass($d) : &postgres_pass($d, 1); -local $dbphptype = $dbtype eq "mysql" ? "mysqli" : "pgsql"; +local $dbphptype = $dbtype eq "mysql" && $version >= 3.6 ? "mysql" : + $dbtype eq "mysql" ? "mysqli" : "pgsql"; local $dbhost = &get_database_host($dbtype); local $dberr = &check_script_db_connection($dbtype, $dbname, $dbuser, $dbpass); return (0, "Database connection failed : $dberr") if ($dberr); @@ -201,12 +220,10 @@ if ($opts->{'path'} =~ /\w/) { if (!$upgrade) { local $cdef = "$opts->{'dir'}/conf/conf.php.example"; &run_as_domain_user($d, "cp ".quotemeta($cdef)." ".quotemeta($cfile)); - &set_ownership_permissions(undef, undef, 0777, $cfiledir); - &set_ownership_permissions(undef, undef, 0666, $cfile); + &set_permissions_as_domain_user($d, 0777, $cfiledir); + &set_permissions_as_domain_user($d, 0666, $cfile); &run_as_domain_user($d, "mkdir ".quotemeta($docdir)); - &set_ownership_permissions(undef, undef, 0777, $docdir); - &run_as_domain_user($d, "mkdir ".quotemeta($altdir)); - &set_ownership_permissions(undef, undef, 0777, $altdir); + &set_permissions_as_domain_user($d, 0777, $docdir); } else { # Preserve old config file, documents and custom directory @@ -289,8 +306,8 @@ else { local $dinstall = "$opts->{'dir'}/install"; $dinstall =~ s/\/$//; $out = &run_as_domain_user($d, "rm -rf ".quotemeta($dinstall)); - &set_ownership_permissions(undef, undef, 0644, $cfile); - &set_ownership_permissions(undef, undef, 0755, $cfiledir); + &set_permissions_as_domain_user($d, 0644, $cfile); + &set_permissions_as_domain_user($d, 0755, $cfiledir); } # Return a URL for the user @@ -309,6 +326,7 @@ local $ipage = $opts->{'path'}."/install/".$page.".php"; local ($iout, $ierror); &post_http_connection($d, $ipage, $params, \$iout, \$ierror); +print STDERR $iout; if ($ierror) { return $ierror; @@ -329,10 +347,10 @@ local $derr = &delete_script_install_directory($d, $opts); return (0, $derr) if ($derr); # Remove all llx_ tables from the database -# 3 times because of constraints -&cleanup_script_database($d, $opts->{'db'}, "llx_"); -&cleanup_script_database($d, $opts->{'db'}, "llx_"); -&cleanup_script_database($d, $opts->{'db'}, "llx_"); +# 4 times because of constraints +for(my $i=0; $i<4; $i++) { + &cleanup_script_database($d, $opts->{'db'}, "llx_"); + } # Take out the DB if ($opts->{'newdb'}) {