Пример #1
0
/**
 * @param Symfony\Component\Translation\Translator $translator
 * @return array
 */
function getOptions($translator)
{
    return array(array('name' => 'Safe Mode', 'url' => 'http://php.net/manual/features.safe-mode.php', 'recommended' => Display::label('OFF', 'success'), 'current' => check_php_setting('safe_mode', 'OFF')), array('name' => 'Display Errors', 'url' => 'http://php.net/manual/ref.errorfunc.php#ini.display-errors', 'recommended' => Display::label('ON', 'success'), 'current' => check_php_setting('display_errors', 'OFF')), array('name' => 'File Uploads', 'url' => 'http://php.net/manual/ini.core.php#ini.file-uploads', 'recommended' => Display::label('OFF', 'success'), 'current' => check_php_setting('file_uploads', 'ON')), array('name' => 'Magic Quotes GPC', 'url' => 'http://php.net/manual/ref.info.php#ini.magic-quotes-gpc', 'recommended' => Display::label('OFF', 'success'), 'current' => check_php_setting('magic_quotes_gpc', 'OFF')), array('name' => 'Magic Quotes Runtime', 'url' => 'http://php.net/manual/ref.info.php#ini.magic-quotes-runtime', 'recommended' => Display::label('OFF', 'success'), 'current' => check_php_setting('magic_quotes_runtime', 'OFF')), array('name' => 'Register Globals', 'url' => 'http://php.net/manual/security.globals.php', 'recommended' => Display::label('OFF', 'success'), 'current' => check_php_setting('register_globals', 'OFF')), array('name' => 'Session auto start', 'url' => 'http://php.net/manual/ref.session.php#ini.session.auto-start', 'recommended' => Display::label('OFF', 'success'), 'current' => check_php_setting('auto_start', 'OFF')), array('name' => 'Short Open Tag', 'url' => 'http://php.net/manual/ini.core.php#ini.short-open-tag', 'recommended' => Display::label('OFF', 'success'), 'current' => check_php_setting('short_open_tag', 'OFF')), array('name' => 'Cookie HTTP Only', 'url' => 'http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-httponly', 'recommended' => Display::label('ON', 'success'), 'current' => check_php_setting('session.cookie_httponly', 'ON')), array('name' => 'Maximum upload file size', 'url' => 'http://php.net/manual/ini.core.php#ini.upload-max-filesize', 'recommended' => Display::label('>= ' . REQUIRED_MIN_UPLOAD_MAX_FILESIZE . 'M', 'success'), 'current' => compare_setting_values(ini_get('upload_max_filesize'), REQUIRED_MIN_UPLOAD_MAX_FILESIZE)), array('name' => 'Maximum post size', 'url' => 'http://php.net/manual/ini.core.php#ini.post-max-size', 'recommended' => Display::label('>= ' . REQUIRED_MIN_POST_MAX_SIZE . 'M', 'success'), 'current' => compare_setting_values(ini_get('post_max_size'), REQUIRED_MIN_POST_MAX_SIZE)), array('name' => 'Memory Limit', 'url' => 'http://www.php.net/manual/en/ini.core.php#ini.memory-limit', 'recommended' => Display::label('>= ' . REQUIRED_MIN_MEMORY_LIMIT . 'M', 'success'), 'current' => compare_setting_values(ini_get('memory_limit'), REQUIRED_MIN_MEMORY_LIMIT)));
}
Пример #2
0
/**
 * This function displays the requirements for installing Chamilo.
 *
 * @param string $installType
 * @param boolean $badUpdatePath
 * @param string The updatePath given (if given)
 * @param array $update_from_version_8 The different subversions from version 1.8
 * @param array $update_from_version_6 The different subversions from version 1.6
 *
 * @author unknow
 * @author Patrick Cool <*****@*****.**>, Ghent University
 */
function display_requirements($installType, $badUpdatePath, $updatePath = '', $update_from_version_8 = array(), $update_from_version_6 = array()) {
    global $_setting;
    echo '<div class="RequirementHeading"><h2>'.display_step_sequence().get_lang('Requirements')."</h2></div>";
    echo '<div class="RequirementText">';
    echo '<strong>'.get_lang('ReadThoroughly').'</strong><br />';
    echo get_lang('MoreDetails').' <a href="../../documentation/installation_guide.html" target="_blank">'.get_lang('ReadTheInstallGuide').'</a>.<br />'."\n";

    if ($installType == 'update')  {
        echo get_lang('IfYouPlanToUpgradeFromOlderVersionYouMightWantToHaveAlookAtTheChangelog').'<br />';
    }
    echo '</div>';

    //  SERVER REQUIREMENTS
    echo '<div class="RequirementHeading"><h2>'.get_lang('ServerRequirements').'</h2>';

    $timezone = check_php_setting_exists("date.timezone");
    if (!$timezone) {
        echo "<div class='warning-message'>".Display::return_icon('warning.png',get_lang('Warning'),'',ICON_SIZE_MEDIUM).get_lang("DateTimezoneSettingNotSet")."</div>";
    }

    echo '<div class="RequirementText">'.get_lang('ServerRequirementsInfo').'</div>';
    echo '<div class="RequirementContent">';
    echo '<table class="table">
            <tr>
                <td class="requirements-item">'.get_lang('PHPVersion').' >= '.REQUIRED_PHP_VERSION.'</td>
                <td class="requirements-value">';
    if (phpversion() < REQUIRED_PHP_VERSION) {
        echo '<strong><font color="red">'.get_lang('PHPVersionError').'</font></strong>';
    } else {
        echo '<strong><font color="green">'.get_lang('PHPVersionOK'). ' '.phpversion().'</font></strong>';
    }
    echo '</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/en/book.session.php" target="_blank">Session</a> '.get_lang('support').'</td>
                <td class="requirements-value">'.check_extension('session', get_lang('Yes'), get_lang('ExtensionSessionsNotAvailable')).'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/en/book.mysql.php" target="_blank">MySQL</a> '.get_lang('support').'</td>
                <td class="requirements-value">'.check_extension('mysql', get_lang('Yes'), get_lang('ExtensionMySQLNotAvailable')).'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/en/book.zlib.php" target="_blank">Zlib</a> '.get_lang('support').'</td>
                <td class="requirements-value">'.check_extension('zlib', get_lang('Yes'), get_lang('ExtensionZlibNotAvailable')).'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/en/book.pcre.php" target="_blank">Perl-compatible regular expressions</a> '.get_lang('support').'</td>
                <td class="requirements-value">'.check_extension('pcre', get_lang('Yes'), get_lang('ExtensionPCRENotAvailable')).'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/en/book.xml.php" target="_blank">XML</a> '.get_lang('support').'</td>
                <td class="requirements-value">'.check_extension('xml', get_lang('Yes'), get_lang('No')).'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/en/book.mbstring.php" target="_blank">Multibyte string</a> '.get_lang('support').' ('.get_lang('Optional').')</td>
                <td class="requirements-value">'.check_extension('mbstring', get_lang('Yes'), get_lang('ExtensionMBStringNotAvailable'), true).'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/en/book.iconv.php" target="_blank">Iconv</a> '.get_lang('support').' ('.get_lang('Optional').')</td>
                <td class="requirements-value">'.check_extension('iconv', get_lang('Yes'), get_lang('No'), true).'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/en/book.intl.php" target="_blank">Internationalization</a> '.get_lang('support').' ('.get_lang('Optional').')</td>
                <td class="requirements-value">'.check_extension('intl', get_lang('Yes'), get_lang('No'), true).'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/en/book.image.php" target="_blank">GD</a> '.get_lang('support').'</td>
                <td class="requirements-value">'.check_extension('gd', get_lang('Yes'), get_lang('ExtensionGDNotAvailable')).'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/en/book.json.php" target="_blank">JSON</a> '.get_lang('support').'</td>
                <td class="requirements-value">'.check_extension('json', get_lang('Yes'), get_lang('No')).'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/en/book.ldap.php" target="_blank">LDAP</a> '.get_lang('support').' ('.get_lang('Optional').')</td>
                <td class="requirements-value">'.check_extension('ldap', get_lang('Yes'), get_lang('ExtensionLDAPNotAvailable'), true).'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://xapian.org/" target="_blank">Xapian</a> '.get_lang('support').' ('.get_lang('Optional').')</td>
                <td class="requirements-value">'.check_extension('xapian', get_lang('Yes'), get_lang('No'), true).'</td>
            </tr>

            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/en/book.curl.php" target="_blank">cURL</a> '.get_lang('support').' ('.get_lang('Optional').')</td>
                <td class="requirements-value">'.check_extension('curl', get_lang('Yes'), get_lang('No'), true).'</td>
            </tr>

          </table>';
    echo '  </div>';
    echo '</div>';

    // RECOMMENDED SETTINGS
    // Note: these are the settings for Joomla, does this also apply for Chamilo?
    // Note: also add upload_max_filesize here so that large uploads are possible
    echo '<div class="RequirementHeading"><h2>'.get_lang('RecommendedSettings').'</h2>';
    echo '<div class="RequirementText">'.get_lang('RecommendedSettingsInfo').'</div>';
    echo '<div class="RequirementContent">';
    echo '<table class="table">
            <tr>
                <th>'.get_lang('Setting').'</th>
                <th>'.get_lang('Recommended').'</th>
                <th>'.get_lang('Actual').'</th>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/features.safe-mode.php">Safe Mode</a></td>
                <td class="requirements-recommended">'.Display::label('OFF', 'success').'</td>
                <td class="requirements-value">'.check_php_setting('safe_mode','OFF').'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/ref.errorfunc.php#ini.display-errors">Display Errors</a></td>
                <td class="requirements-recommended">'.Display::label('OFF', 'success').'</td>
                <td class="requirements-value">'.check_php_setting('display_errors','OFF').'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/ini.core.php#ini.file-uploads">File Uploads</a></td>
                <td class="requirements-recommended">'.Display::label('ON', 'success').'</td>
                <td class="requirements-value">'.check_php_setting('file_uploads','ON').'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/ref.info.php#ini.magic-quotes-gpc">Magic Quotes GPC</a></td>
                <td class="requirements-recommended">'.Display::label('OFF', 'success').'</td>
                <td class="requirements-value">'.check_php_setting('magic_quotes_gpc','OFF').'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/ref.info.php#ini.magic-quotes-runtime">Magic Quotes Runtime</a></td>
                <td class="requirements-recommended">'.Display::label('OFF', 'success').'</td>
                <td class="requirements-value">'.check_php_setting('magic_quotes_runtime','OFF').'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/security.globals.php">Register Globals</a></td>
                <td class="requirements-recommended">'.Display::label('OFF', 'success').'</td>
                <td class="requirements-value">'.check_php_setting('register_globals','OFF').'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/ref.session.php#ini.session.auto-start">Session auto start</a></td>
                <td class="requirements-recommended">'.Display::label('OFF', 'success').'</td>
                <td class="requirements-value">'.check_php_setting('session.auto_start','OFF').'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/ini.core.php#ini.short-open-tag">Short Open Tag</a></td>
                <td class="requirements-recommended">'.Display::label('OFF', 'success').'</td>
                <td class="requirements-value">'.check_php_setting('short_open_tag','OFF').'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-httponly">Cookie HTTP Only</a></td>
                <td class="requirements-recommended">'.Display::label('ON', 'success').'</td>
                <td class="requirements-value">'.check_php_setting('session.cookie_httponly','ON').'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/ini.core.php#ini.upload-max-filesize">Maximum upload file size</a></td>
                <td class="requirements-recommended">'.Display::label('>= '.REQUIRED_MIN_UPLOAD_MAX_FILESIZE.'M', 'success').'</td>
                <td class="requirements-value">'.compare_setting_values(ini_get('upload_max_filesize'), REQUIRED_MIN_UPLOAD_MAX_FILESIZE).'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://php.net/manual/ini.core.php#ini.post-max-size">Maximum post size</a></td>
                <td class="requirements-recommended">'.Display::label('>= '.REQUIRED_MIN_POST_MAX_SIZE.'M', 'success').'</td>
                <td class="requirements-value">'.compare_setting_values(ini_get('post_max_size'), REQUIRED_MIN_POST_MAX_SIZE).'</td>
            </tr>
            <tr>
                <td class="requirements-item"><a href="http://www.php.net/manual/en/ini.core.php#ini.memory-limit">Memory Limit</a></td>
                <td class="requirements-recommended">'.Display::label('>= '.REQUIRED_MIN_MEMORY_LIMIT.'M', 'success').'</td>
                <td class="requirements-value">'.compare_setting_values(ini_get('memory_limit'), REQUIRED_MIN_MEMORY_LIMIT).'</td>
            </tr>
          </table>';
    echo '  </div>';
    echo '</div>';

    // DIRECTORY AND FILE PERMISSIONS
    echo '<div class="RequirementHeading"><h2>'.get_lang('DirectoryAndFilePermissions').'</h2>';
    echo '<div class="RequirementText">'.get_lang('DirectoryAndFilePermissionsInfo').'</div>';
    echo '<div class="RequirementContent">';

    $course_attempt_name = '__XxTestxX__';
    $course_dir = api_get_path(SYS_COURSE_PATH).$course_attempt_name;

    //Just in case
    @unlink($course_dir.'/test.php');
    @rmdir($course_dir);

    $perms_dir = array(0777, 0755, 0775, 0770, 0750, 0700);
    $perms_fil = array(0666, 0644, 0664, 0660, 0640, 0600);

    $course_test_was_created = false;

    $dir_perm_verified = 0777;
    foreach ($perms_dir as $perm) {
        $r = @mkdir($course_dir, $perm);
        if ($r === true) {
            $dir_perm_verified = $perm;
            $course_test_was_created = true;
            break;
        }
    }

    $fil_perm_verified = 0666;
    $file_course_test_was_created = false;

    if (is_dir($course_dir)) {
        foreach ($perms_fil as $perm) {
            if ($file_course_test_was_created == true) {
                break;
            }
            $r = @touch($course_dir.'/test.php',$perm);
            if ($r === true) {
                $fil_perm_verified = $perm;
                if (check_course_script_interpretation($course_dir, $course_attempt_name, 'test.php')) {
                    $file_course_test_was_created = true;
                }
            }
        }
    }

    @unlink($course_dir.'/test.php');
    @rmdir($course_dir);

    $_SESSION['permissions_for_new_directories'] = $_setting['permissions_for_new_directories'] = $dir_perm_verified;
    $_SESSION['permissions_for_new_files'] = $_setting['permissions_for_new_files'] = $fil_perm_verified;

    $dir_perm = Display::label('0'.decoct($dir_perm_verified), 'info');
    $file_perm = Display::label('0'.decoct($fil_perm_verified), 'info');

    $courseTestLabel = Display::label(get_lang('No'), 'important');

    if ($course_test_was_created && $file_course_test_was_created) {
        $courseTestLabel = Display::label(get_lang('Yes'), 'success');
    }

    if ($course_test_was_created && !$file_course_test_was_created) {
        $courseTestLabel = Display::label(
            sprintf(
                get_lang('InstallWarningCouldNotInterpretPHP'),
                api_get_path(WEB_COURSE_PATH).$course_attempt_name.'/test.php'
            ),
            'warning'
        );
    }

    if (!$course_test_was_created && !$file_course_test_was_created) {
        $courseTestLabel = Display::label(get_lang('No'), 'important');
    }

    echo '<table class="table">
            <tr>
                <td class="requirements-item">'.api_get_path(SYS_CODE_PATH).'inc/conf/</td>
                <td class="requirements-value">'.check_writable(api_get_path(SYS_CODE_PATH).'inc/conf/').'</td>
            </tr>
            <tr>
                <td class="requirements-item">'.api_get_path(SYS_CODE_PATH).'upload/users/</td>
                <td class="requirements-value">'.check_writable(api_get_path(SYS_CODE_PATH).'upload/users/').'</td>
            </tr>
            <tr>
                <td class="requirements-item">'.api_get_path(SYS_CODE_PATH).'default_course_document/images/</td>
                <td class="requirements-value">'.check_writable(api_get_path(SYS_CODE_PATH).'default_course_document/images/').'</td>
            </tr>
            <tr>
                <td class="requirements-item">'.api_get_path(SYS_ARCHIVE_PATH).'</td>
                <td class="requirements-value">'.check_writable(api_get_path(SYS_ARCHIVE_PATH)).'</td>
            </tr>
            <tr>
                <td class="requirements-item">'.api_get_path(SYS_COURSE_PATH).'</td>
                <td class="requirements-value">'.check_writable(api_get_path(SYS_COURSE_PATH)).' </td>
            </tr>
            <tr>
                <td class="requirements-item">'.get_lang('CourseTestWasCreated').'</td>
                <td class="requirements-value">'.$courseTestLabel.' </td>
            </tr>
            <tr>
                <td class="requirements-item">'.get_lang('PermissionsForNewDirs').'</td>
                <td class="requirements-value">'.$dir_perm.' </td>
            </tr>
            <tr>
                <td class="requirements-item">'.get_lang('PermissionsForNewFiles').'</td>
                <td class="requirements-value">'.$file_perm.' </td>
            </tr>
            <tr>
                <td class="requirements-item">'.api_get_path(SYS_PATH).'home/</td>
                <td class="requirements-value">'.check_writable(api_get_path(SYS_PATH).'home/').'</td>
            </tr>
            <tr>
                <td class="requirements-item">'.api_get_path(SYS_CODE_PATH).'css/</td>
                <td class="requirements-value">'.check_writable(api_get_path(SYS_CODE_PATH).'css/', true).' ('.get_lang('SuggestionOnlyToEnableCSSUploadFeature').')</td>
            </tr>
            <tr>
                <td class="requirements-item">'.api_get_path(SYS_CODE_PATH).'lang/</td>
                <td class="requirements-value">'.check_writable(api_get_path(SYS_CODE_PATH).'lang/', true).' ('.get_lang('SuggestionOnlyToEnableSubLanguageFeature').')</td>
            </tr>'.
            //'<tr>
            //    <td class="requirements-item">chamilo/searchdb/</td>
            //    <td class="requirements-value">'.check_writable('../searchdb/').'</td>
            //</tr>'.
            //'<tr>
            //    <td class="requirements-item">'.session_save_path().'</td>
            //    <td class="requirements-value">'.(is_writable(session_save_path())
            //      ? '<strong><font color="green">'.get_lang('Writable').'</font></strong>'
            //      : '<strong><font color="red">'.get_lang('NotWritable').'</font></strong>').'</td>
            //</tr>'.
            '';
    echo '    </table>';
    echo '  </div>';
    echo '</div>';

    if ($installType == 'update' && (empty($updatePath) || $badUpdatePath)) {
        if ($badUpdatePath) { ?>
            <div class="error-message">
                <?php echo get_lang('Error'); ?>!<br />
                Chamilo <?php echo (isset($_POST['step2_update_6']) ? implode('|', $update_from_version_6) : implode('|', $update_from_version_8)).' '.get_lang('HasNotBeenFoundInThatDir'); ?>.
            </div>
        <?php }
        else {
            echo '<br />';
        }
        ?>
            <table border="0" cellpadding="5" align="center">
            <tr>
            <td><?php echo get_lang('OldVersionRootPath'); ?>:</td>
            <td><input type="text" name="updatePath" size="50" value="<?php echo ($badUpdatePath && !empty($updatePath)) ? htmlentities($updatePath) : api_get_path(SYS_SERVER_ROOT_PATH).'old_version/'; ?>" /></td>
            </tr>
            <tr>
            <td colspan="2" align="center">
                <button type="submit" class="back" name="step1" value="&lt; <?php echo get_lang('Back'); ?>" ><?php echo get_lang('Back'); ?></button>
                <input type="hidden" name="is_executable" id="is_executable" value="-" />
                <button type="submit" class="btn next" name="<?php echo (isset($_POST['step2_update_6']) ? 'step2_update_6' : 'step2_update_8'); ?>" value="<?php echo get_lang('Next'); ?> &gt;" ><?php echo get_lang('Next'); ?></button>
            </td>
            </tr>
            </table>
        <?php
    } else {
        $error = false;
        // First, attempt to set writing permissions if we don't have them yet
        $perm = api_get_permissions_for_new_directories();
        $perm_file = api_get_permissions_for_new_files();

        $notwritable = array();
        $curdir = getcwd();

        $checked_writable = api_get_path(CONFIGURATION_PATH);
        if (!is_writable($checked_writable)) {
            $notwritable[] = $checked_writable;
            @chmod($checked_writable, $perm);
        }

        $checked_writable = api_get_path(SYS_CODE_PATH).'upload/users/';
        if (!is_writable($checked_writable)) {
            $notwritable[] = $checked_writable;
            @chmod($checked_writable, $perm);
        }

        $checked_writable = api_get_path(SYS_CODE_PATH).'default_course_document/images/';
        if (!is_writable($checked_writable)) {
            $notwritable[] = $checked_writable;
            @chmod($checked_writable, $perm);
        }

        $checked_writable = api_get_path(SYS_ARCHIVE_PATH);
        if (!is_writable($checked_writable)) {
            $notwritable[] = $checked_writable;
            @chmod($checked_writable, $perm);
        }

        $checked_writable = api_get_path(SYS_COURSE_PATH);
        if (!is_writable($checked_writable)) {
            $notwritable[] = $checked_writable;
            @chmod($checked_writable, $perm);
        }

        if ($course_test_was_created == false) {
            $error = true;
        }

        $checked_writable = api_get_path(SYS_PATH).'home/';
        if (!is_writable($checked_writable)) {
            $notwritable[] = realpath($checked_writable);
            @chmod($checked_writable, $perm);
        }

        $checked_writable = api_get_path(CONFIGURATION_PATH).'configuration.php';
        if (file_exists($checked_writable) && !is_writable($checked_writable)) {
            $notwritable[] = $checked_writable;
            @chmod($checked_writable, $perm_file);
        }

        // Second, if this fails, report an error

        //--> The user would have to adjust the permissions manually
        if (count($notwritable) > 0) {
            $error = true;
            echo '<div class="error-message">';
                echo '<center><h3>'.get_lang('Warning').'</h3></center>';
                printf(get_lang('NoWritePermissionPleaseReadInstallGuide'), '</font>
                <a href="../../documentation/installation_guide.html" target="blank">', '</a> <font color="red">');
            echo '</div>';
            echo '<ul>';
            foreach ($notwritable as $value) {
                echo '<li>'.$value.'</li>';
            }
            echo '</ul>';
        }

        // Check wether a Chamilo configuration file already exists.
        elseif (file_exists(api_get_path(CONFIGURATION_PATH).'configuration.php')) {
            echo '<div class="warning-message"><h4><center>';
            echo get_lang('WarningExistingDokeosInstallationDetected');
            echo '</center></h4></div>';
        }

        // And now display the choice buttons (go back or install)
        ?>
        <p align="center" style="padding-top:15px">
        <button type="submit" name="step1" class="back" onclick="javascript: window.location='index.php'; return false;" value="&lt; <?php echo get_lang('Previous'); ?>" ><?php echo get_lang('Previous'); ?></button>
        <button type="submit" name="step2_install" class="plus" value="<?php echo get_lang("NewInstallation"); ?>" <?php if ($error) echo 'disabled="disabled"'; ?> ><?php echo get_lang('NewInstallation'); ?></button>
        <input type="hidden" name="is_executable" id="is_executable" value="-" />
        <?php
        // Real code
        echo '<button type="submit" class="save" name="step2_update_8" value="Upgrade from Dokeos 1.8.x"';
        if ($error) echo ' disabled="disabled"';
        // Temporary code for alpha version, disabling upgrade
        //echo '<input type="submit" name="step2_update" value="Upgrading is not possible in this beta version"';
        //echo ' disabled="disabled"';
        //end temp code
        echo ' >'.get_lang('UpgradeFromDokeos18x').'</button>';
        echo ' <button type="submit" class="save" name="step2_update_6" value="Upgrade from Dokeos 1.6.x"';
        if ($error) echo ' disabled="disabled"';
        echo ' >'.get_lang('UpgradeFromDokeos16x').'</button>';
        echo '</p>';
    }
}
Пример #3
0
<?php

include_once "includes/common.inc";
drupal_page_header();
check_php_setting("magic_quotes_gpc", 0);
menu_build("system");
$mod = arg(0);
if (isset($mod) && module_hook($mod, "page")) {
    module_invoke($mod, "page");
} else {
    if (module_hook(variable_get("site_frontpage", "node"), "page")) {
        module_invoke(variable_get("site_frontpage", "node"), "page");
    } else {
        theme("header");
        theme("footer");
    }
}
drupal_page_footer();
Пример #4
0
 // remove mysqlnd from client info string, if found
 $mysql_ver = preg_replace('/^mysqlnd /', '', mysql_get_client_info());
 echo '<p>' . get_lang('Please, read thoroughly the <a href="%installFileUrl">%installFileName</a> document before proceeding to installation.', array('%installFileUrl' => '../../INSTALL.txt', '%installFileName' => 'INSTALL.txt')) . '</p>' . '<fieldset>' . "\n" . '<legend>' . get_lang('Server requirements') . '</legend>' . "\n" . '<table class="requirements">' . '<tbody>' . "\n" . '<tr>' . '<td>Php version >= 5.2</td>' . '<td>' . (version_compare(phpversion(), $requiredPhpVersion, ">=") ? '<span class="ok">' . get_lang('Ok') . '</span>' : '<span class="ko">' . get_lang('Ko') . '</span>') . ' (' . phpversion() . ')</td>' . '</tr>' . '<tr>' . '<td>MySQL version >= 4.3</td>' . '<td>' . (version_compare($mysql_ver, $requiredMySqlVersion, ">=") ? '<span class="ok">' . get_lang('Ok') . '</span>' : '<span class="ko">' . get_lang('Ko') . '</span>') . ' (' . mysql_get_client_info() . ')</td>' . '</tr>' . '<tr>' . '<th colspan="2">' . get_lang('Required php extensions') . '</th>' . '</tr>' . '<tr>' . '<td>MySql</td>' . '<td>' . (extension_loaded('mysql') ? '<span class="ok">' . get_lang('Ok') . '</span>' : '<span class="ko">' . get_lang('Ko') . '</span>') . '</td>' . '</tr>' . '<tr>' . '<td>Zlib compression</td>' . '<td>' . (extension_loaded('zlib') ? '<span class="ok">' . get_lang('Ok') . '</span>' : '<span class="ko">' . get_lang('Ko') . '</span>') . '</td>' . '</tr>' . '<tr>' . '<td>Regular expressions</td>' . '<td>' . (extension_loaded('pcre') ? '<span class="ok">' . get_lang('Ok') . '</span>' : '<span class="ko">' . get_lang('Ko') . '</span>') . '</td>' . '</tr>' . '<tr>' . '<td>XML</td>' . '<td>' . (extension_loaded('xml') ? '<span class="ok">' . get_lang('Ok') . '</span>' : '<span class="ko">' . get_lang('Ko') . '</span>') . '</td>' . '</tr>' . '<tr>' . '<td>mbstring or iconv</td>' . '<td>';
 if (extension_loaded('mbstring') || extension_loaded('iconv')) {
     echo '<span class="ok">' . get_lang('Ok') . '</span> (';
     if (extension_loaded('mbstring')) {
         echo ' mbstring ';
     }
     if (extension_loaded('iconv')) {
         echo ' iconv ';
     }
     echo ')';
 } else {
     echo '<span class="ko">' . get_lang('Ko') . '</span>';
 }
 echo '</td>' . '</tr>' . '<tr>' . '<th colspan="2">' . get_lang('Optional php extensions') . '</th>' . '</tr>' . '<tr>' . '<td>GD</td>' . '<td>' . (extension_loaded('gd') ? '<span class="ok">' . get_lang('Ok') . '</span>' : '<span class="ko">' . get_lang('Ko') . '</span>') . '</td>' . '</tr>' . '<tr>' . '<td>LDAP</td>' . '<td>' . (extension_loaded('ldap') ? '<span class="ok">' . get_lang('Ok') . '</span>' : '<span class="ko">' . get_lang('Ko') . '</span>') . '</td>' . '</tr>' . '<tr>' . '<td>OpenSSL</td>' . '<td>' . (extension_loaded('openssl') ? '<span class="ok">' . get_lang('Ok') . '</span>' : '<span class="ko">' . get_lang('Ko') . '</span>') . '</td>' . '</tr>' . '</tbody>' . "\n" . '</table>' . '</fieldset>' . "\n\n" . '<fieldset>' . "\n" . '<legend>' . get_lang('Recommanded settings') . '</legend>' . "\n" . '<table  class="requirements">' . "\n" . '<tr>' . "\n" . '<th>' . get_lang('Setting') . '</th>' . "\n" . '<th>' . get_lang('Recommended value') . '</th>' . "\n" . '<th>' . get_lang('Current value') . '</th>' . "\n" . '</tr>' . "\n" . '<tbody>' . "\n" . '<tr>' . "\n" . '<td>Safe mode</td>' . "\n" . '<td>Off</td>' . "\n" . '<td>' . check_php_setting('safe_mode', 'OFF') . '</td>' . "\n" . '</tr>' . "\n" . '<tr>' . "\n" . '<td>Display errors</td>' . "\n" . '<td>Off</td>' . "\n" . '<td>' . check_php_setting('display_errors', 'OFF') . '</td>' . "\n" . '</tr>' . "\n" . '<tr>' . "\n" . '<td>Register globals</td>' . "\n" . '<td>Off</td>' . "\n" . '<td>' . check_php_setting('register_globals', 'OFF') . '</td>' . "\n" . '</tr>' . "\n" . '<tr>' . "\n" . '<td>Magic quotes GPC</td>' . "\n" . '<td>Off</td>' . "\n" . '<td>' . check_php_setting('magic_quotes_gpc', 'OFF') . '</td>' . "\n" . '</tr>' . "\n" . '<tr>' . "\n" . '<td>File uploads</td>' . "\n" . '<td>On</td>' . "\n" . '<td>' . check_php_setting('file_uploads', 'ON') . '</td>' . "\n" . '</tr>' . "\n" . '<tr>' . "\n" . '<td>Upload max filesize</td>' . "\n" . '<td>8-100M</td>' . "\n" . '<td>' . ini_get('upload_max_filesize') . '</td>' . "\n" . '</tr>' . "\n" . '<tr>' . "\n" . '<td>Post max size</td>' . "\n" . '<td>8-100M</td>' . "\n" . '<td>' . ini_get('post_max_size') . '</td>' . "\n" . '</tr>' . "\n" . '</tbody>' . "\n" . '</table>' . "\n\n";
 echo '</fieldset>' . "\n\n" . '<fieldset>' . "\n" . '<legend>' . get_lang('Directories and files permissions') . '</legend>' . "\n" . '<table class="requirements">' . "\n" . '<tbody>' . "\n";
 $pathRoot = '../..';
 $rootReadable = true;
 $rootWritable = true;
 if (!is_readable($pathRoot)) {
     $rootReadable = false;
 }
 if (!is_writable($pathRoot)) {
     $rootWritable = false;
 }
 $pathPlatform = '../../platform';
 $platformReadable = true;
 $platformWritable = true;
 if (is_dir($pathPlatform)) {
     if (is_readable($pathPlatform)) {