}
} #}}}
-sub cgi_editpage ($$) { #{{{
+sub cgi_editpage ($$;$) { #{{{
my $q=shift;
my $session=shift;
+ my $blogpost=shift;
my @fields=qw(do rcsinfo subpage from page type editcontent comments
newfile);
# characters.
my ($page)=$form->field('page');
$page=titlepage(possibly_foolish_untaint($page));
+ if ($blogpost) {
+ $page=~s/(\/)/"__".ord($1)."__"/eg;
+ }
if (! defined $page || ! length $page || file_pruned($page, $config{srcdir}) || $page=~/^\//) {
error("bad page name");
}
value => $content, force => 1);
$form->field(name => "comments",
value => $comments, force => 1);
- $config{rss}=$config{atom}=0; # avoid preview writing a feed!
$form->tmpl_param("page_preview",
htmlize($page, $type,
linkify($page, "",
preprocess($page, $page,
- filter($page, $content)))));
+ filter($page, $content), 0, 1))));
}
else {
$form->tmpl_param("page_preview", "");
$form->tmpl_param("page_select", 1);
$form->field(name => "page", type => 'select',
- options => { map { $_ => pagetitle($_, 1) } @editable_locs },
- value => $best_loc);
+ options => [ map { pagetitle($_, 1) } @editable_locs ],
+ value => pagetitle($best_loc, 1));
$form->field(name => "type", type => 'select',
options => \@page_types);
$form->title(sprintf(gettext("creating %s"), pagetitle($page)));
cgi_editpage($q, $session);
}
elsif ($do eq 'blog') {
- my $page=titlepage(decode_utf8($q->param('title')));
- $page=~s/(\/)/"__".ord($1)."__"/eg; # escape slashes too
+ my $page=decode_utf8($q->param('title'));
# if the page already exists, munge it to be unique
my $from=$q->param('from');
my $add="";
$add++;
}
$q->param('page', $page.$add);
- # now run same as create
+ # now run same as create, except escape slashes too
$q->param('do', 'create');
- cgi_editpage($q, $session);
+ cgi_editpage($q, $session, 1);
}
elsif ($do eq 'postsignin') {
error(gettext("login failed, perhaps you need to turn on cookies?"));