代码拉取完成,页面将自动刷新
同步操作将从 IBOS开源OA协同办公管理/IBOS 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
<?php
/**
* 翻译语言
* @param string $langKey
* @param boolean $force
* @return string
*/
function lang($langKey, $force = true)
{
return isset($GLOBALS['lang'][$langKey]) ? $GLOBALS['lang'][$langKey] : ($force ? $langKey : '');
}
/**
* 环境检测
* @param array $envItems 要检测的环境数组
* @return array 返回检测后处理过的数组
*/
function envCheck($envItems)
{
$envCheckRes = 1;
foreach ($envItems as $key => $item) {
if ($key == 'php') {
$envItems[$key]['current'] = PHP_VERSION;
} elseif ($key == 'attachmentupload') {
$envItems[$key]['current'] = @ini_get('file_uploads') ? ini_get('upload_max_filesize') : 'unknow';
} elseif ($key == 'gdversion') {
$tmp = function_exists('gd_info') ? gd_info() : array();
$envItems[$key]['current'] = empty($tmp['GD Version']) ? 'no' : $tmp['GD Version'];
unset($tmp);
} elseif ($key == 'diskspace') {
if (function_exists('disk_free_space')) {
$envItems[$key]['current'] = floor(disk_free_space(PATH_ROOT) / (1024 * 1024)) . 'M';
} else {
$envItems[$key]['current'] = 'unknow';
}
} elseif ($key == 'Zend Guard Loader') {
if (zendCheck($item)) {
$envItems[$key]['current'] = 'installed';
} else {
$envItems[$key]['current'] = 'uninstalled';
}
} elseif (isset($item['c'])) {
$envItems[$key]['current'] = constant($item['c']);
}
$envItems[$key]['status'] = 1;
$funCheckName = $key . 'Check';
if ($item['r'] != 'notset' && function_exists($funCheckName)) {
if (!$funCheckName($envItems[$key])) {
$envItems[$key]['status'] = 0;
$envCheckRes = 0;
}
}
//如果不是开源版,并且没有安装zend Guard Loader,则不给予通过
if ($key == 'Zend Guard Loader' && !in_array(substr(VERSION, -1), array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')) && $envItems[$key]['current'] != 'installed') {
$envItems[$key]['status'] = 0;
$envCheckRes = 0;
}
}
return array('envItems' => $envItems, 'envCheckRes' => $envCheckRes);
}
/**
* php版本检测
* @param array $item php版本信息,在installVal文件定义
* @return boolean
*/
function phpCheck($evnItem)
{
if (version_compare(PHP_VERSION, $evnItem['r']) < 0) {
return false;
} else {
return true;
}
}
/**
* 数据库引擎检测
* @param $object object 数据连接对象
*/
function mysqlEngineCheck($object){
$sql = 'SHOW ENGINES';
$info = $object->query($sql);
$bool = true;
foreach ($info as $item){
if(($item['Engine'] == 'InnoDB' AND $item['Support'] == 'YES') || ($item['Engine'] == 'InnoDB' AND $item['Support'] == 'DEFAULT')){
$bool = false;
}
}
if($bool){
return ajaxReturn(array(
'isSuccess' => false,
'msg' => '数据库需要支持 InnoDB 引擎',
'data' => array('type' => 'engine'),
));
}
}
/**
* 上传配置检测
* @param array $evnItem 上传配置信息,在installVal文件定义
* @return boolean
*/
function attachmentuploadCheck($evnItem)
{
if (intval($evnItem['current']) < intval($evnItem['r'])) {
return false;
} else {
return true;
}
}
/**
* GD库版本检测
* @param array $evnItem gd版本信息,在installVal文件定义
* @return boolean
*/
function gdversionCheck($evnItem)
{
if ($evnItem['current'] == 'no' || strcmp($evnItem['current'], $evnItem['r']) < 0) {
return false;
} else {
return true;
}
}
/**
* 文件夹剩余空间检测
* @param array $evnItem 文件夹空间信息,在installVal文件定义
* @return boolean
*/
function diskspaceCheck($evnItem)
{
//var_dump($envItem);die;
if ($evnItem['current'] == 'unknow') {
return true; //阿里上根本测不出来大小,所以直接就返回true
}
if ( /* $evnItem['current'] == 'unknow' || */
intval($evnItem['current']) < intval($evnItem['r'])
) {
return false;
} else {
return true;
}
}
/**
* 检测zend环境和版本
*/
function zendCheck($zendItem)
{
if (extension_loaded('Zend Guard Loader') || get_cfg_var("zend_extension") || get_cfg_var("zend_extension_ts")) {
return true;
} else {
return false;
}
}
/**
* 检测函数依懒性
* @param array $funcItems 要检测的函数
*/
function funcCheck($funcItems)
{
global $lang;
$funcCheckRes = 1;
foreach ($funcItems as $item => $value) {
if (!function_exists($item)) {
$funcItems[$item]['status'] = 0;
$funcCheckRes = 0;
$funcItems[$item]['advice'] = $lang['Advice_' . $item];
} else {
$funcItems[$item]['advice'] = $lang['None'];
}
}
return array('funcItems' => $funcItems, 'funcCheckRes' => $funcCheckRes);
}
function filesorkCheck($filesockItems)
{
global $lang;
$filesockDisabled = 0;
$filesorkCheckRes = 1;
foreach ($filesockItems as $item => $value) {
if (!function_exists($item)) {
$filesockItems[$item]['status'] = 0;
$filesockItems[$item]['advice'] = $lang['Advice_' . $item];
$filesockDisabled++;
} else {
$filesockItems[$item]['advice'] = $lang['None'];
}
}
if ($filesockDisabled == count($filesockItems)) {
$filesorkCheckRes = 0;
}
if (!function_exists("curl_init")) {
$filesorkCheckRes = 0;
}
return array('filesockItems' => $filesockItems, 'filesorkCheckRes' => $filesorkCheckRes);
}
/**
* 函数扩展检测
* @param array $extLoadedItems 要检测的拓展函数
* @return array
*/
function extLoadedCheck($extLoadedItems)
{
global $lang;
$extLoadedCheckRes = 1;
foreach ($extLoadedItems as $item => $value) {
if (!extension_loaded($item)) {
$extLoadedItems[$item]['status'] = 0;
$extLoadedItems[$item]['advice'] = $lang['Advice_' . $item];
$extLoadedCheckRes = 0;
} else {
$extLoadedItems[$item]['advice'] = $lang['None'];
}
}
return array('extLoadedItems' => $extLoadedItems, 'extLoadedCheckRes' => $extLoadedCheckRes);
}
/**
* 目录、文件权限检查
* @param type $dirfileItems
*/
function dirfileCheck($dirfileItems)
{
global $lang;
$dirfileCheckRes = 1;
foreach ($dirfileItems as $key => $item) {
$dirfileItems[$key]['msg'] = $lang['Writeable'];
$item_path = $item['path'];
if ($item['type'] == 'dir') {
if (!dirWriteable(PATH_ROOT . $item_path)) {
if (is_dir(PATH_ROOT . $item_path)) {
$dirfileItems[$key]['msg'] = $lang['Unwriteable'];
$dirfileItems[$key]['status'] = 0;
$dirfileItems[$key]['current'] = '+r';
$dirfileCheckRes = 0;
} else {
$dirfileItems[$key]['msg'] = $lang['Nodir'];
$dirfileItems[$key]['status'] = -1;
$dirfileItems[$key]['current'] = 'nodir';
$dirfileCheckRes = 0;
}
} else {
$dirfileItems[$key]['status'] = 1;
$dirfileItems[$key]['current'] = '+r+w';
}
} else {
if (file_exists(PATH_ROOT . $item_path)) {
if (is_writable(PATH_ROOT . $item_path)) {
$dirfileItems[$key]['status'] = 1;
$dirfileItems[$key]['current'] = '+r+w';
} else {
$dirfileItems[$key]['msg'] = $lang['Unwriteable'];
$dirfileItems[$key]['status'] = 0;
$dirfileItems[$key]['current'] = '+r';
$dirfileCheckRes = 0;
}
} else {
if (dirWriteable(dirname(PATH_ROOT . $item_path))) {
$dirfileItems[$key]['status'] = 1;
$dirfileItems[$key]['current'] = '+r+w';
} else {
$dirfileItems[$key]['msg'] = $lang['Unwriteable'];
$dirfileItems[$key]['status'] = -1;
$dirfileItems[$key]['current'] = 'nofile';
$dirfileCheckRes = 0;
}
}
}
}
return array('dirfileItems' => $dirfileItems, 'dirfileCheckRes' => $dirfileCheckRes);
}
/**
* 判断文件或目录是否可写
* @param string $dir 文件或目录路径
* @return boolean
*/
function dirWriteable($dir)
{
$writeable = 0;
if (!is_dir($dir)) {
@mkdir($dir, 0777);
}
if (is_dir($dir)) {
if ($fp = @fopen("$dir/test.txt", 'w')) {
@fclose($fp);
$writeable = @unlink("$dir/test.txt");
} else {
$writeable = 0;
}
}
return $writeable;
}
/**
* 获取主机路径,兼容多层目录
*/
function getHostInfo()
{
$phpself = getScriptUrl();
$installPath = substr($phpself, 0, strrpos($phpself, '/'));
$sitePath = str_replace('/install', '', $installPath);
$isHTTPS = (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
if ($secure = getIsSecureConnection()) {
$http = 'https';
} else {
$http = 'http';
}
if (isset($_SERVER['HTTP_HOST'])) {
$hostInfo = $http . '://' . $_SERVER['HTTP_HOST'];
} else {
$hostInfo = $http . '://' . $_SERVER['SERVER_NAME'];
$port = $secure ? getSecurePort() : getPort();
if (($port !== 80 && !$secure) || ($port !== 443 && $secure)) {
$hostInfo .= ':' . $port;
}
}
$siteurl = $hostInfo . $sitePath;
return $siteurl;
}
function getIsSecureConnection()
{
return isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) || isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https';
}
function getPort()
{
return !getIsSecureConnection() && isset($_SERVER['SERVER_PORT']) ? (int)$_SERVER['SERVER_PORT'] : 80;
}
function getSecurePort()
{
return getIsSecureConnection() && isset($_SERVER['SERVER_PORT']) ? (int)$_SERVER['SERVER_PORT'] : 443;
}
/**
* 获取文本执行路径
* @return string
* @throws CException
*/
function getScriptUrl()
{
global $lang;
$phpSelf = '';
$scriptName = basename($_SERVER['SCRIPT_FILENAME']);
if (basename($_SERVER['SCRIPT_NAME']) === $scriptName) {
$phpSelf = $_SERVER['SCRIPT_NAME'];
} else if (basename($_SERVER['PHP_SELF']) === $scriptName) {
$phpSelf = $_SERVER['PHP_SELF'];
} else if (isset($_SERVER['ORIG_SCRIPT_NAME']) && basename($_SERVER['ORIG_SCRIPT_NAME']) === $scriptName) {
$phpSelf = $_SERVER['ORIG_SCRIPT_NAME'];
} else if (($pos = strpos($_SERVER['PHP_SELF'], '/' . $scriptName)) !== false) {
$phpSelf = substr($_SERVER['SCRIPT_NAME'], 0, $pos) . '/' . $scriptName;
} else if (isset($_SERVER['DOCUMENT_ROOT']) && strpos($_SERVER['SCRIPT_FILENAME'], $_SERVER['DOCUMENT_ROOT']) === 0) {
$phpSelf = str_replace('\\', '/', str_replace($_SERVER['DOCUMENT_ROOT'], '', $_SERVER['SCRIPT_FILENAME']));
$phpSelf[0] != '/' && $phpSelf = '/' . $phpSelf;
} else {
throw new CException($lang['Request tainting']);
}
return $phpSelf;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。