*/
void display_wiki_page_backend(char *pagename, char *rev, int do_revert)
{
+ wcsession *WCC = WC;
const StrBuf *Mime;
long msgnum = (-1L);
char buf[256];
- str_wiki_index(pagename);
-
- if (WC->CurRoom.view != VIEW_WIKI) {
- wc_printf(_("'%s' is not a Wiki room."), ChrPtr(WC->CurRoom.name) );
+ if ((WCC->CurRoom.view != VIEW_WIKI) &&
+ (WCC->CurRoom.view != VIEW_WIKIMD)) {
+ wc_printf(_("'%s' is not a Wiki room."), ChrPtr(WCC->CurRoom.name) );
return;
}
strcpy(pagename, "home");
}
- /* Found it! Now read it. */
+ str_wiki_index(pagename); /* convert index name to lowercase and numeric only */
if ((rev != NULL) && (strlen(rev) > 0)) {
/* read an older revision */
}
}
else {
- /* read the current revision? */
+ /* read the current revision */
msgnum = locate_message_by_uid(pagename);
}
if (msgnum >= 0L) {
- read_message(WC->WBuf, HKEY("view_message"), msgnum, NULL, &Mime);
+ read_message(WCC->WBuf, HKEY("view_message"), msgnum, NULL, &Mime);
return;
}
wc_printf("</td>");
if (row == 0) {
- wc_printf("<td><a href=\"wiki?page=%s\">%s</a></td>",
- bstr("page"),
- _("(show)")
- );
+ wc_printf("<td><a href=\"wiki?page=%s", bstr("page"));
+ wc_printf("?go="); urlescputs(ChrPtr(WC->CurRoom.name));
+ wc_printf("\">%s</a></td>", _("(show)"));
wc_printf("<td>(%s)</td>", _("Current version"));
}
else {
- wc_printf("<td><a href=\"wiki?page=%s?rev=%s\">%s</a></td>",
+ wc_printf("<td><a href=\"wiki?page=%s?rev=%s",
bstr("page"),
- ChrPtr(rev_uuid),
- _("(show)")
+ ChrPtr(rev_uuid)
);
+ wc_printf("?go="); urlescputs(ChrPtr(WC->CurRoom.name));
+ wc_printf("\">%s</a></td>", _("(show)"));
wc_printf("<td><a href=\"javascript:GetLoggedInFirst(encodeURIComponent('wiki?page=%s?rev=%s?revert=1'))\">%s</a></td>",
bstr("page"),
ChrPtr(rev_uuid),
wiki_Cleanup
);
+ RegisterReadLoopHandlerset(
+ VIEW_WIKIMD,
+ wiki_GetParamsGetServerCall,
+ wiki_PrintHeaderPage,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ wiki_Cleanup
+ );
+
WebcitAddUrlHandler(HKEY("wiki"), "", 0, display_wiki_page, 0);
WebcitAddUrlHandler(HKEY("wiki_history"), "", 0, display_wiki_history, 0);
WebcitAddUrlHandler(HKEY("wiki_pagelist"), "", 0, display_wiki_pagelist, 0);
RegisterNamespace("WIKI:DISPLAYHISTORY", 0, 0, tmplput_display_wiki_history, NULL, CTX_NONE);
RegisterNamespace("WIKI:DISPLAYPAGELIST", 0, 0, tmplput_display_wiki_pagelist, NULL, CTX_NONE);
- RegisterConditional(HKEY("COND:WIKI:PAGE"), 1, ConditionalHaveWikiPage, CTX_NONE);
- RegisterConditional(HKEY("COND:WIKI:TYPE"), 1, ConditionalHavewikiType, CTX_NONE);
+ RegisterConditional("COND:WIKI:PAGE", 1, ConditionalHaveWikiPage, CTX_NONE);
+ RegisterConditional("COND:WIKI:TYPE", 1, ConditionalHavewikiType, CTX_NONE);
}