|
@@ -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'}) {
|