{
char roomname[128];
char pagename[128];
+ char errmsg[256];
+ long msgnum = (-1L);
safestrncpy(roomname, bstr("room"), sizeof roomname);
safestrncpy(pagename, bstr("page"), sizeof pagename);
str_wiki_index(pagename);
- wprintf("roomname=%s<br>pagename=%s<br>\n", roomname, pagename);
-
- if (strcasecmp(roomname, WC->roomname)) {
+ /* If we're not in the correct room, try going there. */
+ if (strcasecmp(roomname, WC->wc_roomname)) {
gotoroom(roomname);
}
- if (strcasecmp(roomname, WC->roomname)) {
- /* can't find the room */
- convenience_page(char *titlebarcolor, char *titlebarmsg, char *messagetext);
+ /* If we're still not in the correct room, it doesn't exist. */
+ if (strcasecmp(roomname, WC->wc_roomname)) {
+ snprintf(errmsg, sizeof errmsg,
+ _("There is no room called '%s'."),
+ roomname);
+ convenience_page("FF0000", _("Error"), errmsg);
+ return;
+ }
+
+ if (WC->wc_view != VIEW_WIKI) {
+ snprintf(errmsg, sizeof errmsg,
+ _("'%s' is not a Wiki room."),
+ roomname);
+ convenience_page("FF0000", _("Error"), errmsg);
+ return;
+ }
+
+ if (strlen(pagename) == 0) {
+ strcpy(pagename, "home");
+ }
+
+ /* Found it! Now read it. */
+ msgnum = locate_message_by_uid(pagename);
+ if (msgnum >= 0L) {
+ output_headers(1, 1, 1, 0, 0, 0);
+ read_message(msgnum, 0, "");
+ wDumpContent(1);
+ return;
}
output_headers(1, 1, 1, 0, 0, 0);
+ wprintf("<br /><br />"
+ "<div align=\"center\">"
+ "<table border=\"0\" bgcolor=\"#ffffff\" cellpadding=\"10\">"
+ "<tr><td align=\"center\">"
+ );
+ wprintf("<br><b>");
+ wprintf(_("There is no page called '%s' here."), pagename);
+ wprintf("</b><br><br>");
+ wprintf("<a href=\"display_enter?wikipage=%s\">", pagename);
+ wprintf(_("Click here if you would like to create this page."));
+ wprintf("</a>");
+ wprintf("<br><br>");
+ wprintf("</td></tr></table></div>\n");
wDumpContent(1);
}