ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
ilSetup Class Reference

Setup class. More...

+ Collaboration diagram for ilSetup:

Public Member Functions

 __construct ($a_auth, $a_auth_type)
 constructor More...
 
 setClient ($a_cl)
 
 getClient ()
 
 init ()
 init setup load settings from ilias.ini if exists and sets some constants More...
 
 saveNewClient ()
 saves client.ini & updates client list in ilias.ini More...
 
 updateNewClient ($a_old_client_id)
 update client.ini & move data dirs does not work correctly at this time - DISABLED More...
 
 createDatabase ($a_collation="")
 create client database More...
 
 installDatabase ()
 set the database data More...
 
 checkIniFileExists ()
 check if inifile exists More...
 
 checkWritable ()
 check for writable directory More...
 
 checkCreatable ($a_dir=".")
 check for permission to create new folders in specified directory More...
 
 checkCookiesEnabled ()
 check cookies enabled More...
 
 checkPHPVersion ()
 check for PHP version More...
 
 checkMySQL ()
 Check MySQL. More...
 
 checkAuth ()
 check authentication status More...
 
 checkDom ()
 Check MySQL. More...
 
 checkXsl ()
 Check MySQL. More...
 
 checkGd ()
 Check MySQL. More...
 
 checkMemoryLimit ()
 Check Memory Limit. More...
 
 queryPreliminaries ()
 preliminaries More...
 
 checkPreliminaries ()
 check all prliminaries More...
 
 getPassword ()
 get setup master password More...
 
 setPassword ($a_password)
 set setup master password More...
 
 loginAsClient ($a_auth_data)
 process client login More...
 
 loginAsAdmin ($a_password)
 process setup admin login More...
 
 newClient ($a_client_id=0)
 creates a client object in $this->client More...
 
 getStatus ($client=0)
 coumpute client status More...
 
 checkFinish (&$client)
 check if client setup was finished More...
 
 checkAccess (&$client)
 check client access status More...
 
 checkClientIni (&$client)
 check client ini status More...
 
 checkClientDatabase (ilClient $client)
 
 checkClientSessionSettings (&$client, $a_as_bool=false)
 check client session config status More...
 
 checkClientProxySettings (ilClient $client)
 
 checkClientLanguages (ilClient $client)
 
 checkClientContact (&$client)
 check client contact data status More...
 
 checkClientNIC (&$client)
 check client nic status More...
 
 isInstalled ()
 check if client's db is installed More...
 
 isAuthenticated ()
 check if current user is authenticated More...
 
 isAdmin ()
 check if current user is admin More...
 
 saveMasterSetup ($a_formdata)
 saves intial settings More...
 
 updateMasterSettings ($a_formdata)
 updates settings More...
 
 checkToolsSetup ($a_formdata)
 check pathes to 3rd party software More...
 
 checkDataDirSetup ($a_formdata)
 check datadir path More...
 
 checkPasswordSetup ($a_formdata)
 check setup password More...
 
 checkLogSetup ($a_formdata)
 check log path More...
 
 checkErrorLogSetup ($error_log_path)
 check error log path More...
 
 getError ()
 get Error message More...
 
 _ilSetup ()
 destructor More...
 
 testConvert ($a_convert_path)
 Check convert program. More...
 
 testGhostscript ($a_ghostscript_path)
 Check ghostscript program. More...
 
 testJava ($a_java_path)
 Check JVM. More...
 
 testLatex ($a_latex_url)
 Check latex cgi script. More...
 
 testZip ($a_zip_path)
 Check zip program. More...
 
 testUnzip ($a_unzip_path)
 Check unzip program. More...
 
 unzip ($a_file, $overwrite=false)
 unzip file More...
 
 setSessionSettings ($session_settings)
 saves session settings to db More...
 
 getSessionSettings ()
 reads session settings from db More...
 
 cloneFromSource ($source_id)
 Clone source client into current client. More...
 
 printProxyStatus ($client)
 Print proxy settings. More...
 
 saveProxySettings ($proxy_settings)
 
 hasOpCacheEnabled ()
 
 isValidClientId ($a_client_id)
 Is valid client id. More...
 

Data Fields

 $ini
 
 $ini_file_path
 
 $error = ""
 
 $ini_ilias_exists = false
 
 $ini_client_exists = false
 
 $setup_defaults
 
 $ilias_nic_server = "https://nic.ilias.de/index.php"
 
 $preliminaries_result = array()
 
 $preliminaries = true
 
 $SQL_FILE = "./setup/sql/ilias3.sql"
 
 $dsn = ""
 
 $db
 
 $setup_password
 
 $default_client
 
 $safe_mode
 
 $safe_mode_exec_dir
 
 $auth
 
 $access_mode
 
 $client
 

Protected Member Functions

 checkOpcacheSettings ()
 
 isDirectoryInOther ($directory, $other_directory)
 Checks if directory is subdirectory of other directory. More...
 

Detailed Description

Setup class.

class to setup ILIAS first and maintain the ini-settings and the database

Author
Peter Gabriel pgabr.nosp@m.iel@.nosp@m.datab.nosp@m.ay.d.nosp@m.e
Sascha Hofmann shofm.nosp@m.ann@.nosp@m.datab.nosp@m.ay.d.nosp@m.e
Version
$Id$

Definition at line 15 of file class.ilSetup.php.

Constructor & Destructor Documentation

◆ __construct()

ilSetup::__construct (   $a_auth,
  $a_auth_type 
)

constructor

Parameters
booleanuser is authenticated? (true) or not (false)
stringuser is admin or common user

Definition at line 67 of file class.ilSetup.php.

References $lng, checkAuth(), ilFile\deleteTrailingSlash(), and init().

68  {
69  global $lng;
70 
71  $this->lng = $lng;
72 
73  $this->db_connections = new ilDBConnections();
74 
75  define("ILIAS_MODULE","setup");
76 
77  $this->auth = ($this->checkAuth()) ? true : false;
78  $this->access_mode = $a_auth_type;
79 
80  // safe mode status & exec_dir
81  if ($this->safe_mode = ini_get("safe_mode"))
82  {
83  $this->safe_mode_exec_dir = ilFile::deleteTrailingSlash(ini_get("safe_mode_exec_dir"));
84  }
85 
86  // set path to ilias.ini
87  $this->ini_file_path = ILIAS_ABSOLUTE_PATH."/ilias.ini.php";
88  $this->setup_defaults = ILIAS_ABSOLUTE_PATH."/setup/ilias.master.ini.php";
89 
90  // init setup.ini
91  $this->ini_ilias_exists = $this->init();
92 
93  /*
94  if ($this->ini_ilias_exists)
95  {
96  if ($this->ini->readVariable("log","path") != "")
97  {
98  $log->path = $this->ini->readVariable("log","path");
99  }
100 
101  if ($this->ini->readVariable("log","file") != "")
102  {
103  $log->filename = $this->ini->readVariable("log","file");
104  }
105 
106  if ($this->ini->readVariable("log","enabled") != "")
107  {
108  $log->enabled = $this->ini->readVariable("log","enabled");
109  }
110  }
111  */
112  }
Administrates DB connections in setup.
deleteTrailingSlash($a_path)
delete trailing slash of path variables
init()
init setup load settings from ilias.ini if exists and sets some constants
checkAuth()
check authentication status
global $lng
Definition: privfeed.php:17
+ Here is the call graph for this function:

Member Function Documentation

◆ _ilSetup()

ilSetup::_ilSetup ( )

destructor

Returns
boolean

Definition at line 1562 of file class.ilSetup.php.

1563  {
1564  //if ($this->ini->readVariable("db","type") != "")
1565  //{
1566  // $this->db->disconnect();
1567  //}
1568  return true;
1569  }

◆ checkAccess()

ilSetup::checkAccess ( $client)

check client access status

Parameters
objectclient
Returns
boolean

Definition at line 814 of file class.ilSetup.php.

References $client.

Referenced by getStatus().

815  {
816  if ($client->ini->readVariable("client","access") == "1")
817  {
818  $arr["status"] = true;
819  $arr["comment"] = $this->lng->txt("online");
820  }
821  else
822  {
823  $arr["status"] = false;
824  $arr["comment"] = $this->lng->txt("disabled");
825  }
826 
827  return $arr;
828  }
+ Here is the caller graph for this function:

◆ checkAuth()

ilSetup::checkAuth ( )

check authentication status

Returns
boolean

Definition at line 378 of file class.ilSetup.php.

References $_SESSION.

Referenced by __construct().

379  {
380  if ($_SESSION["auth"] === true && $_SESSION["auth_path"] == ILIAS_HTTP_PATH)
381  {
382  return true;
383  }
384 
385  return false;
386  }
$_SESSION["AccountId"]
+ Here is the caller graph for this function:

◆ checkClientContact()

ilSetup::checkClientContact ( $client)

check client contact data status

Parameters
objectclient
Returns
boolean

Definition at line 1022 of file class.ilSetup.php.

References $client, and ilUtil\is_email().

Referenced by getStatus().

1023  {
1024  $arr["status"] = true;
1025  //$arr["comment"] = $this->lng->txt("filled_out");
1026 
1027  $settings = $client->getAllSettings();
1028  $client_name = $client->getName();
1029 
1030  // check required fields
1031  if (empty($settings["admin_firstname"]) or empty($settings["admin_lastname"]) or
1032  empty($settings["admin_email"]) or empty($client_name))
1033  {
1034  $arr["status"] = false;
1035  $arr["comment"] = $this->lng->txt("missing_data");
1036  }
1037 
1038  // admin email
1039  if (!ilUtil::is_email($settings["admin_email"]) and $arr["status"] != false)
1040  {
1041  $arr["status"] = false;
1042  $arr["comment"] = $this->lng->txt("email_not_valid");
1043  }
1044 
1045  return $arr;
1046  }
static is_email($a_email)
This preg-based function checks whether an e-mail address is formally valid.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ checkClientDatabase()

ilSetup::checkClientDatabase ( ilClient  $client)
Parameters
\ilClient$client
Returns
array

Definition at line 854 of file class.ilSetup.php.

References $ilDB, array, ilClient\getSetting(), ilClient\provideGlobalDB(), and ilClient\revokeGlobalDB().

Referenced by getStatus().

854  {
855  $arr = array();
856  $client->provideGlobalDB();
857  if (!$arr["status"] = $client->db_exists) {
858  $arr["comment"] = $this->lng->txt("no_database");
859 
860  return $arr;
861  }
862 
863  if (!$arr["status"] = $client->db_installed) {
864  $arr["comment"] = $this->lng->txt("db_not_installed");
865 
866  return $arr;
867  }
868  // TODO: move this to client class!!
869  $client->setup_ok = (bool)$client->getSetting("setup_ok");
870 
871  include_once "./Services/Database/classes/class.ilDBUpdate.php";
872  $this->lng->setDbHandler($client->db);
873  $dbupdate = new ilDBUpdate($client->db);
874 
875  if (!$arr["status"] = $dbupdate->getDBVersionStatus()) {
876  $arr["comment"] = $this->lng->txt("db_needs_update");
877  $arr["update"] = true;
878 
879  return $arr;
880  } else {
881  if ($dbupdate->hotfixAvailable()) {
882  $arr["status"] = false;
883  $arr["comment"] = $this->lng->txt("hotfix_available");
884  $arr["update"] = true;
885 
886  return $arr;
887  } else {
888  if ($dbupdate->customUpdatesAvailable()) {
889  $arr["status"] = false;
890  $arr["comment"] = $this->lng->txt("custom_updates_available");
891  $arr["update"] = true;
892 
893  return $arr;
894  }
895  }
896  }
897 
898  // check control information
899  global $ilDB;
900  $cset = $ilDB->query("SELECT count(*) as cnt FROM ctrl_calls");
901  $crec = $ilDB->fetchAssoc($cset);
902  $client->revokeGlobalDB();
903  if ($crec["cnt"] == 0) {
904  $arr["status"] = false;
905  $arr["comment"] = $this->lng->txt("db_control_structure_missing");
906  $arr["update"] = true;
907 
908  return $arr;
909  }
910 
911  return $arr;
912  }
Database Update class.
Create styles array
The data for the language used.
global $ilDB
getSetting($a_keyword)
read one value from settings table
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ checkClientIni()

ilSetup::checkClientIni ( $client)

check client ini status

Parameters
objectclient
Returns
boolean

Definition at line 835 of file class.ilSetup.php.

References $client.

Referenced by getStatus().

836  {
837  if (!$arr["status"] = $client->init())
838  {
839  $arr["comment"] = $client->getError();
840  }
841  else
842  {
843  //$arr["comment"] = "dir: /".ILIAS_WEB_DIR."/".$client->getId();
844  }
845 
846  return $arr;
847  }
+ Here is the caller graph for this function:

◆ checkClientLanguages()

ilSetup::checkClientLanguages ( ilClient  $client)
Parameters
\ilClient$client
Returns
array

Definition at line 1000 of file class.ilSetup.php.

References array, ilClient\provideGlobalDB(), and ilClient\revokeGlobalDB().

Referenced by getStatus().

1000  {
1001  $client->provideGlobalDB();
1002  $installed_langs = $this->lng->getInstalledLanguages();
1003 
1004  $count = count($installed_langs);
1005  $arr = array();
1006  if ($count < 1) {
1007  $arr["status"] = false;
1008  $arr["comment"] = $this->lng->txt("lang_none_installed");
1009  } else {
1010  $arr["status"] = true;
1011  //$arr["comment"] = $count." ".$this->lng->txt("languages_installed");
1012  }
1013  $client->revokeGlobalDB();
1014  return $arr;
1015  }
Create styles array
The data for the language used.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ checkClientNIC()

ilSetup::checkClientNIC ( $client)

check client nic status

Parameters
objectclient
Returns
boolean

Definition at line 1053 of file class.ilSetup.php.

References $client.

Referenced by getStatus().

1054  {
1055  $settings = $client->getAllSettings();
1056 
1057  if (!isset($settings["nic_enabled"]))
1058  {
1059  $arr["status"] = false;
1060  $arr["comment"] = $this->lng->txt("nic_not_disabled");
1061  return $arr;
1062  }
1063 
1064  $arr["status"] = true;
1065 
1066  if ($settings["nic_enabled"] == "-1")
1067  {
1068  $arr["comment"] = $this->lng->txt("nic_reg_failed");
1069  return $arr;
1070  }
1071 
1072  if (!$settings["nic_enabled"])
1073  {
1074  $arr["comment"] = $this->lng->txt("nic_reg_disabled");
1075  }
1076  else
1077  {
1078  $arr["comment"] = $this->lng->txt("nic_reg_enabled");
1079  if ($settings["inst_id"] <= 0)
1080  {
1081  $arr["status"] = false;
1082  }
1083  }
1084 
1085  return $arr;
1086  }
+ Here is the caller graph for this function:

◆ checkClientProxySettings()

ilSetup::checkClientProxySettings ( ilClient  $client)
Parameters
\ilClient$client
Returns
array

Definition at line 960 of file class.ilSetup.php.

References $ilDB, $query, $res, $row, array, and ilClient\provideGlobalDB().

Referenced by getStatus().

960  {
961  $client->provideGlobalDB();
962  global $ilDB;
963  $arr = array();
964  $fields = array( 'proxy_status', 'proxy_host', 'proxy_port' );
965 
966  $query = "SELECT keyword, value FROM settings WHERE " . $ilDB->in('keyword', $fields, false, 'text');
967  $res = $ilDB->query($query);
968 
969  $proxy_settings = array();
970  $already_saved = false;
971  while ($row = $ilDB->fetchAssoc($res)) {
972  $already_saved = true;
973  $proxy_settings[$row['keyword']] = $row['value'];
974  }
975 
976  if (!$already_saved) {
977  $arr["status"] = false;
978  $arr["comment"] = $this->lng->txt("proxy");
979  $arr["text"] = $this->lng->txt("proxy");
980  } else {
981  if ((bool)$proxy_settings["proxy_status"] == false) {
982  $arr["status"] = true;
983  $arr["comment"] = $this->lng->txt("proxy_disabled");
984  $arr["text"] = $this->lng->txt("proxy_disabled");
985  } else {
986  $arr["status"] = true;
987  $arr["comment"] = $this->lng->txt("proxy_activated_configurated");
988  $arr["text"] = $this->lng->txt("proxy_activated_configurated");
989  }
990  }
991 
992  return $arr;
993  }
Create styles array
The data for the language used.
global $ilDB
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ checkClientSessionSettings()

ilSetup::checkClientSessionSettings ( $client,
  $a_as_bool = false 
)

check client session config status

Parameters
objectclient
Returns
boolean

Definition at line 919 of file class.ilSetup.php.

References $ilDB, $query, $res, $row, array, ilDBConstants\FETCHMODE_ASSOC, and ilSessionControl\getSettingFields().

920  {
921  require_once('Services/Authentication/classes/class.ilSessionControl.php');
922 
923  global $ilDB;
924  $db = $ilDB;
925 
927 
928  $query = "SELECT keyword, value FROM settings WHERE ".$db->in('keyword', $fields, false, 'text');
929  $res = $db->query($query);
930 
931  $rows = array();
932  while($row = $res->fetchRow(ilDBConstants::FETCHMODE_ASSOC))
933  {
934  if( $row['value'] != '' )
935  $rows[] = $row;
936  else break;
937  }
938 
939  if (count($rows) != count($fields))
940  {
941  if($a_as_bool) return false;
942  $arr["status"] = false;
943  $arr["comment"] = $this->lng->txt("session_management_not_configured");
944  }
945  else
946  {
947  if($a_as_bool) return true;
948  $arr["status"] = true;
949  $arr["comment"] = $this->lng->txt("session_management_configured");
950  }
951 
952  return $arr;
953  }
static getSettingFields()
returns the array of setting fields
Create styles array
The data for the language used.
global $ilDB
+ Here is the call graph for this function:

◆ checkCookiesEnabled()

ilSetup::checkCookiesEnabled ( )

check cookies enabled

Returns
array

Definition at line 315 of file class.ilSetup.php.

References $sess.

Referenced by queryPreliminaries().

316  {
317  global $sess;
318 
319  if ($sess->usesCookies)
320  {
321  $arr["status"] = true;
322  $arr["comment"] = "";
323  }
324  else
325  {
326  $arr["status"] = false;
327  $arr["comment"] = $this->lng->txt("pre_cookies_disabled");
328  }
329 
330  return $arr;
331  }
+ Here is the caller graph for this function:

◆ checkCreatable()

ilSetup::checkCreatable (   $a_dir = ".")

check for permission to create new folders in specified directory

Parameters
stringdirectory
Returns
array

Definition at line 289 of file class.ilSetup.php.

Referenced by queryPreliminaries().

290  {
291  clearstatcache();
292  if (@mkdir($a_dir."/crst879dldsk9d", 0774))
293  {
294  $arr["status"] = true;
295  $arr["comment"] = "";
296 
297  @rmdir($a_dir."/crst879dldsk9d");
298  }
299  else
300  {
301  $arr["status"] = false;
302  //$cdir = getcwd();
303  //chdir("..");
304  $arr["comment"] = getcwd().": ".$this->lng->txt("pre_folder_create_error");
305  //chdir($cdir);
306  }
307 
308  return $arr;
309  }
+ Here is the caller graph for this function:

◆ checkDataDirSetup()

ilSetup::checkDataDirSetup (   $a_formdata)

check datadir path

Parameters
arrayform data
Returns
boolean

Definition at line 1397 of file class.ilSetup.php.

References ilFile\deleteTrailingSlash(), isDirectoryInOther(), and ilUtil\stripSlashes().

1398  {
1399  // remove trailing slash & convert backslashes to forwardslashes
1400  $datadir_path = preg_replace("/\\\\/","/",ilFile::deleteTrailingSlash(ilUtil::stripSlashes($a_formdata["datadir_path"])));
1401 
1402  if (empty($datadir_path))
1403  {
1404  $this->error = "no_path_datadir";
1405  return false;
1406  }
1407 
1408  $webspace_dir = ILIAS_ABSOLUTE_PATH . "/data";
1409 
1410  // datadir may not point to webspace dir or to any place under webspace_dir
1411  if (strpos($datadir_path,$webspace_dir) !== false)
1412  {
1413  $this->error = "datadir_webspacedir_match";
1414  return false;
1415  }
1416 
1417  // create dir
1418  if ($a_formdata["chk_datadir_path"] == 1)
1419  {
1420  $dir_to_create = substr(strrchr($datadir_path, "/"), 1);
1421  $dir_to_check = substr($datadir_path,0,- strlen($dir_to_create)-1);
1422 
1423  if ($this->isDirectoryInOther($dir_to_create, ILIAS_ABSOLUTE_PATH)) {
1424  $this->error = "cannot_create_datadir_inside_webdir";
1425  return false;
1426  }
1427 
1428  if (is_writable($datadir_path))
1429  {
1430  $this->error = "dir_exists_create";
1431  return false;
1432  }
1433 
1434  if (!is_writable($dir_to_check))
1435  {
1436  $this->error = "cannot_create_datadir_no_write_access";
1437  return false;
1438  }
1439  }
1440  else // check set target dir
1441  {
1442  if ($this->isDirectoryInOther($datadir_path, ILIAS_ABSOLUTE_PATH)) {
1443  $this->error = "cannot_create_datadir_inside_webdir";
1444  return false;
1445  }
1446 
1447  if (!is_writable($datadir_path))
1448  {
1449  $this->error = "cannot_create_datadir_no_write_access";
1450  return false;
1451  }
1452  }
1453 
1454  return true;
1455  }
isDirectoryInOther($directory, $other_directory)
Checks if directory is subdirectory of other directory.
deleteTrailingSlash($a_path)
delete trailing slash of path variables
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
+ Here is the call graph for this function:

◆ checkDom()

ilSetup::checkDom ( )

Check MySQL.

Returns
boolean

Definition at line 393 of file class.ilSetup.php.

References $ilDB.

Referenced by queryPreliminaries().

394  {
395  global $ilDB;
396 
397  if (class_exists("DOMDocument"))
398  {
399  $arr["status"] = true;
400  }
401  else
402  {
403  $arr["status"] = false;
404  $arr["comment"] = $this->lng->txt("pre_dom_missing");
405  }
406 
407  return $arr;
408  }
global $ilDB
+ Here is the caller graph for this function:

◆ checkErrorLogSetup()

ilSetup::checkErrorLogSetup (   $error_log_path)

check error log path

Parameters
string$error_log_pathpath to save error log files
Returns
boolean

Definition at line 1526 of file class.ilSetup.php.

References ilFile\deleteTrailingSlash(), ilUtil\makeDirParents(), and ilUtil\stripSlashes().

1526  {
1527  // remove trailing slash & convert backslashes to forwardslashes
1528  $clean_error_log_path = preg_replace("/\\\\/","/",ilFile::deleteTrailingSlash(ilUtil::stripSlashes($error_log_path)));
1529 
1530  if (!empty($clean_error_log_path)) {
1531  if (!ilUtil::makeDirParents($clean_error_log_path)) {
1532  $this->error = "could_not_create_error_directory";
1533  return false;
1534  }
1535  }
1536 
1537  return true;
1538  }
static makeDirParents($a_dir)
Create a new directory and all parent directories.
deleteTrailingSlash($a_path)
delete trailing slash of path variables
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
+ Here is the call graph for this function:

◆ checkFinish()

ilSetup::checkFinish ( $client)

check if client setup was finished

Parameters
objectclient
Returns
boolean

Definition at line 793 of file class.ilSetup.php.

References $client.

Referenced by getStatus().

794  {
795  if ($client->getSetting("setup_ok"))
796  {
797  $arr["status"] = true;
798  //$arr["comment"] = $this->lng->txt("setup_finished");
799  }
800  else
801  {
802  $arr["status"] = false;
803  $arr["comment"] = $this->lng->txt("setup_not_finished");
804  }
805 
806  return $arr;
807  }
+ Here is the caller graph for this function:

◆ checkGd()

ilSetup::checkGd ( )

Check MySQL.

Returns
boolean

Definition at line 436 of file class.ilSetup.php.

References $ilDB.

Referenced by queryPreliminaries().

437  {
438  global $ilDB;
439 
440  if (function_exists("imagefill") && function_exists("imagecolorallocate"))
441  {
442  $arr["status"] = true;
443  }
444  else
445  {
446  $arr["status"] = false;
447  $arr["comment"] = sprintf($this->lng->txt("pre_gd_missing"),
448  "http://php.net/manual/en/book.image.php");
449  }
450 
451  return $arr;
452  }
global $ilDB
+ Here is the caller graph for this function:

◆ checkIniFileExists()

ilSetup::checkIniFileExists ( )

check if inifile exists

Returns
boolean

Definition at line 249 of file class.ilSetup.php.

250  {
251  $a = @file_exists($this->INI_FILE);
252  return $a;
253  }

◆ checkLogSetup()

ilSetup::checkLogSetup (   $a_formdata)

check log path

Parameters
arrayform data
Returns
boolean

Definition at line 1484 of file class.ilSetup.php.

References ilFile\deleteTrailingSlash(), isDirectoryInOther(), and ilUtil\stripSlashes().

1485  {
1486  // log path
1487  if (!$a_formdata["chk_log_status"])
1488  {
1489  // remove trailing slash & convert backslashes to forwardslashes
1490  $log_path = preg_replace("/\\\\/","/",ilFile::deleteTrailingSlash(ilUtil::stripSlashes($a_formdata["log_path"])));
1491 
1492  if (empty($log_path))
1493  {
1494  $this->error = "no_path_log";
1495  return false;
1496  }
1497 
1498  if(is_dir($log_path))
1499  {
1500  $this->error = 'could_not_create_logfile';
1501  return false;
1502  }
1503 
1504  if ($this->isDirectoryInOther($log_path, ILIAS_ABSOLUTE_PATH)) {
1505  $this->error = "cannot_create_logdir_inside_webdir";
1506  return false;
1507  }
1508 
1509  if (!@touch($log_path))
1510  {
1511  $this->error = "could_not_create_logfile";
1512  return false;
1513  }
1514  }
1515 
1516  return true;
1517  }
isDirectoryInOther($directory, $other_directory)
Checks if directory is subdirectory of other directory.
deleteTrailingSlash($a_path)
delete trailing slash of path variables
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
+ Here is the call graph for this function:

◆ checkMemoryLimit()

ilSetup::checkMemoryLimit ( )

Check Memory Limit.

Returns
boolean

Definition at line 458 of file class.ilSetup.php.

References $ilDB.

Referenced by queryPreliminaries().

459  {
460  global $ilDB;
461 
462  $limit = ini_get("memory_limit");
463 
464  $limit_ok = true;
465  if (is_int(strpos($limit, "M")))
466  {
467  $limit_n = (int) $limit;
468  if ($limit_n < 40)
469  {
470  $limit_ok = false;
471  }
472  }
473 
474  if ($limit_ok)
475  {
476  $arr["status"] = true;
477  $arr["comment"] = $limit.". ".$this->lng->txt("pre_memory_limit_recommend");
478  }
479  else
480  {
481  $arr["status"] = false;
482  $arr["comment"] = $limit.". ".$this->lng->txt("pre_memory_limit_too_low");
483  }
484 
485  return $arr;
486  }
global $ilDB
+ Here is the caller graph for this function:

◆ checkMySQL()

ilSetup::checkMySQL ( )

Check MySQL.

Returns
boolean

Definition at line 356 of file class.ilSetup.php.

References $ilDB.

357  {
358  global $ilDB;
359 
360  if (function_exists("mysql_query"))
361  {
362  $arr["status"] = true;
363  $arr["comment"] = $this->lng->txt("pre_mysql_4_1_or_higher");
364  }
365  else
366  {
367  $arr["status"] = false;
368  $arr["comment"] = $this->lng->txt("pre_mysql_missing");
369  }
370 
371  return $arr;
372  }
global $ilDB

◆ checkOpcacheSettings()

ilSetup::checkOpcacheSettings ( )
protected
Returns
array

Definition at line 492 of file class.ilSetup.php.

References array.

Referenced by queryPreliminaries().

492  {
493  $arr = array();
494  // correct-with-php5-removal FSX start
495  if (version_compare(PHP_VERSION, '7.0.0', '>=')) {
496  $arr["status"] = true;
497 
498  return $arr;
499  }
500  // correct-with-php5-removal FSX end
501 
502  $load_comments = ini_get("opcache.load_comments");
503  if ($load_comments == 1) {
504  $arr["status"] = true;
505  } else {
506  $arr["status"] = false;
507  $arr["comment"] = $this->lng->txt("pre_opcache_comments");
508  }
509 
510  return $arr;
511  }
Create styles array
The data for the language used.
+ Here is the caller graph for this function:

◆ checkPasswordSetup()

ilSetup::checkPasswordSetup (   $a_formdata)

check setup password

Parameters
arrayform data
Returns
boolean

Definition at line 1462 of file class.ilSetup.php.

1463  {
1464  if (!$a_formdata["setup_pass"])
1465  {
1466  $this->error = "no_setup_pass_given";
1467  return false;
1468  }
1469 
1470  if ($a_formdata["setup_pass"] != $a_formdata["setup_pass2"])
1471  {
1472  $this->error = "pass_does_not_match";
1473  return false;
1474  }
1475 
1476  return true;
1477  }

◆ checkPHPVersion()

ilSetup::checkPHPVersion ( )

check for PHP version

Returns
array

Definition at line 337 of file class.ilSetup.php.

References $version.

Referenced by queryPreliminaries().

338  {
339  $version = PHP_VERSION;
340 
341  $arr["status"] = true;
342  $arr["comment"] = "PHP ".$version;
343  if (version_compare($version, '5.3.0', '<'))
344  {
345  $arr["status"] = false;
346  $arr["comment"] = "PHP ".$version.". ".$this->lng->txt("pre_php_version_too_low");
347  }
348 
349  return $arr;
350  }
+ Here is the caller graph for this function:

◆ checkPreliminaries()

ilSetup::checkPreliminaries ( )

check all prliminaries

Returns
boolean

Definition at line 544 of file class.ilSetup.php.

References queryPreliminaries().

545  {
546  $this->preliminaries_result = $this->queryPreliminaries();
547 
548  foreach ($this->preliminaries_result as $val)
549  {
550  if ($val["status"] === false)
551  {
552  $this->preliminaries = false;
553  return false;
554  }
555  }
556 
557  return true;
558  }
queryPreliminaries()
preliminaries
+ Here is the call graph for this function:

◆ checkToolsSetup()

ilSetup::checkToolsSetup (   $a_formdata)

check pathes to 3rd party software

Parameters
arrayform data
Returns
boolean

Definition at line 1257 of file class.ilSetup.php.

References ilUtil\stripSlashes(), testConvert(), testGhostscript(), testJava(), testLatex(), testUnzip(), and testZip().

1258  {
1259  // convert path
1260  if (!isset($a_formdata["chk_convert_path"]))
1261  {
1262  // convert backslashes to forwardslashes
1263  $convert_path = preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["convert_path"]));
1264 
1265  if (($err = $this->testConvert($convert_path)) != "")
1266  {
1267  $this->error = $err;
1268  return false;
1269  }
1270  }
1271 
1272  // zip path
1273  if (!isset($a_formdata["chk_zip_path"]))
1274  {
1275  // convert backslashes to forwardslashes
1276  $zip_path = preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["zip_path"]));
1277 
1278  if (empty($zip_path))
1279  {
1280  $this->error = "no_path_zip";
1281  return false;
1282  }
1283 
1284  if (!$this->testZip($zip_path))
1285  {
1286  $this->error = "check_failed_zip";
1287  return false;
1288  }
1289  }
1290 
1291  // unzip path
1292  if (!isset($a_formdata["chk_unzip_path"]))
1293  {
1294  // convert backslashes to forwardslashes
1295  $unzip_path = preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["unzip_path"]));
1296 
1297  if (empty($unzip_path))
1298  {
1299  $this->error = "no_path_unzip";
1300  return false;
1301  }
1302 
1303  if (!$this->testUnzip($unzip_path))
1304  {
1305  $this->error = "check_failed_unzip";
1306  return false;
1307  }
1308  }
1309 
1310  // ghostscript path
1311  if (!isset($a_formdata["chk_ghostscript_path"]))
1312  {
1313  // convert backslashes to forwardslashes
1314  $ghostscript_path = preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["ghostscript_path"]));
1315 
1316  if (($err = $this->testGhostscript($ghostscript_path)) != "")
1317  {
1318  $this->error = $err;
1319  return false;
1320  }
1321  }
1322 
1323  // java path
1324  if (!isset($a_formdata["chk_java_path"]))
1325  {
1326  // convert backslashes to forwardslashes
1327  $java_path = preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["java_path"]));
1328 
1329  if (empty($java_path))
1330  {
1331  $this->error = "no_path_java";
1332  return false;
1333  }
1334 
1335  if (!$this->testJava($java_path))
1336  {
1337  $this->error = "check_failed_java";
1338  return false;
1339  }
1340  }
1341 
1342  /*if (!isset($a_formdata["chk_mkisofs_path"]))
1343  {
1344  // convert backslashes to forwardslashes
1345  $mkisofs_path = preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["mkisofs_path"]));
1346 
1347  if (empty($mkisofs_path))
1348  {
1349  $this->error = "no_path_mkisofs";
1350  return false;
1351  }
1352  }*/
1353 
1354  if (!isset($a_formdata["chk_ffmpeg_path"]))
1355  {
1356  // convert backslashes to forwardslashes
1357  $ffmpeg_path = preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["ffmpeg_path"]));
1358 
1359  if (empty($ffmpeg_path))
1360  {
1361  $this->error = "no_path_ffmpeg";
1362  return false;
1363  }
1364 
1365  if (!$this->testFFMpeg($ffmpeg_path))
1366  {
1367  $this->error = "check_failed_ffmpeg";
1368  return false;
1369  }
1370  }
1371 
1372  // latex url
1373  if (!isset($a_formdata["chk_latex_url"]))
1374  {
1375  $latex_url = ilUtil::stripSlashes($a_formdata["latex_url"]);
1376  if (empty($latex_url))
1377  {
1378  $this->error = "no_latex_url";
1379  return false;
1380  }
1381 
1382  if (!$this->testLatex($latex_url))
1383  {
1384  $this->error = "check_failed_latex";
1385  return false;
1386  }
1387  }
1388 
1389  return true;
1390  }
testLatex($a_latex_url)
Check latex cgi script.
testZip($a_zip_path)
Check zip program.
testJava($a_java_path)
Check JVM.
testConvert($a_convert_path)
Check convert program.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
testGhostscript($a_ghostscript_path)
Check ghostscript program.
testUnzip($a_unzip_path)
Check unzip program.
+ Here is the call graph for this function:

◆ checkWritable()

ilSetup::checkWritable ( )

check for writable directory

Parameters
stringdirectory
Returns
array

Definition at line 260 of file class.ilSetup.php.

Referenced by queryPreliminaries().

261  {
262  clearstatcache();
263  if (is_writable("."))
264  {
265  $arr["status"] = true;
266  //$cdir = getcwd();
267  //chdir("..");
268  $arr["comment"] = getcwd();
269  //chdir($cdir);
270  }
271  else
272  {
273  $arr["status"] = false;
274  $arr["comment"] = $this->lng->txt("pre_folder_write_error");
275  //$cdir = getcwd();
276  //chdir("..");
277  $arr["comment"] = getcwd().": ".$arr["comment"];
278  //chdir($cdir);
279  }
280 
281  return $arr;
282  }
+ Here is the caller graph for this function:

◆ checkXsl()

ilSetup::checkXsl ( )

Check MySQL.

Returns
boolean

Definition at line 414 of file class.ilSetup.php.

References $ilDB.

Referenced by queryPreliminaries().

415  {
416  global $ilDB;
417 
418  if (class_exists("XSLTProcessor"))
419  {
420  $arr["status"] = true;
421  }
422  else
423  {
424  $arr["status"] = false;
425  $arr["comment"] = sprintf($this->lng->txt("pre_xsl_missing"),
426  "http://php.net/manual/en/book.xsl.php");
427  }
428 
429  return $arr;
430  }
global $ilDB
+ Here is the caller graph for this function:

◆ cloneFromSource()

ilSetup::cloneFromSource (   $source_id)

Clone source client into current client.

Parameters
arrayform data
Returns
boolean

Definition at line 1958 of file class.ilSetup.php.

References $client, $insert, $target, ilUtil\delDir(), ilUtil\makeDir(), and ilUtil\rCopy().

1959  {
1960  // Getting source and targets
1961  $source = new ilClient($source_id, $this->db_connections);
1962  $source->init();
1964 
1965  // ************************************************
1966  // ** COPY FILES
1967 
1968  // Cleaning up datadir
1969  if (! ilUtil::delDir($target->getDataDir())) {
1970  $this->error = "Could not delete data dir $target->getDataDir()";
1971  //return false;
1972  }
1973 
1974  // Create empty datadir
1975  if (!ilUtil::makeDir($target->getDataDir()))
1976  {
1977  $this->error = "could_not_create_base_data_dir :".$target->getDataDir();
1978  return false;
1979  }
1980 
1981  // Copying datadir
1982  if (! ilUtil::rCopy($source->getDataDir(),$target->getDataDir())) {
1983  $this->error = "clone_datadircopyfail";
1984  $target->ini->write();
1985  return false;
1986  }
1987 
1988  // Cleaning up Webspacedir
1989  if (! ilUtil::delDir($target->getWebspaceDir())) {
1990  $this->error = "Could not delete webspace dir $target->getWebspaceDir()";
1991  //return false;
1992  }
1993 
1994  // Create empty Webspacedir
1995  if (!ilUtil::makeDir($target->getWebspaceDir()))
1996  {
1997  $this->error = "could_not_create_base_webspace_dir :".$target->getWebspaceDir();
1998  return false;
1999  }
2000 
2001  // Copying Webspacedir
2002  if (! ilUtil::rCopy($source->getWebspaceDir(),$target->getWebspaceDir())) {
2003  $this->error = "clone_websipacedircopyfail";
2004  $target->ini->write();
2005  return false;
2006  }
2007 
2008  // Restore ini file
2009  $target->ini->write();
2010 
2011  // ************************************************
2012  // ** COPY DATABASE
2013 
2014  $source->connect();
2015  if (!$source->db)
2016  {
2017  $this->error = "Source database connection failed.";
2018  return false;
2019  }
2020 
2021  $target->connect();
2022  if (!$target->db)
2023  {
2024  $this->error = "Target database connection failed.";
2025  return false;
2026  }
2027 
2028  $source->connect();
2029  $srcTables = $source->db->query("SHOW TABLES");
2030  $target->connect();
2031 
2032  // drop all tables of the target db
2033  $tarTables = $target->db->query("SHOW TABLES");
2034  foreach($tarTables->fetchAll() as $cTable)
2035  {
2036  $target->db->query("DROP TABLE IF EXISTS " . $cTable[0]);
2037  }
2038 
2039  foreach($srcTables->fetchAll() as $cTable){
2040  $drop = $target->db->query("DROP TABLE IF EXISTS " . $cTable[0]);
2041  $create = $target->db->query("CREATE TABLE " . $cTable[0] . " LIKE " . $source->getDbName() . "." . $cTable[0]);
2042  if(!$create) {
2043  $error = true;
2044  }
2045  $insert = $target->db->query("INSERT INTO " . $cTable[0] . " SELECT * FROM ".$source->getDbName().".".$cTable[0]);
2046  }
2047 
2048  $target->db->query("UPDATE settings SET VALUE = ".$target->db->quote(0, "integer")." WHERE keyword = ".$target->db->quote("inst_id", "text"));
2049  $target->db->query("UPDATE settings SET VALUE = ".$target->db->quote(0, "integer")." WHERE keyword = ".$target->db->quote("nic_enabled", "text"));
2050  return true;
2051  }
static rCopy($a_sdir, $a_tdir, $preserveTimeAttributes=false)
Copies content of a directory $a_sdir recursively to a directory $a_tdir.
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
Client Management.
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
$insert
+ Here is the call graph for this function:

◆ createDatabase()

ilSetup::createDatabase (   $a_collation = "")

create client database

Returns
boolean

Definition at line 212 of file class.ilSetup.php.

213  {
214  if ($this->client->getDBSetup()->isDatabaseInstalled()) {
215  $this->error = $this->lng->txt("database_exists");
216 
217  return false;
218  }
219 
220  $db_setup = $this->client->getDBSetup();
221  return $db_setup->createDatabase($a_collation);
222  }

◆ getClient()

ilSetup::getClient ( )
Returns
ilClient

Definition at line 132 of file class.ilSetup.php.

References $client.

132  {
133  return $this->client;
134  }

◆ getError()

ilSetup::getError ( )

get Error message

Returns
string error message

Definition at line 1544 of file class.ilSetup.php.

References $error.

1545  {
1546  if (empty($this->error))
1547  {
1548  return false;
1549  }
1550 
1551  $error = $this->error;
1552  $this->error = "";
1553 
1554  return $error;
1555  }

◆ getPassword()

ilSetup::getPassword ( )

get setup master password

Returns
string

Definition at line 564 of file class.ilSetup.php.

565  {
566  return $this->ini->readVariable("setup","pass");
567  }

◆ getSessionSettings()

ilSetup::getSessionSettings ( )

reads session settings from db

Returns
array session_settings

Definition at line 1893 of file class.ilSetup.php.

References $query, $res, $row, array, ilSessionControl\DEFAULT_ALLOW_CLIENT_MAINTENANCE, ilSessionControl\DEFAULT_MAX_COUNT, ilSessionControl\DEFAULT_MAX_IDLE, ilSessionControl\DEFAULT_MAX_IDLE_AFTER_FIRST_REQUEST, ilSessionControl\DEFAULT_MIN_IDLE, ilDBConstants\FETCHMODE_ASSOC, and ilSessionControl\getSettingFields().

1894  {
1895  require_once('Services/Authentication/classes/class.ilSessionControl.php');
1896 
1897  $db = $this->client->getDB();
1898 
1899  $setting_fields = ilSessionControl::getSettingFields();
1900 
1901  $query = "SELECT * FROM settings WHERE module = %s " .
1902  "AND ".$db->in('keyword', $setting_fields, false, 'text');
1903 
1904  $res = $db->queryF($query, array('text'), array('common'));
1905 
1906  $session_settings = array();
1907  while($row = $res->fetchRow(ilDBConstants::FETCHMODE_ASSOC))
1908  {
1909  $session_settings[$row['keyword']] = $row['value'];
1910  }
1911 
1912  foreach( $setting_fields as $field )
1913  {
1914  if( !isset($session_settings[$field]) )
1915  {
1916  $value = 1;
1917 
1918  switch($field)
1919  {
1920  case 'session_max_count':
1921 
1923  break;
1924 
1925  case 'session_min_idle':
1926 
1928  break;
1929 
1930  case 'session_max_idle':
1931 
1933  break;
1934 
1935  case 'session_max_idle_after_first_request':
1936 
1938  break;
1939 
1940  case 'session_allow_client_maintenance':
1941 
1943  break;
1944  }
1945 
1946  $session_settings[$field] = $value;
1947  }
1948  }
1949 
1950  return $session_settings;
1951  }
const DEFAULT_MAX_COUNT
default value for settings that have not been defined in setup or administration yet ...
static getSettingFields()
returns the array of setting fields
Create styles array
The data for the language used.
+ Here is the call graph for this function:

◆ getStatus()

ilSetup::getStatus (   $client = 0)

coumpute client status

Parameters
stringclient id
Returns
array status information

Definition at line 741 of file class.ilSetup.php.

References $client, array, checkAccess(), checkClientContact(), checkClientDatabase(), checkClientIni(), checkClientLanguages(), checkClientNIC(), checkClientProxySettings(), and checkFinish().

742  {
743  if (!is_object($client))
744  {
745  if ($this->ini_client_exists)
746  {
748  }
749  else
750  {
751  $client = new ilClient(0, $this->db_connections);
752  }
753  }
754 
755  $status = array();
756  $status["ini"] = $this->checkClientIni($client); // check this one
757  $status["db"] = $this->checkClientDatabase($client);
758  if ($status["db"]["status"] === false and $status["db"]["update"] !== true)
759  {
760  //$status["sess"]["status"] = false;
761  //$status["sess"]["comment"] = $status["db"]["comment"];
762  $status["lang"]["status"] = false;
763  $status["lang"]["comment"] = $status["db"]["comment"];
764  $status["contact"]["status"] = false;
765  $status["contact"]["comment"] = $status["db"]["comment"];
766 
767  $status["proxy"]["status"] = false;
768  $status["proxy"]["comment"] = $status["db"]["comment"];
769 
770  $status["nic"]["status"] = false;
771  $status["nic"]["comment"] = $status["db"]["comment"];
772  }
773  else
774  {
775  //$status["sess"] = $this->checkClientSessionSettings($client);
776  $status["lang"] = $this->checkClientLanguages($client);
777  $status["contact"] = $this->checkClientContact($client);
778  $status["proxy"] = $this->checkClientProxySettings($client);
779  $status["nic"] = $this->checkClientNIC($client);
780  $status["finish"] = $this->checkFinish($client);
781  $status["access"] = $this->checkAccess($client);
782  }
783 
784  //return value
785  return $status;
786  }
checkClientIni(&$client)
check client ini status
checkClientLanguages(ilClient $client)
checkClientDatabase(ilClient $client)
checkClientContact(&$client)
check client contact data status
Create styles array
The data for the language used.
checkFinish(&$client)
check if client setup was finished
checkClientNIC(&$client)
check client nic status
Client Management.
checkClientProxySettings(ilClient $client)
checkAccess(&$client)
check client access status
+ Here is the call graph for this function:

◆ hasOpCacheEnabled()

ilSetup::hasOpCacheEnabled ( )
Returns
bool

Definition at line 2138 of file class.ilSetup.php.

Referenced by queryPreliminaries().

2138  {
2139  $ini_get = ini_get('opcache.enable');
2140 
2141  return ($ini_get === 1 OR $ini_get === '1' OR strtolower($ini_get) === 'on');
2142  }
+ Here is the caller graph for this function:

◆ init()

ilSetup::init ( )

init setup load settings from ilias.ini if exists and sets some constants

Returns
boolean

Definition at line 141 of file class.ilSetup.php.

Referenced by __construct().

142  {
143  // load data from setup.ini file
144  $this->ini = new ilIniFile($this->ini_file_path);
145 
146  if (!$this->ini->read())
147  {
148  $this->ini->GROUPS = parse_ini_file($this->setup_defaults,true);
149  $this->error = get_class($this).": ".$this->ini->getError();
150  return false;
151  }
152 
153  $this->setup_password = $this->ini->readVariable("setup","pass");
154  $this->default_client = $this->ini->readVariable("clients","default");
155 
156  define("ILIAS_DATA_DIR",$this->ini->readVariable("clients","datadir"));
157  define("ILIAS_WEB_DIR",$this->ini->readVariable("clients","path"));
158 
159  return true;
160  }
INIFile Parser.
+ Here is the caller graph for this function:

◆ installDatabase()

ilSetup::installDatabase ( )

set the database data

Returns
boolean
Deprecated:

Definition at line 229 of file class.ilSetup.php.

230  {
231  if (!$this->client->getDBSetup()->isDatabaseConnectable()) {
232  return false;
233  }
234 
235  if ($this->client->getDBSetup()->installDatabase()) {
236  $this->client->db_installed = true;
237 
238  return true;
239  }
240 
241  return false;
242  }

◆ isAdmin()

ilSetup::isAdmin ( )

check if current user is admin

Returns
boolean

Definition at line 1110 of file class.ilSetup.php.

1111  {
1112  return ($this->access_mode == "admin") ? true : false;
1113  }

◆ isAuthenticated()

ilSetup::isAuthenticated ( )

check if current user is authenticated

Returns
boolean

Definition at line 1101 of file class.ilSetup.php.

References $auth.

1102  {
1103  return $this->auth;
1104  }

◆ isDirectoryInOther()

ilSetup::isDirectoryInOther (   $directory,
  $other_directory 
)
protected

Checks if directory is subdirectory of other directory.

Parameters
string$directory
string$other_directory
Returns
bool

Definition at line 2166 of file class.ilSetup.php.

Referenced by checkDataDirSetup(), and checkLogSetup().

2166  {
2167  $other_directory = $other_directory."/";
2168 
2169  return !(strpos($directory, $other_directory) !== 0);
2170  }
+ Here is the caller graph for this function:

◆ isInstalled()

ilSetup::isInstalled ( )

check if client's db is installed

Returns
boolean

Definition at line 1092 of file class.ilSetup.php.

References $ini_ilias_exists.

Referenced by newClient().

1093  {
1094  return $this->ini_ilias_exists;
1095  }
+ Here is the caller graph for this function:

◆ isValidClientId()

ilSetup::isValidClientId (   $a_client_id)

Is valid client id.

Parameters

Definition at line 2150 of file class.ilSetup.php.

2151  {
2152  if (!preg_match("/^[A-Za-z0-9]+$/", $a_client_id))
2153  {
2154  return false;
2155  }
2156  return true;
2157  }

◆ loginAsAdmin()

ilSetup::loginAsAdmin (   $a_password)

process setup admin login

Parameters
stringpassword
Returns
boolean

Definition at line 694 of file class.ilSetup.php.

References $_SESSION.

695  {
696  $a_password = md5($a_password);
697 
698  if ($this->ini->readVariable("setup","pass") == $a_password)
699  {
700  $_SESSION["auth"] = true;
701  $_SESSION["auth_path"] = ILIAS_HTTP_PATH;
702  $_SESSION["access_mode"] = "admin";
703  return true;
704  }
705 
706  return false;
707  }
$_SESSION["AccountId"]

◆ loginAsClient()

ilSetup::loginAsClient (   $a_auth_data)

process client login

Parameters
array
Returns
boolean

Definition at line 592 of file class.ilSetup.php.

References $_SESSION, $data, $ilDB, $r, ilUserPasswordManager\getInstance(), IL_PASSWD_CRYPTED, and newClient().

593  {
594  global $ilDB;
595 
596  if (empty($a_auth_data["client_id"]))
597  {
598  $this->error = "no_client_id";
599  return false;
600  }
601 
602  if (empty($a_auth_data["username"]))
603  {
604  $this->error = "no_username";
605  return false;
606  }
607 
608  if (empty($a_auth_data["password"]))
609  {
610  $this->error = "no_password";
611  return false;
612  }
613 
614  if (!$this->newClient($a_auth_data["client_id"])) //TT: comment out to get around null db
615  {
616  $this->error = "unknown_client_id";
617  unset($this->client);
618  return false;
619  }
620 
621  if (!$this->client->db_exists)
622  {
623  $this->error = "no_db_connect_consult_admin";
624  unset($this->client);
625  return false;
626  }
627 
628  $s1 = $this->client->db->query("SELECT value from settings WHERE keyword = ".
629  $this->client->db->quote('system_role_id','text'));
630  $r1 = $this->client->db->fetchAssoc($s1);
631  $system_role_id = $r1["value"];
632 
633  $add_usrfields = '';
634  if($this->client->db->tableColumnExists('usr_data', 'passwd_enc_type'))
635  {
636  $add_usrfields .= ' , usr_data.passwd_enc_type, usr_data.passwd_salt ';
637  }
638  $q = "SELECT usr_data.usr_id, usr_data.passwd $add_usrfields " .
639  "FROM usr_data " .
640  "LEFT JOIN rbac_ua ON rbac_ua.usr_id=usr_data.usr_id " .
641  "WHERE rbac_ua.rol_id = " . $this->client->db->quote((int)$system_role_id, 'integer') . " " .
642  "AND usr_data.login=" . $this->client->db->quote($a_auth_data["username"], 'text');
643  $r = $this->client->db->query($q);
644  if(!$this->client->db->numRows($r))
645  {
646  $this->error = 'login_invalid';
647  return false;
648  }
649 
650  $data = $this->client->db->fetchAssoc($r);
651 
652  global $ilClientIniFile;
653 
654  $ilClientIniFile = $this->client->ini;
655 
656  require_once 'Services/User/classes/class.ilUserPasswordManager.php';
657  $crypt_type = ilUserPasswordManager::getInstance()->getEncoderName();
658  if(strlen($add_usrfields) && ilUserPasswordManager::getInstance()->isEncodingTypeSupported($crypt_type))
659  {
660  require_once 'setup/classes/class.ilObjSetupUser.php';
661  $user = new ilObjSetupUser();
662  $user->setPasswd($data['passwd'], IL_PASSWD_CRYPTED);
663  $user->setPasswordEncodingType($data['passwd_enc_type']);
664  $user->setPasswordSalt($data['passwd_salt']);
665 
666  $password_valid = ilUserPasswordManager::getInstance()->verifyPassword($user, $a_auth_data['password']);
667  }
668  else
669  {
670  $password_valid = $data['passwd'] == md5($a_auth_data['password']);
671  }
672 
673  if($password_valid)
674  {
675  // all checks passed -> user valid
676  $_SESSION['auth'] = true;
677  $_SESSION['auth_path'] = ILIAS_HTTP_PATH;
678  $_SESSION['access_mode'] = 'client';
679  $_SESSION['ClientId'] = $this->client->getId();
680  return true;
681  }
682  else
683  {
684  $this->error = 'login_invalid';
685  return false;
686  }
687  }
$_SESSION["AccountId"]
const IL_PASSWD_CRYPTED
$r
Definition: example_031.php:79
newClient($a_client_id=0)
creates a client object in $this->client
Class ilObjSetupUser A class derived from ilObjUser for authentication purposes in the ILIAS setup...
global $ilDB
static getInstance()
Single method to reduce footprint (included files, created instances)
+ Here is the call graph for this function:

◆ newClient()

ilSetup::newClient (   $a_client_id = 0)

creates a client object in $this->client

Parameters
stringclient id
Returns
boolean

Definition at line 714 of file class.ilSetup.php.

References $_SESSION, and isInstalled().

Referenced by loginAsClient().

715  {
716  if (!$this->isInstalled())
717  {
718  return false;
719  }
720 
721  $this->client = new ilClient($a_client_id, $this->db_connections);
722 
723  if (!$this->client->init())
724  {
725 //echo "<br>noclientinit";
726  $this->error = get_class($this).": ".$this->client->getError();
727  $_SESSION["ClientId"] = "";
728  return false;
729  }
730 
731  $_SESSION["ClientId"] = $a_client_id;
732 
733  return true;
734  }
$_SESSION["AccountId"]
isInstalled()
check if client&#39;s db is installed
Client Management.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ printProxyStatus()

ilSetup::printProxyStatus (   $client)

Print proxy settings.

private

Definition at line 2059 of file class.ilSetup.php.

References $client, ilUtil\sendFailure(), and ilUtil\sendSuccess().

2060  {
2061  require_once './Services/Http/exceptions/class.ilProxyException.php';
2062  $settings = $client->getAllSettings();
2063 
2064  if((bool)$settings['proxy_status'] == true)
2065  {
2066  try
2067  {
2068  $err_str = false;
2069  $wait_timeout = 100;
2070 
2071  $fp = @fsockopen($settings['proxy_host'], $settings['proxy_port'],$err_code,$err_str,$wait_timeout);
2072 
2073  if($err_str)
2074  {
2075  throw new ilProxyException($err_str);
2076  }
2077 
2078  fclose($fp);
2079 
2080  ilUtil::sendSuccess($this->lng->txt('proxy_connectable'));
2081 
2082  }
2083  catch(Exception $e)
2084  {
2085  ilUtil::sendFailure($this->lng->txt('proxy_not_connectable') . ": " . $e->getMessage());
2086  }
2087  }
2088 
2089  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
Class for proxy related exception handling in ILIAS.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
+ Here is the call graph for this function:

◆ queryPreliminaries()

ilSetup::queryPreliminaries ( )

preliminaries

check if different things are ok for setting up ilias private

Returns
array

Definition at line 520 of file class.ilSetup.php.

References array, checkCookiesEnabled(), checkCreatable(), checkDom(), checkGd(), checkMemoryLimit(), checkOpcacheSettings(), checkPHPVersion(), checkWritable(), checkXsl(), and hasOpCacheEnabled().

Referenced by checkPreliminaries().

521  {
522  $a = array();
523  $a["php"] = $this->checkPHPVersion();
524 // $a["mysql"] = $this->checkMySQL();
525  $a["root"] = $this->checkWritable();
526  $a["folder_create"] = $this->checkCreatable();
527  $a["cookies_enabled"] = $this->checkCookiesEnabled();
528  $a["dom"] = $this->checkDom();
529  $a["xsl"] = $this->checkXsl();
530  $a["gd"] = $this->checkGd();
531  $a["memory"] = $this->checkMemoryLimit();
532 
533  if ($this->hasOpCacheEnabled()) {
534  $a["load_comments"] = $this->checkOpcacheSettings();
535  }
536 
537  return $a;
538  }
checkXsl()
Check MySQL.
checkCreatable($a_dir=".")
check for permission to create new folders in specified directory
checkWritable()
check for writable directory
checkOpcacheSettings()
checkDom()
Check MySQL.
checkMemoryLimit()
Check Memory Limit.
checkCookiesEnabled()
check cookies enabled
Create styles array
The data for the language used.
checkGd()
Check MySQL.
checkPHPVersion()
check for PHP version
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saveMasterSetup()

ilSetup::saveMasterSetup (   $a_formdata)

saves intial settings

Parameters
arrayform data
Returns
boolean

Definition at line 1120 of file class.ilSetup.php.

References $_SESSION, ilFile\deleteTrailingSlash(), ilUtil\makeDir(), and ilUtil\stripSlashes().

1121  {
1122  $datadir_path = preg_replace("/\\\\/","/",ilFile::deleteTrailingSlash(ilUtil::stripSlashes($a_formdata["datadir_path"])));
1123 
1124  if ($a_formdata["chk_datadir_path"] == 1) // mode create dir
1125  {
1126  if (!ilUtil::makeDir($datadir_path))
1127  {
1128  $this->error = "create_datadir_failed";
1129  return false;
1130  }
1131  }
1132 
1133  // create webspace dir if it does not exist
1134  if (!@file_exists(ILIAS_ABSOLUTE_PATH."/".$this->ini->readVariable("clients","path")) and !@is_dir(ILIAS_ABSOLUTE_PATH."/".$this->ini->readVariable("clients","path")))
1135  {
1136  if (!ilUtil::makeDir(ILIAS_ABSOLUTE_PATH."/".$this->ini->readVariable("clients","path")))
1137  {
1138  $this->error = "create_webdir_failed";
1139  return false;
1140  }
1141  }
1142 
1143  $form_log_path = preg_replace("/\\\\/","/",ilFile::deleteTrailingSlash(ilUtil::stripSlashes($a_formdata["log_path"])));
1144  $log_path = substr($form_log_path,0,strrpos($form_log_path,"/"));
1145  $log_file = substr($form_log_path,strlen($log_path)+1);
1146  $error_log_path = preg_replace("/\\\\/","/",ilFile::deleteTrailingSlash(ilUtil::stripSlashes($a_formdata["error_log_path"])));
1147 
1148  $this->ini->setVariable("server","http_path",ILIAS_HTTP_PATH);
1149  $this->ini->setVariable("server","absolute_path",ILIAS_ABSOLUTE_PATH);
1150  $this->ini->setVariable("server","timezone",preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["time_zone"])));
1151  $this->ini->setVariable("clients", "datadir", $datadir_path);
1152  $this->ini->setVariable("tools", "convert", preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["convert_path"])));
1153  $this->ini->setVariable("tools", "zip", preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["zip_path"])));
1154  $this->ini->setVariable("tools", "unzip", preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["unzip_path"])));
1155  $this->ini->setVariable("tools", "ghostscript", preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["ghostscript_path"])));
1156  $this->ini->setVariable("tools", "java", preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["java_path"])));
1157  //$this->ini->setVariable("tools", "mkisofs", preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["mkisofs_path"])));
1158  $this->ini->setVariable("tools", "ffmpeg", preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["ffmpeg_path"])));
1159  $this->ini->setVariable("tools", "latex", ilUtil::stripSlashes($a_formdata["latex_url"]));
1160  $this->ini->setVariable("tools", "vscantype", preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["vscanner_type"])));
1161  $this->ini->setVariable("tools", "scancommand", preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["scan_command"])));
1162  $this->ini->setVariable("tools", "cleancommand", preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["clean_command"])));
1163  $this->ini->setVariable("tools", "enable_system_styles_management", preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["enable_system_styles_management"])));
1164  $this->ini->setVariable("tools", "lessc", preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["lessc_path"])));
1165 
1166  $this->ini->setVariable("setup", "pass", md5($a_formdata["setup_pass"]));
1167  $this->ini->setVariable("log", "path", $log_path);
1168  $this->ini->setVariable("log", "file", $log_file);
1169  $this->ini->setVariable("log", "enabled", ($a_formdata["chk_log_status"]) ? "0" : 1);
1170  $this->ini->setVariable("log", "error_path", $error_log_path);
1171 
1172  $this->ini->setVariable("https","auto_https_detect_enabled", ($a_formdata["auto_https_detect_enabled"]) ? 1 : 0);
1173  $this->ini->setVariable("https","auto_https_detect_header_name", $a_formdata["auto_https_detect_header_name"]);
1174  $this->ini->setVariable("https","auto_https_detect_header_value", $a_formdata["auto_https_detect_header_value"]);
1175 
1176  if (!$this->ini->write())
1177  {
1178  $this->error = get_class($this).": ".$this->ini->getError();
1179  return false;
1180  }
1181 
1182  // everything is fine. so we authenticate the user and set access mode to 'admin'
1183  $_SESSION["auth"] = true;
1184  $_SESSION["auth_path"] = ILIAS_HTTP_PATH;
1185  $_SESSION["access_mode"] = "admin";
1186 
1187  return true;
1188  }
$_SESSION["AccountId"]
deleteTrailingSlash($a_path)
delete trailing slash of path variables
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
+ Here is the call graph for this function:

◆ saveNewClient()

ilSetup::saveNewClient ( )

saves client.ini & updates client list in ilias.ini

Returns
boolean

Definition at line 166 of file class.ilSetup.php.

References $_SESSION.

Referenced by updateNewClient().

167  {
168  // save client id to session
169  $_SESSION["ClientId"] = $this->client->getId();
170 
171  // create client
172  if (!$this->client->create())
173  {
174  $this->error = $this->client->getError();
175  return false;
176  }
177 
178  //everything okay
179  $this->ini_client_exists = true;
180 
181  return true;
182  }
$_SESSION["AccountId"]
+ Here is the caller graph for this function:

◆ saveProxySettings()

ilSetup::saveProxySettings (   $proxy_settings)

Definition at line 2091 of file class.ilSetup.php.

References $query, $res, $row, and array.

2092  {
2093  $db = $this->client->getDB();
2094  $proxy_fields = array('proxy_status','proxy_host','proxy_port');
2095 
2096  foreach($proxy_fields as $field)
2097  {
2098  if( isset($proxy_settings[$field]) )
2099  {
2100  $query = "SELECT keyword FROM settings WHERE module = %s AND keyword = %s";
2101  $res = $db->queryF($query,
2102  array('text', 'text'), array('common', $field));
2103 
2104  $row = array();
2105  while($row = $db->fetchAssoc($res)) break;
2106 
2107  if( count($row) > 0 )
2108  {
2109  $db->update(
2110  'settings',
2111  array(
2112  'value' => array('text', $proxy_settings[$field])
2113  ),
2114  array(
2115  'module' => array('text', 'common'),
2116  'keyword' => array('text', $field)
2117  )
2118  );
2119  }
2120  else
2121  {
2122  $db->insert(
2123  'settings',
2124  array(
2125  'module' => array('text', 'common'),
2126  'keyword' => array('text', $field),
2127  'value' => array('text', $proxy_settings[$field])
2128  )
2129  );
2130  }
2131  }
2132  }
2133  }
Create styles array
The data for the language used.

◆ setClient()

ilSetup::setClient (   $a_cl)
Parameters
$a_cl

Definition at line 124 of file class.ilSetup.php.

124  {
125  $this->client = $a_cl;
126  }

◆ setPassword()

ilSetup::setPassword (   $a_password)

set setup master password

Parameters
stringpassword
Returns
boolean

Definition at line 574 of file class.ilSetup.php.

575  {
576  $this->ini->setVariable("setup","pass",md5($a_password));
577 
578  if ($this->ini->write() == false)
579  {
580  $this->error = $this->ini->getError();
581  return false;
582  }
583 
584  return true;
585  }

◆ setSessionSettings()

ilSetup::setSessionSettings (   $session_settings)

saves session settings to db

Parameters
array$session_settings

Definition at line 1833 of file class.ilSetup.php.

References $query, $res, $row, array, ilDBConstants\FETCHMODE_ASSOC, ilSessionControl\getSettingFields(), and ilUtil\sendInfo().

1834  {
1835  require_once('Services/Authentication/classes/class.ilSessionControl.php');
1836 
1837  $db = $this->client->getDB();
1838 
1839  $setting_fields = ilSessionControl::getSettingFields();
1840 
1841  $i = 0;
1842  foreach($setting_fields as $field)
1843  {
1844  if( isset($session_settings[$field]) )
1845  {
1846  $query = "SELECT keyword FROM settings WHERE module = %s AND keyword = %s";
1847  $res = $db->queryF($query,
1848  array('text', 'text'), array('common', $field));
1849 
1850  $row = array();
1851  while($row = $res->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) break;
1852 
1853  if( count($row) > 0 )
1854  {
1855  $db->update(
1856  'settings',
1857  array(
1858  'value' => array('text', $session_settings[$field])
1859  ),
1860  array(
1861  'module' => array('text', 'common'),
1862  'keyword' => array('text', $field)
1863  )
1864  );
1865  }
1866  else
1867  {
1868  $db->insert(
1869  'settings',
1870  array(
1871  'module' => array('text', 'common'),
1872  'keyword' => array('text', $field),
1873  'value' => array('text', $session_settings[$field])
1874  )
1875  );
1876  }
1877 
1878  $i++;
1879  }
1880  }
1881 
1882  if($i < 4) $message = $this->lng->txt("session_settings_not_saved");
1883  else $message = $this->lng->txt("settings_saved");
1884 
1885  ilUtil::sendInfo($message);
1886  }
static getSettingFields()
returns the array of setting fields
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
Create styles array
The data for the language used.
+ Here is the call graph for this function:

◆ testConvert()

ilSetup::testConvert (   $a_convert_path)

Check convert program.

Parameters
stringconvert path
Returns
boolean true -> OK | false -> not OK

Definition at line 1577 of file class.ilSetup.php.

Referenced by checkToolsSetup().

1578  {
1579  if (trim($a_convert_path) == "")
1580  {
1581  return "no_path_convert";
1582  }
1583  if (!is_file($a_convert_path))
1584  {
1585  return "check_failed_convert";
1586  }
1587 
1588  return "";
1589 
1590  }
+ Here is the caller graph for this function:

◆ testGhostscript()

ilSetup::testGhostscript (   $a_ghostscript_path)

Check ghostscript program.

Parameters
stringghostscript path
Returns
boolean true -> OK | false -> not OK

Definition at line 1598 of file class.ilSetup.php.

Referenced by checkToolsSetup().

1599  {
1600  // ghostscript is optional, so empty path is ok
1601  if (trim($a_ghostscript_path) == "")
1602  {
1603  return "";
1604  }
1605  if (!is_file($a_ghostscript_path))
1606  {
1607  return "check_failed_ghostscript";
1608  }
1609 
1610  return "";
1611  }
+ Here is the caller graph for this function:

◆ testJava()

ilSetup::testJava (   $a_java_path)

Check JVM.

Parameters
stringjava path
Returns
boolean true -> OK | false -> not OK

Definition at line 1619 of file class.ilSetup.php.

Referenced by checkToolsSetup().

1620  {
1621  // java is optional, so empty path is ok
1622  if (trim($a_java_path) == "")
1623  {
1624  return "";
1625  }
1626 
1627  if (!is_file($a_java_path))
1628  {
1629  return "check_failed_java";
1630  }
1631 
1632  return "";
1633 /*
1634  exec($a_java_path, $out, $back);
1635 
1636  unset($out);
1637 
1638  return ($back != 1) ? false : true;
1639 */
1640  }
+ Here is the caller graph for this function:

◆ testLatex()

ilSetup::testLatex (   $a_latex_url)

Check latex cgi script.

Parameters
stringlatex cgi url
Returns
boolean true -> OK | false -> not OK

Definition at line 1648 of file class.ilSetup.php.

References $http, $result, and ilUtil\stripSlashes().

Referenced by checkToolsSetup().

1649  {
1650  // latex is optional, so empty path is ok
1651  if (trim($a_latex_url) == "")
1652  {
1653  return "";
1654  }
1655 
1656  // open the URL
1657  include_once "./setup/classes/class.ilHttpRequest.php";
1658  $http = new ilHttpRequest(ilUtil::stripSlashes($a_latex_url) . "?x_0");
1659  $result = @$http->downloadToString();
1660  if ((strpos((substr($result, 0, 5)), "PNG") !== FALSE) || (strpos((substr($result, 0, 5)), "GIF") !== FALSE))
1661  {
1662  return "";
1663  }
1664  else
1665  {
1666  return "check_failed_latex";;
1667  }
1668  }
$result
ilHttpRequest class
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
$http
Definition: raiseError.php:7
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ testUnzip()

ilSetup::testUnzip (   $a_unzip_path)

Check unzip program.

Parameters
stringunzip_path
Returns
boolean true -> OK | false -> not OK

Definition at line 1729 of file class.ilSetup.php.

Referenced by checkToolsSetup().

1730  {
1731  if (trim($a_unzip_path) == "")
1732  {
1733  return "no_path_unzip";
1734  }
1735  if (!is_file($a_unzip_path))
1736  {
1737  return "check_failed_unzip";
1738  }
1739 
1740  return "";
1741 /*
1742  $curDir = getcwd();
1743 
1744  chdir(ILIAS_ABSOLUTE_PATH);
1745 
1746  if (file_exists(ILIAS_ABSOLUTE_PATH."/unzip_test_file.zip"))
1747  {
1748  $unzipCmd = $a_unzip_path." unzip_test_file.zip";
1749  exec($unzipCmd);
1750  }
1751 
1752  chdir($curDir);
1753 
1754  // check wether unzip extracted the test file or not
1755  if (file_exists(ILIAS_ABSOLUTE_PATH."/unzip_test_file.txt"))
1756  {
1757  unlink(ILIAS_ABSOLUTE_PATH."/unzip_test_file.txt");
1758 
1759  return true;
1760  }
1761  else
1762  {
1763  return false;
1764  }
1765 */
1766  }
+ Here is the caller graph for this function:

◆ testZip()

ilSetup::testZip (   $a_zip_path)

Check zip program.

Parameters
stringzip path
Returns
boolean true -> OK | false -> not OK

Definition at line 1676 of file class.ilSetup.php.

Referenced by checkToolsSetup().

1677  {
1678  if (trim($a_zip_path) == "")
1679  {
1680  return "no_path_zip";
1681  }
1682  if (!is_file($a_zip_path))
1683  {
1684  return "check_failed_zip";
1685  }
1686 
1687  return "";
1688 /*
1689  // create test file and run zip
1690  $fp = fopen(ILIAS_ABSOLUTE_PATH."/test.dat", "w");
1691 
1692  fwrite($fp, "test");
1693  fclose($fp);
1694 
1695  if (file_exists(ILIAS_ABSOLUTE_PATH."/test.dat"))
1696  {
1697  $curDir = getcwd();
1698  chdir(ILIAS_ABSOLUTE_PATH);
1699 
1700  $zipCmd = $a_zip_path." -m zip_test_file.zip test.dat";
1701 
1702  exec($zipCmd);
1703 
1704  chdir($curDir);
1705 
1706  }
1707 
1708  // check wether zip generated test file or not
1709  if (file_exists(ILIAS_ABSOLUTE_PATH."/zip_test_file.zip"))
1710  {
1711  unlink(ILIAS_ABSOLUTE_PATH."/zip_test_file.zip");
1712  return true;
1713  }
1714  else
1715  {
1716  unlink(ILIAS_ABSOLUTE_PATH."/test.dat");
1717  return false;
1718  }
1719 */
1720  }
+ Here is the caller graph for this function:

◆ unzip()

ilSetup::unzip (   $a_file,
  $overwrite = false 
)

unzip file

Parameters
string$a_filefull path/filename
boolean$overwritepass true to overwrite existing files

Definition at line 1774 of file class.ilSetup.php.

References $file, array, ilUtil\createDirectory(), and ilUtil\escapeShellArg().

1775  {
1776  //global $ilias;
1777 
1778  $pathinfo = pathinfo($a_file);
1779  $dir = $pathinfo["dirname"];
1780  $file = $pathinfo["basename"];
1781 
1782  // unzip
1783  $cdir = getcwd();
1784  chdir($dir);
1785  $unzip = $this->ini->readVariable("tools","unzip");
1786  $unzipcmd = $unzip." -Z -1 ".ilUtil::escapeShellArg($file);
1787  exec($unzipcmd, $arr);
1788  $zdirs = array();
1789 
1790  foreach($arr as $line)
1791  {
1792  if(is_int(strpos($line, "/")))
1793  {
1794  $zdir = substr($line, 0, strrpos($line, "/"));
1795  $nr = substr_count($zdir, "/");
1796  //echo $zdir." ".$nr."<br>";
1797  while ($zdir != "")
1798  {
1799  $nr = substr_count($zdir, "/");
1800  $zdirs[$zdir] = $nr; // collect directories
1801  //echo $dir." ".$nr."<br>";
1802  $zdir = substr($zdir, 0, strrpos($zdir, "/"));
1803  }
1804  }
1805  }
1806 
1807  asort($zdirs);
1808 
1809  foreach($zdirs as $zdir => $nr) // create directories
1810  {
1811  ilUtil::createDirectory($zdir);
1812  }
1813 
1814  // real unzip
1815  if ($overvwrite)
1816  {
1817  $unzipcmd = $unzip." ".ilUtil::escapeShellArg($file);
1818  }
1819  else
1820  {
1821  $unzipcmd = $unzip." -o ".ilUtil::escapeShellArg($file);
1822  }
1823  exec($unzipcmd);
1824 
1825  chdir($cdir);
1826  }
static createDirectory($a_dir, $a_mod=0755)
create directory
Create styles array
The data for the language used.
static escapeShellArg($a_arg)
if(!file_exists("$old.txt")) if($old===$new) if(file_exists("$new.txt")) $file
+ Here is the call graph for this function:

◆ updateMasterSettings()

ilSetup::updateMasterSettings (   $a_formdata)

updates settings

Parameters
arrayform data
Returns
boolean

Definition at line 1195 of file class.ilSetup.php.

References ilFile\deleteTrailingSlash(), and ilUtil\stripSlashes().

1196  {
1197  $convert_path = preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["convert_path"]));
1198  $zip_path = preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["zip_path"]));
1199  $unzip_path = preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["unzip_path"]));
1200  $ghostscript_path = preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["ghostscript_path"]));
1201  $java_path = preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["java_path"]));
1202  //$mkisofs_path = preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["mkisofs_path"]));
1203  $ffmpeg_path = preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["ffmpeg_path"]));
1204  $latex_url = ilUtil::stripSlashes($a_formdata["latex_url"]);
1205  $fop_path = preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["fop_path"]));
1206  $scan_type = preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["vscanner_type"]));
1207  $scan_command = preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["scan_command"]));
1208  $clean_command = preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["clean_command"]));
1209  $enable_system_styles_management = preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["enable_system_styles_management"]));
1210  $lessc_path = preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["lessc_path"]));
1211 
1212  $this->ini->setVariable("tools", "convert", $convert_path);
1213  $this->ini->setVariable("tools", "zip", $zip_path);
1214  $this->ini->setVariable("tools", "unzip", $unzip_path);
1215  $this->ini->setVariable("tools", "ghostscript", $ghostscript_path);
1216  $this->ini->setVariable("tools", "java", $java_path);
1217  //$this->ini->setVariable("tools", "mkisofs", $mkisofs_path);
1218  $this->ini->setVariable("tools", "ffmpeg", $ffmpeg_path);
1219  $this->ini->setVariable("tools", "latex", $latex_url);
1220  $this->ini->setVariable("tools", "fop", $fop_path);
1221  $this->ini->setVariable("tools", "vscantype", $scan_type);
1222  $this->ini->setVariable("tools", "scancommand", $scan_command);
1223  $this->ini->setVariable("tools", "cleancommand", $clean_command);
1224  $this->ini->setVariable("tools", "lessc", $lessc_path);
1225  $this->ini->setVariable("tools", "enable_system_styles_management", $enable_system_styles_management);
1226 
1227  $form_log_path = preg_replace("/\\\\/","/",ilFile::deleteTrailingSlash(ilUtil::stripSlashes($a_formdata["log_path"])));
1228  $log_path = substr($form_log_path,0,strrpos($form_log_path,"/"));
1229  $log_file = substr($form_log_path,strlen($log_path)+1);
1230 
1231  $error_log_path = preg_replace("/\\\\/","/",ilFile::deleteTrailingSlash(ilUtil::stripSlashes($a_formdata["error_log_path"])));
1232 
1233  $this->ini->setVariable("log", "path", $log_path);
1234  $this->ini->setVariable("log", "file", $log_file);
1235  $this->ini->setVariable("log", "enabled", ($a_formdata["chk_log_status"]) ? "0" : 1);
1236  $this->ini->setVariable("log", "error_path", $error_log_path);
1237  $this->ini->setVariable("server","timezone",preg_replace("/\\\\/","/",ilUtil::stripSlashes($a_formdata["time_zone"])));
1238 
1239  $this->ini->setVariable("https","auto_https_detect_enabled",($a_formdata["auto_https_detect_enabled"]) ? 1 : 0);
1240  $this->ini->setVariable("https","auto_https_detect_header_name", $a_formdata["auto_https_detect_header_name"]);
1241  $this->ini->setVariable("https","auto_https_detect_header_value", $a_formdata["auto_https_detect_header_value"]);
1242 
1243  if (!$this->ini->write())
1244  {
1245  $this->error = get_class($this).": ".$this->ini->getError();
1246  return false;
1247  }
1248 
1249  return true;
1250  }
deleteTrailingSlash($a_path)
delete trailing slash of path variables
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
+ Here is the call graph for this function:

◆ updateNewClient()

ilSetup::updateNewClient (   $a_old_client_id)

update client.ini & move data dirs does not work correctly at this time - DISABLED

Returns
boolean

Definition at line 189 of file class.ilSetup.php.

References ilUtil\delDir(), and saveNewClient().

190  {
191  return true;
192  //var_dump("<pre>",$this->client,"</pre>");exit;
193  //Error Handling disabled!! caused by missing PEAR
194  if ($a_old_client_id != $this->client->getId())
195  {
196  $this->saveNewClient();
197 
198  ilUtil::delDir(ILIAS_ABSOLUTE_PATH."/".ILIAS_WEB_DIR."/".$a_old_client_id);
199  ilUtil::delDir(ILIAS_DATA_DIR."/".$a_old_client_id);
200  }
201 
202  //everything okay
203  $this->ini_client_exists = true;
204 
205  return true;
206  }
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
saveNewClient()
saves client.ini & updates client list in ilias.ini
+ Here is the call graph for this function:

Field Documentation

◆ $access_mode

ilSetup::$access_mode

Definition at line 58 of file class.ilSetup.php.

◆ $auth

ilSetup::$auth

Definition at line 57 of file class.ilSetup.php.

Referenced by isAuthenticated().

◆ $client

◆ $db

ilSetup::$db

Definition at line 49 of file class.ilSetup.php.

◆ $default_client

ilSetup::$default_client

Definition at line 52 of file class.ilSetup.php.

◆ $dsn

ilSetup::$dsn = ""

Definition at line 42 of file class.ilSetup.php.

◆ $error

ilSetup::$error = ""

Definition at line 19 of file class.ilSetup.php.

Referenced by getError().

◆ $ilias_nic_server

ilSetup::$ilias_nic_server = "https://nic.ilias.de/index.php"

Definition at line 25 of file class.ilSetup.php.

◆ $ini

ilSetup::$ini

Definition at line 17 of file class.ilSetup.php.

◆ $ini_client_exists

ilSetup::$ini_client_exists = false

Definition at line 22 of file class.ilSetup.php.

◆ $ini_file_path

ilSetup::$ini_file_path

Definition at line 18 of file class.ilSetup.php.

◆ $ini_ilias_exists

ilSetup::$ini_ilias_exists = false

Definition at line 21 of file class.ilSetup.php.

Referenced by isInstalled().

◆ $preliminaries

ilSetup::$preliminaries = true

Definition at line 28 of file class.ilSetup.php.

◆ $preliminaries_result

ilSetup::$preliminaries_result = array()

Definition at line 27 of file class.ilSetup.php.

◆ $safe_mode

ilSetup::$safe_mode

Definition at line 54 of file class.ilSetup.php.

◆ $safe_mode_exec_dir

ilSetup::$safe_mode_exec_dir

Definition at line 55 of file class.ilSetup.php.

◆ $setup_defaults

ilSetup::$setup_defaults

Definition at line 24 of file class.ilSetup.php.

◆ $setup_password

ilSetup::$setup_password

Definition at line 51 of file class.ilSetup.php.

◆ $SQL_FILE

ilSetup::$SQL_FILE = "./setup/sql/ilias3.sql"

Definition at line 35 of file class.ilSetup.php.


The documentation for this class was generated from the following file: