/** * Builds the upgrader page stage * * @access public * @return string A block of valid XHTML to display the requirements */ function Display() { $tpl = new Jaws_Template(false, false); $tpl->load('display.html', 'stages/Requirements/templates'); $tpl->setBlock('Requirements'); $tpl->setVariable('requirements', _t('UPGRADE_REQUIREMENTS')); $tpl->setVariable('requirement', _t('UPGRADE_REQ_REQUIREMENT')); $tpl->setVariable('optional', _t('UPGRADE_REQ_OPTIONAL')); $tpl->setVariable('recommended', _t('UPGRADE_REQ_RECOMMENDED')); $tpl->setVariable('directive', _t('UPGRADE_REQ_DIRECTIVE')); $tpl->setVariable('actual', _t('UPGRADE_REQ_ACTUAL')); $tpl->setVariable('result', _t('UPGRADE_REQ_RESULT')); $tpl->SetVariable('next', _t('GLOBAL_NEXT')); $modules = get_loaded_extensions(); $modules = array_map('strtolower', $modules); _log(JAWS_LOG_DEBUG, "Checking requirements..."); // PHP version $tpl->setBlock('Requirements/req_item'); $tpl->setVariable('item', _t('UPGRADE_REQ_PHP_VERSION')); $tpl->setVariable('item_requirement', _t('UPGRADE_REQ_GREATER_THAN', MIN_PHP_VERSION)); $tpl->setVariable('item_actual', phpversion()); if (version_compare(phpversion(), MIN_PHP_VERSION, ">=") == 1) { _log(JAWS_LOG_DEBUG, "PHP installed version looks ok (>= " . MIN_PHP_VERSION . ")"); $result_txt = '<span style="color: #0b0;">' . _t('UPGRADE_REQ_OK') . '</span>'; } else { _log(JAWS_LOG_DEBUG, "PHP installed version (" . phpversion() . ") is not supported"); $result_txt = '<span style="color: #b00;">' . _t('UPGRADE_REQ_BAD') . '</span>'; } $tpl->setVariable('result', $result_txt); $tpl->parseBlock('Requirements/req_item'); // config directory $tpl->setBlock('Requirements/req_item'); $result = $this->_check_path('config', 'r'); $tpl->setVariable('item', _t('UPGRADE_REQ_DIRECTORY', 'config')); $tpl->setVariable('item_requirement', _t('UPGRADE_REQ_READABLE')); $tpl->setVariable('item_actual', $this->_get_perms('config')); if ($result) { _log(JAWS_LOG_DEBUG, "config directory has read-permission privileges"); $result_txt = '<span style="color: #0b0;">' . _t('UPGRADE_REQ_OK') . '</span>'; } else { _log(JAWS_LOG_DEBUG, "config directory doesn't have read-permission privileges"); $result_txt = '<span style="color: #b00;">' . _t('UPGRADE_REQ_BAD') . '</span>'; } $tpl->setVariable('result', $result_txt); $tpl->parseBlock('Requirements/req_item'); // data directory $tpl->setBlock('Requirements/req_item'); $result = $this->_check_path('data', 'rw'); $tpl->setVariable('item', _t('UPGRADE_REQ_DIRECTORY', 'data')); $tpl->setVariable('item_requirement', _t('UPGRADE_REQ_WRITABLE')); $tpl->setVariable('item_actual', $this->_get_perms('data')); if ($result) { _log(JAWS_LOG_DEBUG, "data directory has read and write permission privileges"); $result_txt = '<span style="color: #0b0;">' . _t('UPGRADE_REQ_OK') . '</span>'; } else { _log(JAWS_LOG_DEBUG, "data directory doesn't have read and write permission privileges"); $result_txt = '<span style="color: #b00;">' . _t('UPGRADE_REQ_BAD') . '</span>'; } $tpl->setVariable('result', $result_txt); $tpl->parseBlock('Requirements/req_item'); // Database drivers $tpl->setBlock('Requirements/req_item'); $tpl->setVariable('item', implode('<br/>', $this->_db_drivers)); $tpl->setVariable('item_requirement', _t('GLOBAL_YES')); $actual = ''; $db_state = false; foreach (array_keys($this->_db_drivers) as $ext) { $db_state = $db_state || in_array($ext, $modules); $actual .= (!empty($actual) ? '<br />' : '') . (in_array($ext, $modules) ? $ext : '-----'); } $tpl->setVariable('item_actual', $actual); if ($db_state) { _log(JAWS_LOG_DEBUG, "Available database drivers: {$actual}"); $result_txt = '<span style="color: #0b0;">' . _t('UPGRADE_REQ_OK') . '</span>'; } else { _log(JAWS_LOG_DEBUG, "No database driver found"); $result_txt = '<span style="color: #b00;">' . _t('UPGRADE_REQ_BAD') . '</span>'; } $tpl->setVariable('result', $result_txt); $tpl->parseBlock('Requirements/req_item'); // XML extension $tpl->setBlock('Requirements/req_item'); $tpl->setVariable('item', _t('UPGRADE_REQ_EXTENSION', 'XML')); $tpl->setVariable('item_requirement', _t('GLOBAL_YES')); $tpl->setVariable('item_actual', in_array('xml', $modules) ? _t('GLOBAL_YES') : _t('GLOBAL_NO')); if (in_array('xml', $modules)) { _log(JAWS_LOG_DEBUG, "xml support is enabled"); $result_txt = '<span style="color: #0b0;">' . _t('UPGRADE_REQ_OK') . '</span>'; } else { _log(JAWS_LOG_DEBUG, "xml support is not enabled"); $result_txt = '<span style="color: #b00;">' . _t('UPGRADE_REQ_BAD') . '</span>'; } $tpl->setVariable('result', $result_txt); $tpl->parseBlock('Requirements/req_item'); // File Upload $tpl->setBlock('Requirements/rec_item'); $tpl->setVariable('item', _t('UPGRADE_REQ_FILE_UPLOAD')); $tpl->setVariable('item_requirement', _t('GLOBAL_YES')); $check = (bool) ini_get('file_uploads'); $tpl->setVariable('item_actual', $check ? _t('GLOBAL_YES') : _t('GLOBAL_NO')); if ($check) { _log(JAWS_LOG_DEBUG, "PHP accepts file uploads"); $result_txt = '<span style="color: #0b0;">' . _t('UPGRADE_REQ_OK') . '</span>'; } else { _log(JAWS_LOG_DEBUG, "PHP doesn't accept file uploads"); $result_txt = '<span style="color: #b00;">' . _t('UPGRADE_REQ_BAD') . '</span>'; } $tpl->setVariable('result', $result_txt); $tpl->parseBlock('Requirements/rec_item'); // Safe mode $tpl->setBlock('Requirements/rec_item'); $tpl->setVariable('item', _t('UPGRADE_REQ_SAFE_MODE')); $tpl->setVariable('item_requirement', _t('UPGRADE_REQ_OFF')); $safe_mode = (bool) ini_get('safe_mode'); $tpl->setVariable('item_actual', $safe_mode ? _t('UPGRADE_REQ_ON') : _t('UPGRADE_REQ_OFF')); if ($safe_mode) { _log(JAWS_LOG_DEBUG, "PHP has safe-mode turned on"); $result_txt = '<span style="color: #b00;">' . _t('UPGRADE_REQ_BAD') . '</span>'; } else { _log(JAWS_LOG_DEBUG, "PHP has safe-mode turned off"); $result_txt = '<span style="color: #0b0;">' . _t('UPGRADE_REQ_OK') . '</span>'; } $tpl->setVariable('result', $result_txt); $tpl->parseBlock('Requirements/rec_item'); // GD/ImageMagick $tpl->setBlock('Requirements/rec_item'); $tpl->setVariable('item', _t('UPGRADE_REQ_EXTENSION', 'GD/ImageMagick')); $tpl->setVariable('item_requirement', _t('GLOBAL_YES')); $actual = in_array('gd', $modules) ? 'GD' : ''; $actual .= in_array('magickwand', $modules) ? (empty($actual) ? '' : ' + ') . 'ImageMagick' : ''; $actual = empty($actual) ? 'No' : $actual; $tpl->setVariable('item_actual', $actual); if (in_array('gd', $modules) || in_array('magickwand', $modules)) { _log(JAWS_LOG_DEBUG, "PHP has GD or ImageMagick turned on"); $result_txt = '<span style="color: #0b0;">' . _t('UPGRADE_REQ_OK') . '</span>'; } else { _log(JAWS_LOG_DEBUG, "PHP has GD or ImageMagick turned off"); $result_txt = '<span style="color: #b00;">' . _t('UPGRADE_REQ_BAD') . '</span>'; } $tpl->setVariable('result', $result_txt); $tpl->parseBlock('Requirements/rec_item'); // Exif extension $tpl->setBlock('Requirements/rec_item'); $tpl->setVariable('item', _t('UPGRADE_REQ_EXTENSION', 'Exif')); $tpl->setVariable('item_requirement', _t('GLOBAL_YES')); $tpl->setVariable('item_actual', in_array('exif', $modules) ? _t('GLOBAL_YES') : _t('GLOBAL_NO')); if (in_array('exif', $modules)) { _log(JAWS_LOG_DEBUG, "exif support is enabled"); $result_txt = '<span style="color: #0b0;">' . _t('UPGRADE_REQ_OK') . '</span>'; } else { _log(JAWS_LOG_DEBUG, "exif support is not enabled"); $result_txt = '<span style="color: #b00;">' . _t('UPGRADE_REQ_BAD') . '</span>'; } $tpl->setVariable('result', $result_txt); $tpl->parseBlock('Requirements/rec_item'); // OpenSSL extension $tpl->setBlock('Requirements/rec_item'); $tpl->setVariable('item', _t('UPGRADE_REQ_EXTENSION', 'OpenSSL')); $tpl->setVariable('item_requirement', _t('GLOBAL_YES')); $tpl->setVariable('item_actual', in_array('openssl', $modules) ? _t('GLOBAL_YES') : _t('GLOBAL_NO')); if (in_array('openssl', $modules)) { _log(JAWS_LOG_DEBUG, "openssl extension is loaded"); $result_txt = '<span style="color: #0b0;">' . _t('INSTALL_REQ_OK') . '</span>'; } else { _log(JAWS_LOG_DEBUG, "openssl extension is not loaded"); $result_txt = '<span style="color: #b00;">' . _t('INSTALL_REQ_BAD') . '</span>'; } $tpl->setVariable('result', $result_txt); $tpl->parseBlock('Requirements/rec_item'); $tpl->parseBlock('Requirements'); return $tpl->get(); }
if (isset($GLOBALS['message'])) { switch ($GLOBALS['message']->getLevel()) { case JAWS_ERROR_INFO: $type = 'info'; break; case JAWS_ERROR_WARNING: $type = 'warning'; break; case JAWS_ERROR_ERROR: $type = 'error'; break; } $tpl->setBlock('page/message'); $tpl->setVariable('text', $GLOBALS['message']->getMessage()); $tpl->setVariable('type', $type); $tpl->parseBlock('page/message'); } $tpl->ParseBlock('page'); // Defines where the layout template should be loaded from. $direction = _t('GLOBAL_LANG_DIRECTION'); $dir = $direction == 'rtl' ? '.' . $direction : ''; // Display the layout $layout = new Jaws_Template(false, false); $layout->Load('layout.html', 'templates'); $layout->SetBlock('layout'); // Basic setup $layout->SetVariable('BASE_URL', Jaws_Utils::getBaseURL('/install/')); $layout->SetVariable('.dir', $dir); $layout->SetVariable('site-title', 'Jaws ' . JAWS_VERSION); $layout->SetVariable('site-name', 'Jaws ' . JAWS_VERSION); $layout->SetVariable('site-slogan', JAWS_VERSION_CODENAME);