-} # }}}
-
-sub getsetup () { #{{{
- return
- plugin => {
- safe => 1,
- rebuild => 1,
- },
- # Pages where comments are shown, but new comments are not
- # allowed, will show "Comments are closed".
- comments_shown_pagespec => {
- type => 'pagespec',
- example => 'blog/*',
- default => '',
- description => 'PageSpec for pages where comments will be shown inline',
- link => 'ikiwiki/PageSpec',
- safe => 1,
- rebuild => 1,
- },
- comments_open_pagespec => {
- type => 'pagespec',
- example => 'blog/* and created_after(close_old_comments)',
- default => '',
- description => 'PageSpec for pages where new comments can be posted',
- link => 'ikiwiki/PageSpec',
- safe => 1,
- rebuild => 1,
- },
- comments_pagename => {
- type => 'string',
- example => 'comment_',
- default => 'comment_',
- description => 'Base name for comments, e.g. "comment_" for pages like "sandbox/comment_12"',
- safe => 0, # manual page moving will required
- rebuild => undef,
- },
- comments_allowdirectives => {
- type => 'boolean',
- default => 0,
- example => 0,
- description => 'Allow directives in newly posted comments?',
- safe => 1,
- rebuild => 0,
- },
- comments_commit => {
- type => 'boolean',
- example => 1,
- default => 1,
- description => 'commit comments to the VCS',
- # old uncommitted comments are likely to cause
- # confusion if this is changed
- safe => 0,
- rebuild => 0,
- },
-} #}}}
-
-sub checkconfig () { #{{{
- $config{comments_commit} = 1 unless defined $config{comments_commit};
- $config{comments_pagename} = 'comment_'
- unless defined $config{comments_pagename};
-} #}}}
-
-# FIXME: logic taken from editpage, should be common code?
-sub getcgiuser ($) { # {{{
- my $session = shift;
- my $user = $session->param('name');
- $user = $ENV{REMOTE_ADDR} unless defined $user;
- debug("getcgiuser() -> $user");
- return $user;
-} # }}}
-
-# This is exactly the same as recentchanges_link :-(
-sub linkcgi ($) { #{{{
- my $cgi=shift;
- if (defined $cgi->param('do') && $cgi->param('do') eq "commenter") {
-
- my $page=decode_utf8($cgi->param("page"));
- if (!defined $page) {
- error("missing page parameter");
- }
-
- IkiWiki::loadindex();
-
- my $link=bestlink("", $page);
- if (! length $link) {
- print "Content-type: text/html\n\n";
- print IkiWiki::misctemplate(gettext(gettext("missing page")),
- "<p>".
- sprintf(gettext("The page %s does not exist."),
- htmllink("", "", $page)).
- "</p>");
- }
- else {
- IkiWiki::redirect($cgi, urlto($link, undef, 1));
- }
-
- exit;
- }