* @copyright Copyright (C) 2002-2005 Markus Westphal, * 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli, * 2010-2012 Uwe Steinmann * @version Release: @package_version@ */ /** * Include parent class */ //require_once("class.Bootstrap.php"); /** * Class which outputs the html page for Info view * * @category DMS * @package SeedDMS * @author Markus Westphal, Malcolm Cowe, Uwe Steinmann * @copyright Copyright (C) 2002-2005 Markus Westphal, * 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli, * 2010-2012 Uwe Steinmann * @version Release: @package_version@ */ class SeedDMS_View_Info extends SeedDMS_Theme_Style { function show() { /* {{{ */ $dms = $this->params['dms']; $user = $this->params['user']; $settings = $this->params['settings']; $httproot = $settings->_httpRoot; $version = $this->params['version']; $availversions = $this->params['availversions']; $extmgr = $this->params['extmgr']; $this->htmlStartPage(getMLText("admin_tools")); $this->globalNavigation(); $this->contentStart(); $this->pageNavigation(getMLText("admin_tools"), "admin_tools"); if($availversions) { $newversion = ''; foreach($availversions as $availversion) { if($availversion[0] == 'stable') $newversion = $availversion[1]; } if($newversion > $version->version()) { $this->warningMsg(getMLText('no_current_version', array('latestversion'=>$newversion))); } } else { $this->warningMsg(getMLText('no_version_check')); } $this->rowStart(); $this->columnStart(6); $this->contentHeading(getMLText("seeddms_info")); $seedextensions = $extmgr->getExtensionConfiguration(); echo "\n"; echo "\n\n"; echo ""; echo "\n"; echo "\n\n\n"; $dbversion = $dms->getDBVersion(); echo "\n"; if($user->isAdmin()) { echo "\n"; foreach($seedextensions as $extname=>$extconf) { echo ""; echo ""; echo ""; echo "\n"; } } echo "\n
".getMLText("name"); echo "
".getMLText('seeddms_version')."".$version->version()."
".getMLText('database_schema_version')."".$dbversion['major'].".".$dbversion['minor'].".".$dbversion['subminor']."
"; if(!$settings->extensionIsDisabled($extname)) echo " "; else echo " "; echo ""; if($extconf['icon']) echo "\"".$extname."\""; echo "".$extname."
".$extconf['title']."
".$extconf['version']."
\n"; $this->columnEnd(); $this->columnStart(6); if($user->isAdmin()) { $this->contentHeading(getMLText("php_info")); echo "\n"; echo "\n\n"; echo "\n"; echo "\n\n\n"; echo "\n"; echo "\n"; echo "\n
".getMLText("name"); echo "
PHP".phpversion()."
Path to php.ini".php_ini_loaded_file()."
\n"; $this->contentHeading(getMLText("installed_php_extensions")); $phpextensions = get_loaded_extensions(false); echo implode(', ', $phpextensions); $this->contentHeading(getMLText("missing_php_extensions")); $requiredext = array('zip', 'xml', 'xsl', 'json', 'intl', 'fileinfo', 'mbstring', 'curl', 'sqlite3', 'imagick', 'openssl'); $missingext = array_diff($requiredext, $phpextensions); if($missingext) { foreach($missingext as $mext) echo $this->errorMsg(getMLText('missing_php_extension', ['extname'=>$mext])); } else { echo $this->successMsg(getMLText('check_passed')); } $this->contentHeading(getMLText("missing_php_functions_and_classes")); $missingfunc = []; foreach(array('proc_open', 'openssl_cipher_iv_length') as $funcname) { if(!function_exists($funcname)) { $missingfunc[] = $funcname; //getMLText('func_'.$funcname."_missing") } } $missingclass = []; foreach(array('finfo') as $classname) { if(!class_exists($classname)) { $missingclass[] = $classname; //getMLText('func_'.$classname."_missing") } } if($missingclass || $missingfunc) { foreach($missingclass as $mclass) echo $this->errorMsg(getMLText('missing_php_class', ['classname'=>$mclass])); foreach($missingfunc as $mfunc) echo $this->errorMsg(getMLText('missing_php_function', ['funcname'=>$mfunc])); } else { echo $this->successMsg(getMLText('check_passed')); } if(function_exists('apache_get_modules')) { $this->contentHeading(getMLText("installed_apache_extensions")); $apacheextensions = apache_get_modules(); echo implode(', ', $apacheextensions); } $this->contentHeading(getMLText("check_secure_installation")); if(file_exists($_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR.'conf') || file_exists($_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR.'data')) { echo $this->errorMsg(getMLText('insecure_installation')); } else { echo $this->successMsg(getMLText('check_passed')); } function check_result($name, $res) { echo "".getMLText($name)."".getMLText($res ? 'check_passed' : 'check_failed')."\n"; } $this->contentHeading(getMLText("check_directory_layout")); echo "\n"; echo "\n\n"; echo "\n"; echo "\n"; echo "\n\n\n"; check_result('directory_check_ext_exists', is_dir($settings->_rootDir."/ext")); check_result('directory_check_ext_below_docroot', is_dir($_SERVER['DOCUMENT_ROOT']."/ext")); check_result('directory_check_ext_writable', is_writable($settings->_rootDir."/ext")); check_result('directory_check_data_exists', is_dir($settings->_contentDir)); check_result('directory_check_data_writable', is_writable($settings->_contentDir)); check_result('directory_check_cache_exists', is_dir($settings->_cacheDir)); check_result('directory_check_cache_writable', is_writable($settings->_cacheDir)); check_result('directory_check_index_exists', is_dir($settings->_luceneDir)); check_result('directory_check_index_writable', is_writable($settings->_luceneDir)); check_result('directory_check_conf_writable', is_writable($settings->_configFilePath)); $res = !str_starts_with($settings->_contentDir, $settings->_rootDir); check_result('directory_check_data_below_root', $res); echo "\n
".getMLText("directory_check")."".getMLText("directory_check_result")."
\n"; } $this->columnEnd(); $this->rowEnd(); $this->contentEnd(); $this->htmlEndPage(); } /* }}} */ }