153 lines
4.8 KiB
PHP
153 lines
4.8 KiB
PHP
<?php
|
|
require_once ("classes/model/Configuration.php");
|
|
|
|
|
|
class EnterpriseUtils
|
|
{
|
|
public static function getInternetConnection()
|
|
{
|
|
$data = array();
|
|
|
|
$criteria = new Criteria("workflow");
|
|
|
|
$criteria->addSelectColumn(ConfigurationPeer::CFG_VALUE);
|
|
$criteria->add(ConfigurationPeer::CFG_UID, "EE");
|
|
$criteria->add(ConfigurationPeer::OBJ_UID, "enterpriseConfiguration");
|
|
$rsCriteria = ConfigurationPeer::doSelectRS($criteria);
|
|
|
|
if ($rsCriteria->next()) {
|
|
$row = $rsCriteria->getRow();
|
|
|
|
$data = unserialize($row[0]);
|
|
}
|
|
|
|
return ((isset($data["internetConnection"]))? intval($data["internetConnection"]) : 1);
|
|
}
|
|
|
|
public static function checkConnectivity($url)
|
|
{
|
|
try {
|
|
if (extension_loaded('curl')) {
|
|
$ch = curl_init();
|
|
curl_setopt($ch, CURLOPT_URL, $url);
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
curl_setopt($ch, CURLOPT_HEADER, true);
|
|
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
|
|
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
|
|
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
|
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
|
|
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
|
|
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
|
|
curl_setopt($ch, CURLOPT_VERBOSE, true);
|
|
|
|
//Apply proxy settings
|
|
$sysConf = PmSystem::getSystemConfiguration();
|
|
if (isset($sysConf['proxy_host'])) {
|
|
if ($sysConf['proxy_host'] != '') {
|
|
curl_setopt($ch, CURLOPT_PROXY, $sysConf['proxy_host'] . ($sysConf['proxy_port'] != '' ? ':' . $sysConf['proxy_port'] : ''));
|
|
if ($sysConf['proxy_port'] != '') {
|
|
curl_setopt($ch, CURLOPT_PROXYPORT, $sysConf['proxy_port']);
|
|
}
|
|
if ($sysConf['proxy_user'] != '') {
|
|
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $sysConf['proxy_user'] . ($sysConf['proxy_pass'] != '' ? ':' . $sysConf['proxy_pass'] : ''));
|
|
}
|
|
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
|
|
}
|
|
}
|
|
|
|
$content = curl_exec($ch);
|
|
$headers = curl_getinfo($ch);
|
|
$content = substr($content, $headers['header_size']);
|
|
|
|
if ($headers['http_code'] === 200) {
|
|
return $content;
|
|
}
|
|
} else {
|
|
throw (new Exception('The "CURL" extension not loaded.'));
|
|
}
|
|
} catch (Exception $e) {
|
|
//Log the error
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public static function checkFolderPermissions($folderPath, $result)
|
|
{
|
|
$directorio = opendir($folderPath);
|
|
|
|
if (is_writable ($folderPath)) {
|
|
while (false !== ($archivo = readdir($directorio)) && $result == true) {
|
|
if ($archivo != '.') {
|
|
if ($archivo != '..') {
|
|
if (is_dir("$folderPath/$archivo")) {
|
|
$result = self::checkFolderPermissions($folderPath."/".$archivo, $result);
|
|
} else {
|
|
if (!is_writable ($folderPath."/".$archivo)) {
|
|
$result = false;
|
|
|
|
return $result;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
$result = false;
|
|
|
|
return $result;
|
|
}
|
|
|
|
closedir($directorio);
|
|
|
|
return $result;
|
|
}
|
|
|
|
public static function pmVersion($version)
|
|
{
|
|
if (preg_match("/^([\d\.]+).*$/", $version, $matches)) {
|
|
$version = $matches[1];
|
|
}
|
|
|
|
return $version;
|
|
}
|
|
|
|
public static function getUrlServerName()
|
|
{
|
|
$s = (G::is_https() ? "s" : null);
|
|
$p = strtolower($_SERVER["SERVER_PROTOCOL"]);
|
|
|
|
$protocol = substr($p, 0, strpos($p, "/")) . $s;
|
|
$port = ($_SERVER["SERVER_PORT"] == "80")? null : ":" . $_SERVER["SERVER_PORT"];
|
|
|
|
return ($protocol . "://" . $_SERVER["SERVER_NAME"] . $port);
|
|
}
|
|
|
|
public static function getUrl()
|
|
{
|
|
return (self::getUrlServerName() . $_SERVER["REQUEST_URI"]);
|
|
}
|
|
|
|
public static function getUrlPartSetup()
|
|
{
|
|
$setup = "setup/main";
|
|
|
|
if (substr(SYS_SKIN, 0, 2) == "ux" && SYS_SKIN != "uxs") {
|
|
$setup = "setup/main_init";
|
|
}
|
|
|
|
return $setup;
|
|
}
|
|
|
|
public static function skinIsUx()
|
|
{
|
|
$sw = 0;
|
|
|
|
if (substr(SYS_SKIN, 0, 2) == "ux" && SYS_SKIN != "uxs") {
|
|
$sw = 1;
|
|
}
|
|
|
|
return $sw;
|
|
}
|
|
}
|