index.php 8.4 KB
Newer Older
moodler's avatar
moodler committed
1
2
<?PHP  // $Id$
       // index.php - the front page.
3

4
5
6
7
8
9
    if (!file_exists('./config.php')) {
        header('Location: install.php');
        die;
    }

/// Bounds for block widths on this page
defacer's avatar
defacer committed
10
11
12
13
14
    define('BLOCK_L_MIN_WIDTH', 160);
    define('BLOCK_L_MAX_WIDTH', 210);
    define('BLOCK_R_MIN_WIDTH', 160);
    define('BLOCK_R_MAX_WIDTH', 210);

15
    require_once('config.php');
moodler's avatar
moodler committed
16
17
18
19
    require_once($CFG->dirroot.'/course/lib.php');
    require_once($CFG->dirroot.'/lib/blocklib.php');
    require_once($CFG->dirroot.'/mod/resource/lib.php');
    require_once($CFG->dirroot.'/mod/forum/lib.php');
martin's avatar
martin committed
20

21
22
23
24
    optional_param('blockaction');
    optional_param('instanceid', 0, PARAM_INT);
    optional_param('blockid',    0, PARAM_INT);

25
    if (! $site = get_site()) {
moodler's avatar
moodler committed
26
        redirect("$CFG->wwwroot/$CFG->admin/index.php");
martin's avatar
martin committed
27
28
    }

29
30
31
32
    if ($CFG->forcelogin) {
        require_login();
    }

33
34
    if (isadmin()) {
        if (moodle_needs_upgrading()) {
moodler's avatar
moodler committed
35
            redirect("$CFG->wwwroot/$CFG->admin/index.php");
36
        }
37
38
39
    }

    if (empty($USER->id)) {
40
41
42
43
44
        if (empty($CFG->loginhttps)) {
            $wwwroot = $CFG->wwwroot;
        } else {
            $wwwroot = str_replace('http','https',$CFG->wwwroot);
        }
gustav_delius's avatar
gustav_delius committed
45
        $loginstring = "<font size=\"2\"><a href=\"$wwwroot/login/index.php\">".get_string("login")."</a></font>";
46
    } else {
gustav_delius's avatar
gustav_delius committed
47
        $loginstring = "<font size=\"1\">".user_login_string($site)."</font>";
martin's avatar
martin committed
48
    }
49

50
51
52
53
54
    if (empty($CFG->langmenu)) {
        $langmenu = "";
    } else {
        $currlang = current_language();
        $langs = get_list_of_languages();
55
        $langmenu = popup_form ("$CFG->wwwroot/index.php?lang=", $langs, "chooselang", $currlang, "", "", "", true);
56
    }
57

moodler's avatar
moodler committed
58
    print_header(strip_tags($site->fullname), "$site->fullname", "home", "",
gustav_delius's avatar
gustav_delius committed
59
                 "<meta name=\"description\" content=\"".s(strip_tags($site->summary))."\" />",
60
                 true, "", "$loginstring$langmenu");
martin's avatar
martin committed
61

62
63
    $editing = isediting($site->id);

64
65
66
    $page = new stdClass;
    $page->id   = SITEID;
    $page->type = MOODLE_PAGE_COURSE;
67

68
    $pageblocks = blocks_get_by_page($page);
moodler's avatar
moodler committed
69

70
    if($editing) {
71
72
73
74
        if (!empty($blockaction) && confirm_sesskey()) {
            if (!empty($blockid)) {
                blocks_execute_action($page, $pageblocks, strtolower($blockaction), intval($blockid));
                
75
            }
76
77
78
            else if (!empty($instanceid)) {
                $instance = blocks_find_instance($instanceid, $pageblocks);
                blocks_execute_action($page, $pageblocks, strtolower($blockaction), $instance);
79
            }
80
81
82
            // This re-query could be eliminated by judicious programming in blocks_execute_action(),
            // but I 'm not sure if it's worth the complexity increase...
            $pageblocks = blocks_get_by_page($page);
83
        }
moodler's avatar
moodler committed
84

85
        $missingblocks = blocks_get_missing($page, $pageblocks);
86
    }
moodler's avatar
moodler committed
87

88
89
    optional_variable($preferred_width_left,  blocks_preferred_width($pageblocks[BLOCK_POS_LEFT]));
    optional_variable($preferred_width_right, blocks_preferred_width($pageblocks[BLOCK_POS_RIGHT]));
defacer's avatar
defacer committed
90
91
92
93
94
    $preferred_width_left = min($preferred_width_left, BLOCK_L_MAX_WIDTH);
    $preferred_width_left = max($preferred_width_left, BLOCK_L_MIN_WIDTH);
    $preferred_width_right = min($preferred_width_right, BLOCK_R_MAX_WIDTH);
    $preferred_width_right = max($preferred_width_right, BLOCK_R_MIN_WIDTH);

martin's avatar
martin committed
95
96
?>

97

98
99
<table width="100%" border="0" cellspacing="5" cellpadding="5">
  <tr>
100
101
  <?PHP

102
    if(blocks_have_content($pageblocks[BLOCK_POS_LEFT]) || $editing) {
103
        echo '<td style="vertical-align: top; width: '.$preferred_width_left.'px;">';
104
        blocks_print_group($page, $pageblocks[BLOCK_POS_LEFT]);
105
106
107
108
        echo '</td>';
    }

    echo '<td style="vertical-align: top;">';
109
110
111
112
    
    
/// Print Section
    if ($site->numsections > 0) {
moodler's avatar
moodler committed
113
        print_simple_box_start('center', '100%', $THEME->cellcontent, 5, 'sitetopic');
114
115
116
117
    
        /// If currently moving a file then show the current clipboard
        if (ismoving($site->id)) {
            $stractivityclipboard = strip_tags(get_string("activityclipboard", "", addslashes($USER->activitycopyname)));
gustav_delius's avatar
gustav_delius committed
118
            echo "<p><font size=\"2\">";
moodler's avatar
moodler committed
119
            echo "$stractivityclipboard&nbsp;&nbsp;(<a href=\"course/mod.php?cancelcopy=true\">".get_string("cancel")."</a>)";
120
121
122
123
            echo "</font></p>";
        }


moodler's avatar
moodler committed
124
125
126
127
128
129
130
131
        if (!$section = get_record('course_sections', 'course', $site->id, 'section', 1)) {
            delete_records('course_sections', 'course', $site->id, 'section', 1); // Just in case
            $section->course = $site->id;
            $section->section = 1;
            $section->summary = '';
            $section->visible = 1;
            $section->id = insert_record('course_sections', $section);
        }
132

moodler's avatar
moodler committed
133
        echo format_text($section->summary, FORMAT_HTML);
134
135

        if ($editing) {
moodler's avatar
moodler committed
136
            $streditsummary = get_string('editsummary');
137
            echo "<a title=\"$streditsummary\" ".
moodler's avatar
moodler committed
138
                 " href=\"course/editsection.php?id=$section->id\"><img src=\"$CFG->pixpath/t/edit.gif\" ".
139
                 " height=\"11\" width=\"11\" border=\"0\" alt=\"$streditsummary\" /></a><br /><br />";
140
141
        }

moodler's avatar
moodler committed
142
143
        get_all_mods($site->id, $mods, $modnames, $modnamesplural, $modnamesused);
        print_section($site, $section, $mods, $modnamesused, true);
144
145

        if ($editing) {
146
            print_section_add_menus($site, $section->section, $modnames);
147
        }
moodler's avatar
moodler committed
148
149
        print_simple_box_end();
        print_spacer(10);
150
151
    }

152
153
154
155
156
157
158
159
160
161
162
163
164
    switch ($CFG->frontpage) {     /// Display the main part of the front page.
        case FRONTPAGENEWS:
            if (! $newsforum = forum_get_course_forum($site->id, "news")) {
                error("Could not find or create a main news forum for the site");
            }

            if (isset($USER->id)) {
                $SESSION->fromdiscussion = "$CFG->wwwroot";
                if (forum_is_subscribed($USER->id, $newsforum->id)) {
                    $subtext = get_string("unsubscribe", "forum");
                } else {
                    $subtext = get_string("subscribe", "forum");
                }
gustav_delius's avatar
gustav_delius committed
165
                $headertext = "<table border=\"0\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" class=\"headingblockcontent\"><tr>
166
                               <td>$newsforum->name</td>
gustav_delius's avatar
gustav_delius committed
167
                               <td align=\"right\"><font size=\"1\">
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
                               <a href=\"mod/forum/subscribe.php?id=$newsforum->id\">$subtext</a>
                               </td></tr></table>";
            } else {
                $headertext = $newsforum->name;
            }
            print_heading_block($headertext);
            print_spacer(8,1);
            forum_print_latest_discussions($newsforum->id, $site->newsitems);
        break;

        case FRONTPAGECOURSELIST:
        case FRONTPAGECATEGORYNAMES:
            if (isset($USER->id) and !isset($USER->admin)) {
                print_heading_block(get_string("mycourses"));
                print_spacer(8,1);
                print_my_moodle();
            } else {
                if (count_records("course_categories") > 1) {
                    if ($CFG->frontpage == FRONTPAGECOURSELIST) {
                        print_heading_block(get_string("availablecourses"));
                    } else {
                        print_heading_block(get_string("categories"));
                    }
                    print_spacer(8,1);
                    print_simple_box_start("center", "100%");
                    print_whole_category_list();
                    print_simple_box_end();
                    print_course_search("", false, "short");
                } else {
                    print_heading_block(get_string("availablecourses"));
                    print_spacer(8,1);
                    print_courses(0, "100%");
                }
            }
        break;

    }

    echo '</td>';
207
208
209
210


    // The right column
    if(blocks_have_content($pageblocks[BLOCK_POS_RIGHT]) || $editing || isadmin()) {
211
212
213
214
215
        echo '<td style="vertical-align: top; width: '.$preferred_width_right.'px;">';
        if (isadmin()) {
            echo '<div align="center">'.update_course_icon($site->id).'</div>';
            echo '<br />';
        }
216
        blocks_print_group($page, $pageblocks[BLOCK_POS_RIGHT]);
217
        if ($editing && !empty($missingblocks)) {
218
            blocks_print_adminblock($page, $missingblocks);
219
220
221
222
        }
        echo '</td>';
    }
?>
223

224
225
  </tr>
</table>
martin's avatar
martin committed
226

227
<?PHP print_footer('home');     // Please do not modify this line ?>