Example #1
0
<?php

// This file defines settingpages and externalpages under the "server" category
if ($hassiteconfig) {
    // speedup for non-admins, add all caps used on this page
    // "systempaths" settingpage
    $temp = new admin_settingpage('systempaths', new lang_string('systempaths', 'admin'));
    $temp->add(new admin_setting_configselect('gdversion', new lang_string('gdversion', 'admin'), new lang_string('configgdversion', 'admin'), check_gd_version(), array('0' => new lang_string('gdnot'), '1' => new lang_string('gd1'), '2' => new lang_string('gd2'))));
    $temp->add(new admin_setting_configexecutable('pathtodu', new lang_string('pathtodu', 'admin'), new lang_string('configpathtodu', 'admin'), ''));
    $temp->add(new admin_setting_configexecutable('aspellpath', new lang_string('aspellpath', 'admin'), new lang_string('edhelpaspellpath'), ''));
    $temp->add(new admin_setting_configexecutable('pathtodot', new lang_string('pathtodot', 'admin'), new lang_string('pathtodot_help', 'admin'), ''));
    $ADMIN->add('server', $temp);
    // "supportcontact" settingpage
    $temp = new admin_settingpage('supportcontact', new lang_string('supportcontact', 'admin'));
    if (isloggedin()) {
        global $USER;
        $primaryadminemail = $USER->email;
        $primaryadminname = fullname($USER, true);
    } else {
        // no defaults during installation - admin user must be created first
        $primaryadminemail = NULL;
        $primaryadminname = NULL;
    }
    $temp->add(new admin_setting_configtext('supportname', new lang_string('supportname', 'admin'), new lang_string('configsupportname', 'admin'), $primaryadminname, PARAM_NOTAGS));
    $temp->add(new admin_setting_configtext('supportemail', new lang_string('supportemail', 'admin'), new lang_string('configsupportemail', 'admin'), $primaryadminemail, PARAM_NOTAGS));
    $temp->add(new admin_setting_configtext('supportpage', new lang_string('supportpage', 'admin'), new lang_string('configsupportpage', 'admin'), '', PARAM_URL));
    $ADMIN->add('server', $temp);
    // "sessionhandling" settingpage
    $temp = new admin_settingpage('sessionhandling', new lang_string('sessionhandling', 'admin'));
    $temp->add(new admin_setting_configcheckbox('dbsessions', new lang_string('dbsessions', 'admin'), new lang_string('configdbsessions', 'admin'), 1));
    $temp->add(new admin_setting_configselect('sessiontimeout', new lang_string('sessiontimeout', 'admin'), new lang_string('configsessiontimeout', 'admin'), 7200, array(14400 => new lang_string('numhours', '', 4), 10800 => new lang_string('numhours', '', 3), 7200 => new lang_string('numhours', '', 2), 5400 => new lang_string('numhours', '', '1.5'), 3600 => new lang_string('numminutes', '', 60), 2700 => new lang_string('numminutes', '', 45), 1800 => new lang_string('numminutes', '', 30), 900 => new lang_string('numminutes', '', 15), 300 => new lang_string('numminutes', '', 5))));
Example #2
0
function begin()
{
    // {{{
    $err = "";
    $thumberr = "";
    $dberr = "";
    if (check_gd_version() == 0 && check_im_version() == 0) {
        $thumberr = "<p>PHP's GD extension seems to be missing, " . "and imagemagick's \"convert\" command cannot be found - " . "no thumbnailing engines are available.";
    }
    if (!function_exists("mysql_connect")) {
        $dberr = "<p>PHP's MySQL extension seems to be missing; you may " . "be able to use an unofficial alternative, checking " . "for libraries...";
        if (!function_exists("pg_connect")) {
            $dberr .= "<br>PgSQL is missing";
        } else {
            $dberr .= "<br>PgSQL is available";
        }
        if (!function_exists("sqlite_open")) {
            $dberr .= "<br>SQLite is missing";
        } else {
            $dberr .= "<br>SQLite is available";
        }
    }
    if ($thumberr || $dberr) {
        $err = "<h3>Error</h3>";
    }
    print <<<EOD
\t\t<div id="iblock">
\t\t\t<h1>Shimmie Installer</h1>

\t\t\t{$err}
\t\t\t{$thumberr}
\t\t\t{$dberr}

\t\t\t<h3>Install</h3>
\t\t\t<form action="install.php" method="POST">
\t\t\t\t<center>
\t\t\t\t\t<table>
\t\t\t\t\t\t<tr><td>Database:</td><td><input type="text" name="database_dsn" size="40"></td></tr>
\t\t\t\t\t\t<tr><td colspan="2"><center><input type="submit" value="Go!"></center></td></tr>
\t\t\t\t\t</table>
\t\t\t\t</center>
\t\t\t</form>

\t\t\t<h3>Help</h3>
\t\t\t\t\t
\t\t\t<p>Databases should be specified like so:
\t\t\t<br>ie: <code>protocol://username:password@host/database?options</code>
\t\t\t<br>eg: <code>mysql://shimmie:pw123@localhost/shimmie?persist</code>
\t\t\t
\t\t\t<p>For more help with installation, visit
\t\t\t<a href="http://trac.shishnet.org/shimmie2/wiki/Guides/Admin/Install">the
\t\t\tdocumentation wiki</a>.
\t\t</div>
EOD;
}
Example #3
0
function ask_questions()
{
    // {{{
    $warnings = array();
    $errors = array();
    if (check_gd_version() == 0 && check_im_version() == 0) {
        $errors[] = "\n\t\t\tNo thumbnailers cound be found - install the imagemagick\n\t\t\ttools (or the PHP-GD library, of imagemagick is unavailable).\n\t\t";
    } else {
        if (check_im_version() == 0) {
            $warnings[] = "\n\t\t\tThe 'convert' command (from the imagemagick package)\n\t\t\tcould not be found - PHP-GD can be used instead, but\n\t\t\tthe size of thumbnails will be limited.\n\t\t";
        }
    }
    $drivers = PDO::getAvailableDrivers();
    if (!in_array("mysql", $drivers) && !in_array("pgsql", $drivers) && !in_array("sqlite", $drivers)) {
        $errors[] = "\n\t\t\tNo database connection library could be found; shimmie needs\n\t\t\tPDO with either Postgres, MySQL, or SQLite drivers\n\t\t";
    }
    $db_m = in_array("mysql", $drivers) ? '<option value="mysql">MySQL</option>' : "";
    $db_p = in_array("pgsql", $drivers) ? '<option value="pgsql">PostgreSQL</option>' : "";
    $db_s = in_array("sqlite", $drivers) ? '<option value="sqlite">SQLite</option>' : "";
    $warn_msg = $warnings ? "<h3>Warnings</h3>" . implode("\n<br>", $warnings) : "";
    $err_msg = $errors ? "<h3>Errors</h3>" . implode("\n<br>", $errors) : "";
    print <<<EOD
\t\t<div id="installer">
\t\t\t<h1>Shimmie Installer</h1>

\t\t\t{$warn_msg}
\t\t\t{$err_msg}

\t\t\t<h3>Database Install</h3>
\t\t\t<form action="install.php" method="POST">
\t\t\t\t<center>
\t\t\t\t\t<table class='form'>
\t\t\t\t\t\t<tr>
\t\t\t\t\t\t\t<th>Type:</th>
\t\t\t\t\t\t\t<td><select name="database_type" id="database_type" onchange="update_qs();">
\t\t\t\t\t\t\t\t{$db_m}
\t\t\t\t\t\t\t\t{$db_p}
\t\t\t\t\t\t\t\t{$db_s}
\t\t\t\t\t\t\t</select></td>
\t\t\t\t\t\t</tr>
\t\t\t\t\t\t<tr class="dbconf mysql pgsql">
\t\t\t\t\t\t\t<th>Host:</th>
\t\t\t\t\t\t\t<td><input type="text" name="database_host" size="40" value="localhost"></td>
\t\t\t\t\t\t</tr>
\t\t\t\t\t\t<tr class="dbconf mysql pgsql">
\t\t\t\t\t\t\t<th>Username:</th>
\t\t\t\t\t\t\t<td><input type="text" name="database_user" size="40"></td>
\t\t\t\t\t\t</tr>
\t\t\t\t\t\t<tr class="dbconf mysql pgsql">
\t\t\t\t\t\t\t<th>Password:</th>
\t\t\t\t\t\t\t<td><input type="password" name="database_password" size="40"></td>
\t\t\t\t\t\t</tr>
\t\t\t\t\t\t<tr class="dbconf mysql pgsql sqlite">
\t\t\t\t\t\t\t<th>DB&nbsp;Name:</th>
\t\t\t\t\t\t\t<td><input type="text" name="database_name" size="40" value="shimmie"></td>
\t\t\t\t\t\t</tr>
\t\t\t\t\t\t<tr><td colspan="2"><input type="submit" value="Go!"></td></tr>
\t\t\t\t\t</table>
\t\t\t\t</center>
\t\t\t\t<script>
\t\t\t\t\$(function() {
\t\t\t\t\tupdate_qs();
\t\t\t\t});
\t\t\t\tfunction update_qs() {
\t\t\t\t\t\$(".dbconf").hide();
\t\t\t\t\tvar seldb = \$("#database_type").val() || "none";
\t\t\t\t\t\$("."+seldb).show();
\t\t\t\t}
\t\t\t\t</script>
\t\t\t</form>

\t\t\t<h3>Help</h3>

\t\t\t<p class="dbconf mysql pgsql">
\t\t\t\tPlease make sure the database you have chosen exists and is empty.<br>
\t\t\t\tThe username provided must have access to create tables within the database.
\t\t\t</p>
\t\t\t<p class="dbconf sqlite">
\t\t\t\tFor SQLite the database name will be a filename on disk, relative to
\t\t\t\twhere shimmie was installed.
\t\t\t</p>
\t\t\t<p class="dbconf none">
\t\t\t\tDrivers can generally be downloaded with your OS package manager;
\t\t\t\tfor Debian / Ubuntu you want php5-pgsql, php5-mysql, or php5-sqlite.
\t\t\t</p>

\t\t</div>
EOD;
}
Example #4
0
function form_table($nextstage = WELCOME, $formaction = "install.php")
{
    global $INSTALL, $db;
    $enablenext = true;
    /// Print the standard form if we aren't in the DOWNLOADLANG page
    /// because it has its own form.
    if ($nextstage != DOWNLOADLANG) {
        $needtoopenform = false;
        ?>
        <form id="installform" method="post" action="<?php 
        echo $formaction;
        ?>
">
        <div><input type="hidden" name="stage" value="<?php 
        echo $nextstage;
        ?>
" /></div>

<?php 
    } else {
        $needtoopenform = true;
    }
    ?>
    <table class="install_table" cellspacing="3" cellpadding="3">

<?php 
    /// what we do depends on the stage we're at
    switch ($nextstage) {
        case WELCOME:
            /// Welcome and language settings
            ?>
            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('language');
            ?>
</p></td>
                <td class="td_right">
                <?php 
            choose_from_menu(get_installer_list_of_languages(), 'language', $INSTALL['language'], '');
            ?>
                </td>
            </tr>

<?php 
            break;
        case COMPATIBILITY:
            /// Compatibilty check
            $compatsuccess = true;
            /// Check that PHP is of a sufficient version
            print_compatibility_row(inst_check_php_version(), get_string('phpversion', 'install'), get_string('phpversionerror', 'install'), 'phpversionhelp');
            $enablenext = $enablenext && inst_check_php_version();
            /// Check session auto start
            print_compatibility_row(!ini_get_bool('session.auto_start'), get_string('sessionautostart', 'install'), get_string('sessionautostarterror', 'install'), 'sessionautostarthelp');
            $enablenext = $enablenext && !ini_get_bool('session.auto_start');
            /// Check magic quotes
            print_compatibility_row(!ini_get_bool('magic_quotes_runtime'), get_string('magicquotesruntime', 'install'), get_string('magicquotesruntimeerror', 'install'), 'magicquotesruntimehelp');
            $enablenext = $enablenext && !ini_get_bool('magic_quotes_runtime');
            /// Check unsupported PHP configuration
            print_compatibility_row(!ini_get_bool('register_globals'), get_string('globalsquotes', 'install'), get_string('globalswarning', 'install'));
            $enablenext = $enablenext && !ini_get_bool('register_globals');
            /// Check safe mode
            print_compatibility_row(!ini_get_bool('safe_mode'), get_string('safemode', 'install'), get_string('safemodeerror', 'install'), 'safemodehelp', true);
            /// Check file uploads
            print_compatibility_row(ini_get_bool('file_uploads'), get_string('fileuploads', 'install'), get_string('fileuploadserror', 'install'), 'fileuploadshelp', true);
            /// Check GD version
            print_compatibility_row(check_gd_version(), get_string('gdversion', 'install'), get_string('gdversionerror', 'install'), 'gdversionhelp', true);
            /// Check memory limit
            print_compatibility_row(check_memory_limit(), get_string('memorylimit', 'install'), get_string('memorylimiterror', 'install'), 'memorylimithelp', true);
            break;
        case DIRECTORY:
            /// Directory settings
            ?>

            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('wwwroot', 'install');
            ?>
</p></td>
                <td class="td_right">
                    <input type="text" size="40"name="wwwrootform" value="<?php 
            p($INSTALL['wwwrootform'], true);
            ?>
" />
                </td>
            </tr>
            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('dirroot', 'install');
            ?>
</p></td>
                <td class="td_right">
                    <input type="text" size="40" name="dirrootform" disabled="disabled" value="<?php 
            p($INSTALL['dirrootform'], true);
            ?>
" />
                </td>
            </tr>
            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('dataroot', 'install');
            ?>
</p></td>
                <td class="td_right">
                    <input type="text" size="40" name="dataroot" value="<?php 
            p($INSTALL['dataroot'], true);
            ?>
" />
                </td>
            </tr>

<?php 
            break;
        case DATABASE:
            /// Database settings
            ?>

            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('dbtype', 'install');
            ?>
</p></td>
                <td class="td_right">
                <?php 
            choose_from_menu(array('mysql' => get_string('mysql', 'install'), 'mysqli' => get_string('mysqli', 'install'), 'oci8po' => get_string('oci8po', 'install'), 'postgres7' => get_string('postgres7', 'install'), 'mssql' => get_string('mssql', 'install'), 'mssql_n' => get_string('mssql_n', 'install'), 'odbc_mssql' => get_string('odbc_mssql', 'install')), 'dbtype', $INSTALL['dbtype'], '', 'toggledbinfo();');
            ?>
                </td>
            </tr>
            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('dbhost', 'install');
            ?>
</p></td>
                <td class="td_right">
                    <input type="text" class="input_database" name="dbhost" value="<?php 
            p($INSTALL['dbhost']);
            ?>
" />
                </td>
            </tr>
            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('database', 'install');
            ?>
</p></td>
                <td class="td_right">
                    <input type="text" class="input_database" name="dbname" value="<?php 
            p($INSTALL['dbname']);
            ?>
" />
                </td>
            </tr>
            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('user');
            ?>
</p></td>
                <td class="td_right">
                    <input type="text" class="input_database" name="dbuser" value="<?php 
            p($INSTALL['dbuser']);
            ?>
" />
                </td>
            </tr>
            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('password');
            ?>
</p></td>
                <td class="td_right">
                    <input type="password" class="input_database" name="dbpass" value="<?php 
            p($INSTALL['dbpass']);
            ?>
" />
                </td>
            </tr>
            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('dbprefix', 'install');
            ?>
</p></td>
                <td class="td_right">
                    <input type="text" class="input_database" name="prefix" value="<?php 
            p($INSTALL['prefix']);
            ?>
" />
                </td>
            </tr>

<?php 
            break;
        case ADMIN:
            /// Administration directory setting
            ?>

            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('admindirname', 'install');
            ?>
</p></td>
                <td class="td_right">
                    <input type="text" size="40" name="admindirname" value="<?php 
            p($INSTALL['admindirname']);
            ?>
" />
                </td>
            </tr>


<?php 
            break;
        case ENVIRONMENT:
            /// Environment checks
            ?>

            <tr>
                <td colspan="2">
                <?php 
            error_reporting(0);
            // Hide errors
            $dbconnected = $db->Connect($INSTALL['dbhost'], $INSTALL['dbuser'], $INSTALL['dbpass'], $INSTALL['dbname']);
            error_reporting(7);
            // Show errors
            if ($dbconnected) {
                /// Execute environment check, printing results
                @remove_dir($INSTALL['dataroot'] . '/environment');
                /// Always delete downloaded env. info to force use of the released one. MDL-9796
                check_moodle_environment($INSTALL['release'], $environment_results, true);
            } else {
                /// We never should reach this because DB has been tested before arriving here
                $errormsg = get_string('dbconnectionerror', 'install');
                $nextstage = DATABASE;
                echo '<p class="errormsg" style="text-align:center">' . get_string('dbconnectionerror', 'install') . '</p>';
            }
            ?>
                </td>
            </tr>

<?php 
            break;
        case DOWNLOADLANG:
            /// Download language from download.moodle.org
            ?>

            <tr>
                <td colspan="2">
                <?php 
            /// Get array of languages, we are going to use it
            $languages = get_installer_list_of_languages();
            /// Print the download form (button) if necessary
            if ($INSTALL['showdownloadlangpack'] == true && substr($INSTALL['language'], 0, 2) != 'en') {
                $options = array();
                $options['downloadlangpack'] = true;
                $options['stage'] = DOWNLOADLANG;
                $options['same'] = true;
                print_simple_box_start('center');
                print_single_button('install.php', $options, get_string('downloadlanguagebutton', 'install', $languages[$INSTALL['language']]), 'post');
                print_simple_box_end();
            } else {
                /// Show result info
                /// English lang packs aren't downloaded
                if (substr($INSTALL['language'], 0, 2) == 'en') {
                    print_simple_box(get_string('downloadlanguagenotneeded', 'install', $languages[$INSTALL['language']]), 'center', '80%');
                } else {
                    if ($INSTALL['downloadlangpackerror']) {
                        echo "<p class=\"errormsg\" align=\"center\">" . $INSTALL['downloadlangpackerror'] . "</p>\n";
                        print_simple_box(get_string('langdownloaderror', 'install', $languages[$INSTALL['language']]), 'center', '80%');
                    } else {
                        print_simple_box(get_string('langdownloadok', 'install', $languages[$INSTALL['language']]), 'center', '80%');
                    }
                }
            }
            ?>
                </td>
            </tr>

<?php 
            break;
        default:
    }
    ?>

    <tr>
        <td colspan="<?php 
    echo $nextstage == COMPATIBILITY ? 3 : 2;
    ?>
">

<?php 
    if ($needtoopenform) {
        ?>
            <form id="installform" method="post" action="<?php 
        echo $formaction;
        ?>
">
            <div><input type="hidden" name="stage" value="<?php 
        echo $nextstage;
        ?>
" /></div>
<?php 
    }
    $disabled = $enablenext ? '' : 'disabled="disabled"';
    ?>

            <?php 
    echo $nextstage < SAVE ? "<div><input {$disabled} type=\"submit\" name=\"next\" value=\"" . get_string('next') . "  &raquo;\" style=\"float: " . fix_align_rtl("right") . "\"/></div>\n" : "&nbsp;\n";
    ?>
            <?php 
    echo $nextstage > WELCOME ? "<div><input type=\"submit\" name=\"prev\" value=\"&laquo;  " . get_string('previous') . "\" style=\"float: " . fix_align_rtl("left") . "\"/></div>\n" : "&nbsp;\n";
    ?>

<?php 
    if ($needtoopenform) {
        ?>
            </form>
<?php 
    }
    ?>


        </td>

    </tr>

    </table>
<?php 
    if (!$needtoopenform) {
        ?>
    </form>
<?php 
    }
    ?>

<?php 
}
Example #5
0
function form_table($nextstage = WELCOME, $formaction = "install.php")
{
    global $INSTALL, $db;
    $enablenext = true;
    /// Print the standard form
    $needtoopenform = false;
    ?>
    <form id="installform" method="post" action="<?php 
    echo $formaction;
    ?>
">
    <div><input type="hidden" name="stage" value="<?php 
    echo $nextstage;
    ?>
" /></div>

    <table class="install_table" cellspacing="3" cellpadding="3">

<?php 
    /// what we do depends on the stage we're at
    switch ($nextstage) {
        case WELCOME:
            /// Language settings
            ?>
            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('language');
            ?>
</p></td>
                <td class="td_right">
                <?php 
            choose_from_menu(get_installer_list_of_languages(), 'language', $INSTALL['language'], '', 'this.form.submit();');
            ?>
                </td>
            </tr>

<?php 
            if (file_exists('install/versions.php')) {
                include_once 'install/versions.php';
                echo '<tr><td colspan="2">';
                include_once 'install/welcome.html';
                echo '</td></tr>';
            }
            break;
        case COMPATIBILITY:
            /// Compatibilty check
            $compatsuccess = true;
            /// Check that PHP is of a sufficient version
            print_compatibility_row(inst_check_php_version(), get_string('phpversion', 'install'), get_string('phpversionerror', 'install'), 'phpversionhelp');
            $enablenext = $enablenext && inst_check_php_version();
            /// Check session auto start
            print_compatibility_row(!ini_get_bool('session.auto_start'), get_string('sessionautostart', 'install'), get_string('sessionautostarterror', 'install'), 'sessionautostarthelp');
            $enablenext = $enablenext && !ini_get_bool('session.auto_start');
            /// Check magic quotes
            print_compatibility_row(!ini_get_bool('magic_quotes_runtime'), get_string('magicquotesruntime', 'install'), get_string('magicquotesruntimeerror', 'install'), 'magicquotesruntimehelp');
            $enablenext = $enablenext && !ini_get_bool('magic_quotes_runtime');
            /// Check unsupported PHP configuration
            print_compatibility_row(!ini_get_bool('register_globals'), get_string('globalsquotes', 'install'), get_string('globalswarning', 'install'));
            $enablenext = $enablenext && !ini_get_bool('register_globals');
            /// Check safe mode
            print_compatibility_row(!ini_get_bool('safe_mode'), get_string('safemode', 'install'), get_string('safemodeerror', 'install'), 'safemodehelp', true);
            /// Check file uploads
            print_compatibility_row(ini_get_bool('file_uploads'), get_string('fileuploads', 'install'), get_string('fileuploadserror', 'install'), 'fileuploadshelp', true);
            /// Check GD version
            print_compatibility_row(check_gd_version(), get_string('gdversion', 'install'), get_string('gdversionerror', 'install'), 'gdversionhelp', true);
            /// Check memory limit
            print_compatibility_row(check_memory_limit(), get_string('memorylimit', 'install'), get_string('memorylimiterror', 'install'), 'memorylimithelp', true);
            break;
        case DIRECTORY:
            /// Directory settings
            ?>
            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('wwwroot', 'install');
            ?>
</p></td>
                <td class="td_right">
                    <input type="text" size="40" name="wwwrootform" value="<?php 
            p($INSTALL['wwwrootform'], true);
            ?>
" />
                </td>
            </tr>
            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('dirroot', 'install');
            ?>
</p></td>
                <td class="td_right">
                    <input type="text" size="40" name="dirrootform" disabled="disabled" value="<?php 
            p($INSTALL['dirrootform'], true);
            ?>
" />
                </td>
            </tr>
            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('dataroot', 'install');
            ?>
</p></td>
                <td class="td_right">
                    <input type="text" size="40" name="dataroot" value="<?php 
            p($INSTALL['dataroot'], true);
            ?>
" />
                </td>
            </tr>

<?php 
            break;
        case DATABASE:
            /// Database settings
            ?>

            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('dbtype', 'install');
            ?>
</p></td>
                <td class="td_right"><input type="hidden" class="input_database" name="dbtype" value="mysql" />mysql</td>
            </tr>
            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('dbhost', 'install');
            ?>
</p></td>
                <td class="td_right">
                    <input type="text" class="input_database" name="dbhost" value="<?php 
            p($INSTALL['dbhost']);
            ?>
" />
                </td>
            </tr>
            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('database', 'install');
            ?>
</p></td>
                <td class="td_right">
                    <input type="text" class="input_database" name="dbname" value="<?php 
            p($INSTALL['dbname']);
            ?>
" />
                </td>
            </tr>
            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('user');
            ?>
</p></td>
                <td class="td_right">
                    <input type="text" class="input_database" name="dbuser" value="<?php 
            p($INSTALL['dbuser']);
            ?>
" />
                </td>
            </tr>
            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('password');
            ?>
</p></td>
                <td class="td_right">
                    <input type="password" class="input_database" name="dbpass" value="<?php 
            p($INSTALL['dbpass']);
            ?>
" />
                </td>
            </tr>
            <tr>
                <td class="td_left"><p class="p_install"><?php 
            print_string('dbprefix', 'install');
            ?>
</p></td>
                <td class="td_right">
                    <input type="text" class="input_database" name="prefix" value="<?php 
            p($INSTALL['prefix']);
            ?>
" />
                </td>
            </tr>

<?php 
            break;
        default:
    }
    ?>

    <tr>
        <td colspan="<?php 
    echo $nextstage == COMPATIBILITY ? '3' : '2';
    ?>
">

<?php 
    if ($needtoopenform) {
        ?>
            <form id="installform" method="post" action="<?php 
        echo $formaction;
        ?>
">
            <div><input type="hidden" name="stage" value="<?php 
        echo $nextstage;
        ?>
" /></div>
<?php 
    }
    $disabled = $enablenext ? '' : 'disabled="disabled"';
    ?>
            <?php 
    echo $nextstage < SAVE ? "<div><input {$disabled} type=\"submit\" name=\"next\" value=\"" . get_string('next') . "  &raquo;\" style=\"float: " . fix_align_rtl("right") . "\"/></div>\n" : "&nbsp;\n";
    ?>
            <?php 
    echo $nextstage > WELCOME ? "<div><input type=\"submit\" name=\"prev\" value=\"&laquo;  " . get_string('previous') . "\" style=\"float: " . fix_align_rtl("left") . "\"/></div>\n" : "&nbsp;\n";
    ?>

<?php 
    if ($needtoopenform) {
        ?>
            </form>
<?php 
    }
    ?>

        </td>

    </tr>

    </table>
<?php 
    if (!$needtoopenform) {
        ?>
    </form>
<?php 
    }
    ?>

<?php 
}
Example #6
0
function begin()
{
    // {{{
    $err = "";
    $thumberr = "";
    $dberr = "";
    if (check_gd_version() == 0 && check_im_version() == 0) {
        $thumberr = "<p>PHP's GD extension seems to be missing, " . "and imagemagick's \"convert\" command cannot be found - " . "no thumbnailing engines are available.";
    }
    if (!function_exists("mysql_connect")) {
        $dberr = "<p>PHP's MySQL extension seems to be missing; you may " . "be able to use an unofficial alternative, checking " . "for libraries...";
        if (!function_exists("pg_connect")) {
            $dberr .= "<br>PgSQL is missing";
        } else {
            $dberr .= "<br>PgSQL is available";
        }
        if (!function_exists("sqlite_open")) {
            $dberr .= "<br>SQLite is missing";
        } else {
            $dberr .= "<br>SQLite is available";
        }
    }
    if ($thumberr || $dberr) {
        $err = "<h3>Error</h3>";
    }
    print <<<EOD
\t\t<div id="iblock">
\t\t\t<h1>Shimmie Installer</h1>

\t\t\t{$err}
\t\t\t{$thumberr}
\t\t\t{$dberr}

\t\t\t<h3>Database Install</h3>
\t\t\t<form action="install.php" method="POST">
\t\t\t\t<center>
\t\t\t\t\t<table>
\t\t\t\t\t\t<tr>
\t\t\t\t\t\t\t<td>Type:</td>
\t\t\t\t\t\t\t<td><select name="database_type">
\t\t\t\t\t\t\t\t<option value="mysql" selected>MySQL</option>
\t\t\t\t\t\t\t\t<option value="pgsql">PostgreSQL</option>
\t\t\t\t\t\t\t\t<option value="sqlite">SQLite</option>
\t\t\t\t\t\t\t</td>
\t\t\t\t\t\t</tr>
\t\t\t\t\t\t<tr>
\t\t\t\t\t\t\t<td>Host:</td>
\t\t\t\t\t\t\t<td><input type="text" name="database_host" size="40" value="localhost"></td>
\t\t\t\t\t\t</tr>
\t\t\t\t\t\t<tr>
\t\t\t\t\t\t\t<td>Username:</td>
\t\t\t\t\t\t\t<td><input type="text" name="database_user" size="40"></td>
\t\t\t\t\t\t</tr>
\t\t\t\t\t\t<tr>
\t\t\t\t\t\t\t<td>Password:</td>
\t\t\t\t\t\t\t<td><input type="password" name="database_password" size="40"></td>
\t\t\t\t\t\t</tr>
\t\t\t\t\t\t<tr>
\t\t\t\t\t\t\t<td>Name:</td>
\t\t\t\t\t\t\t<td><input type="text" name="database_name" size="40" value="shimmie"></td>
\t\t\t\t\t\t</tr>
\t\t\t\t\t\t<tr><td colspan="2"><center><input type="submit" value="Go!"></center></td></tr>
\t\t\t\t\t</table>
\t\t\t\t</center>
\t\t\t</form>

\t\t\t<h3>Help</h3>
\t\t\t\t\t
\t\t\t<p>Please make sure the database you have chosen exists and is empty.<br>
\t\t\tThe username provided must have access to create tables within the database.
\t\t\t
\t\t</div>
EOD;
}
 /**
  * Create a thumbnail from image.
  *
  * @param string $srcimage Full path to image.
  * @param string $destimage Full path to destination dir.
  * @return bool
  */
 function make_thumbnail($srcimage, $destimage)
 {
     $orig = getimagesize($srcimage);
     $width = $orig[0];
     $height = $orig[1];
     $ratio = $width / $height;
     $maxwidth = 80;
     $maxheight = 80;
     if ($width > $maxwidth) {
         $width = $maxwidth;
         $height = round($width / $ratio);
     }
     if ($height > $maxheight) {
         $height = $maxheight;
         $width = round($height * $ratio);
     }
     if (!$this->resize_image($srcimage, $destimage, $width, $height)) {
         return false;
     }
     // Create a dropshadow if requested.
     if ($this->module->shadow) {
         if ($thumb = $this->read_image_from_file($destimage, $orig[2])) {
             $newimage = check_gd_version() > 1 ? imagecreatetruecolor($width + 4, $height + 4) : imagecreate($width + 4, $height + 4);
             $white = imagecolorallocate($newimage, 255, 255, 255);
             $shadow = imagecolorallocate($newimage, 128, 128, 128);
             imagefill($newimage, 0, 0, $white);
             imagefilledrectangle($newimage, 2, 2, $width + 2, $height + 2, $shadow);
             if (function_exists('imagefilter')) {
                 // Call it twice to get nice blur effect.
                 if (function_exists('imagefilter')) {
                     imagefilter($newimage, IMG_FILTER_GAUSSIAN_BLUR);
                     imagefilter($newimage, IMG_FILTER_GAUSSIAN_BLUR);
                 }
             }
             imagecopy($newimage, $thumb, 0, 0, 0, 0, $width, $height);
             $this->write_image_to_file($newimage, $destimage, $orig[2]);
         }
     }
     return true;
 }
Example #8
0
     console_write("\n", '', false);
 }
 /// Check that PHP is of a sufficient version
 check_compatibility(inst_check_php_version(), get_string('phpversion', 'install'), get_string('php52versionerror', 'install'), false, $silent);
 /// Check session auto start
 check_compatibility(!ini_get_bool('session.auto_start'), get_string('sessionautostart', 'install'), get_string('sessionautostarterror', 'install'), false, $silent);
 /// Check magic quotes
 check_compatibility(!ini_get_bool('magic_quotes_runtime'), get_string('magicquotesruntime', 'install'), get_string('magicquotesruntimeerror', 'install'), false, $silent);
 /// Check unsupported PHP configuration
 check_compatibility(ini_get_bool('register_globals'), get_string('globalsquotes', 'install'), get_string('globalswarning', 'install'), false, $silent);
 /// Check safe mode
 check_compatibility(!ini_get_bool('safe_mode'), get_string('safemode', 'install'), get_string('safemodeerror', 'install'), true, $silent);
 /// Check file uploads
 check_compatibility(ini_get_bool('file_uploads'), get_string('fileuploads', 'install'), get_string('fileuploadserror', 'install'), true, $silent);
 /// Check GD version
 check_compatibility(check_gd_version(), get_string('gdversion', 'install'), get_string('gdversionerror', 'install'), true, $silent);
 /// Check memory limit
 check_compatibility(check_memory_limit(), get_string('memorylimit', 'install'), get_string('memorylimiterror', 'install'), true, $silent);
 //================================================================================//
 // Moodle directories and web address
 if ($interactive == CLI_FULL || $interactive == CLI_SEMI && (!isset($INSTALL['dirroot']) || !isset($INSTALL['wwwroot']) || !isset($INSTALL['dataroot']))) {
     console_write("\n", '', false);
     console_write("\n", '', false);
     console_write('locationanddirectories', 'install');
     console_write("\n", '', false);
     console_write("\n", '', false);
 }
 //input the web directory
 if ($interactive == CLI_FULL || $interactive == CLI_SEMI && !isset($INSTALL['dirroot'])) {
     console_write('inputwebdirectory', 'install');
     //if directories validation lib is found change this to read_dir() and
function gd_resize_image($image, $newimage, $newwidth, $newheight)
{
    global $CFG;
    if (filesize($image) < 250000) {
        return false;
    }
    // no need to resize
    $gdversion = check_gd_version();
    if ($gdversion < 1) {
        return false;
    }
    $size = getimagesize($image);
    $width = $size[0];
    $height = $size[1];
    $type = $size[2];
    if ($im = read_image_from_file($image, $type)) {
        if ($newheight && $width < $height) {
            $newwidth = $newheight / $height * $width;
        } else {
            $newheight = $newwidth / $width * $height;
        }
        echo get_string('originaldimentions', 'files', '', $CFG->dirroot . '/files/lang/') . ": " . get_string('width', 'files', '', $CFG->dirroot . '/files/lang/') . " = {$width} , " . get_string('height', 'files', '', $CFG->dirroot . '/files/lang/') . " = {$height} \n";
        echo get_string('newdimentions', 'files', '', $CFG->dirroot . '/files/lang/') . ": " . get_string('width', 'files', '', $CFG->dirroot . '/files/lang/') . " = {$newwidth} , " . get_string('height', 'files', '', $CFG->dirroot . '/files/lang/') . " = {$newheight} \n";
        if ($gdversion > 1) {
            $im2 = ImageCreateTrueColor($newwidth, $newheight);
        } else {
            $im2 = ImageCreate($newwidth, $newheight);
        }
        if ($gdversion > 1) {
            ImageCopyResampled($im2, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
        } else {
            ImageCopyResized($im2, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
        }
        echo get_string('originalsize', 'files', '', $CFG->dirroot . '/files/lang/') . " = " . filesize($image) . " \n";
        clearstatcache();
        unlink($image);
        // delete image before overwrite
        if (write_image_to_file($im2, $newimage, $type)) {
            echo get_string('newsize', 'files', '', $CFG->dirroot . '/files/lang/') . " = " . filesize($newimage) . " \n";
            return true;
        }
    }
    return false;
}
Example #10
0
<?php

// This file defines settingpages and externalpages under the "server" category

if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page


// "systempaths" settingpage
$temp = new admin_settingpage('systempaths', get_string('systempaths','admin'));
$temp->add(new admin_setting_configselect('gdversion', get_string('gdversion','admin'), get_string('configgdversion', 'admin'), check_gd_version(), array('0' => get_string('gdnot'),
                                                                                                                                                          '1' => get_string('gd1'),
                                                                                                                                                          '2' => get_string('gd2'))));
$temp->add(new admin_setting_configexecutable('pathtodu', get_string('pathtodu', 'admin'), get_string('configpathtodu', 'admin'), ''));
$temp->add(new admin_setting_configexecutable('aspellpath', get_string('aspellpath', 'admin'), get_string('edhelpaspellpath'), ''));
$temp->add(new admin_setting_configexecutable('pathtodot', get_string('pathtodot', 'admin'), get_string('pathtodot_help', 'admin'), ''));
$ADMIN->add('server', $temp);



// "email" settingpage
$temp = new admin_settingpage('mail', get_string('mail','admin'));
$temp->add(new admin_setting_configtext('smtphosts', get_string('smtphosts', 'admin'), get_string('configsmtphosts', 'admin'), '', PARAM_RAW));
$temp->add(new admin_setting_configtext('smtpuser', get_string('smtpuser', 'admin'), get_string('configsmtpuser', 'admin'), '', PARAM_NOTAGS));
$temp->add(new admin_setting_configpasswordunmask('smtppass', get_string('smtppass', 'admin'), get_string('configsmtpuser', 'admin'), ''));
$temp->add(new admin_setting_configtext('smtpmaxbulk', get_string('smtpmaxbulk', 'admin'), get_string('configsmtpmaxbulk', 'admin'), 1, PARAM_INT));
$temp->add(new admin_setting_configtext('noreplyaddress', get_string('noreplyaddress', 'admin'), get_string('confignoreplyaddress', 'admin'), 'noreply@' . get_host_from_url($CFG->wwwroot), PARAM_NOTAGS));
$temp->add(new admin_setting_configselect('digestmailtime', get_string('digestmailtime', 'admin'), get_string('configdigestmailtime', 'admin'), 17, array('00' => '00',
                                                                                                                                                          '01' => '01',
                                                                                                                                                          '02' => '02',
                                                                                                                                                          '03' => '03',
                                                                                                                                                          '04' => '04',