package IkiWiki;
+sub printheader ($) { #{{{
+ my $session=shift;
+
+ if ($config{sslcookie}) {
+ print $session->header(-charset => 'utf-8',
+ -cookie => $session->cookie(-secure => 1));
+ } else {
+ print $session->header(-charset => 'utf-8');
+ }
+
+} #}}}
+
sub redirect ($$) { #{{{
my $q=shift;
my $url=shift;
eval q{use Memoize};
memoize("htmllink");
+ eval q{use Time::Duration};
+ eval q{use CGI 'escapeHTML'};
+
+ my $changelog=[rcs_recentchanges(100)];
+ foreach my $change (@$changelog) {
+ $change->{when} = concise(ago($change->{when}));
+ $change->{user} = htmllink("", "", escapeHTML($change->{user}), 1);
+ $change->{pages} = [
+ map {
+ $_->{link} = htmllink("", "", $_->{page}, 1);
+ $_;
+ } @{$change->{pages}}
+ ];
+ }
+
my $template=template("recentchanges.tmpl");
$template->param(
title => "RecentChanges",
indexlink => indexlink(),
wikiname => $config{wikiname},
- changelog => [rcs_recentchanges(100)],
- styleurl => styleurl(),
- baseurl => "$config{url}/",
+ changelog => $changelog,
+ baseurl => baseurl(),
);
- print $q->header(-charset=>'utf-8'), $template->output;
+ print $q->header(-charset => 'utf-8'), $template->output;
} #}}}
sub cgi_signin ($$) { #{{{
header => 0,
template => (-e "$config{templatedir}/signin.tmpl" ?
{template_params("signin.tmpl")} : ""),
- stylesheet => styleurl(),
+ stylesheet => baseurl()."style.css",
);
decode_form_utf8($form);
$form->field(name => "confirm_password", type => "hidden");
$form->field(name => "email", type => "hidden");
$form->text("Registration successful. Now you can Login.");
- print $session->header(-charset=>'utf-8');
+ printheader($session);
print misctemplate($form->title, $form->render(submit => ["Login"]));
}
else {
$form->text("Your password has been emailed to you.");
$form->field(name => "name", required => 0);
- print $session->header(-charset=>'utf-8');
+ printheader($session);
print misctemplate($form->title, $form->render(submit => ["Login", "Register", "Mail Password"]));
}
}
else {
- print $session->header(-charset=>'utf-8');
+ printheader($session);
print misctemplate($form->title, $form->render(submit => ["Login", "Register", "Mail Password"]));
}
} #}}}
action => $config{cgiurl},
template => (-e "$config{templatedir}/prefs.tmpl" ?
{template_params("prefs.tmpl")} : ""),
- stylesheet => styleurl(),
+ stylesheet => baseurl()."style.css",
);
my @buttons=("Save Preferences", "Logout", "Cancel");
$form->text("Preferences saved.");
}
- print $session->header(-charset=>'utf-8');
+ printheader($session);
print misctemplate($form->title, $form->render(submit => \@buttons));
} #}}}
$form->tmpl_param("indexlink", indexlink());
$form->tmpl_param("helponformattinglink",
htmllink("", "", "HelpOnFormatting", 1));
- $form->tmpl_param("styleurl", styleurl());
- $form->tmpl_param("baseurl", "$config{url}/");
+ $form->tmpl_param("baseurl", baseurl());
if (! $form->submitted) {
$form->field(name => "rcsinfo", value => rcs_prepedit($file),
force => 1);
value => $content, force => 1);
$form->field(name => "comments",
value => $comments, force => 1);
+ $config{rss}=0; # avoid preview writing an rss feed!
$form->tmpl_param("page_preview",
- htmlize($type, linkify($page, $page, filter($page, $content))));
+ htmlize($page, $type,
+ linkify($page, "",
+ preprocess($page, $page,
+ filter($page, $content)))));
}
else {
$form->tmpl_param("page_preview", "");
umask($oldmask);
# Everything below this point needs the user to be signed in.
- if ((! $config{anonok} &&
+ if (((! $config{anonok} || $do eq 'prefs') &&
(! defined $session->param("name") ||
! userinfo_get($session->param("name"), "regdate"))) || $do eq 'signin') {
cgi_signin($q, $session);
cgi_prefs($q, $session);
}
elsif ($do eq 'blog') {
- my $page=titlepage($q->param('title'));
+ my $page=titlepage(decode_utf8($q->param('title')));
# if the page already exists, munge it to be unique
my $from=$q->param('from');
my $add="";