| blib/lib/CGI/Wiki/Simple/NoTemplates.pm | |||
|---|---|---|---|
| Criterion | Covered | Total | % |
| statement | 6 | 6 | 100.0 |
| branch | n/a | ||
| condition | n/a | ||
| subroutine | 2 | 2 | 100.0 |
| pod | n/a | ||
| total | 8 | 8 | 100.0 |
| line | stmt | bran | cond | sub | pod | time | code | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | package CGI::Wiki::Simple::NoTemplates; | |||||||||||||||
| 2 | 3 | 3 | 7802 | use strict; | ||||||||||||
| 3 | 6 | |||||||||||||||
| 3 | 125 | |||||||||||||||
| 3 | 3 | 3 | 16 | use base 'CGI::Wiki::Simple'; | ||||||||||||
| 3 | 5 | |||||||||||||||
| 3 | 864 | |||||||||||||||
| 4 | ||||||||||||||||
| 5 | use vars qw($VERSION); | |||||||||||||||
| 6 | $VERSION = 0.09; | |||||||||||||||
| 7 | ||||||||||||||||
| 8 | =head1 NAME | |||||||||||||||
| 9 | ||||||||||||||||
| 10 | CGI::Wiki::Simple::NoTemplates - A simple wiki without templates | |||||||||||||||
| 11 | ||||||||||||||||
| 12 | =head1 DESCRIPTION | |||||||||||||||
| 13 | ||||||||||||||||
| 14 | This is an instant wiki. | |||||||||||||||
| 15 | ||||||||||||||||
| 16 | =head1 SYNOPSIS | |||||||||||||||
| 17 | ||||||||||||||||
| 18 | It might be the case that you don't want to use HTML::Template, | |||||||||||||||
| 19 | and in fact, no templates at all. Then you can simple use the | |||||||||||||||
| 20 | following example as your wiki, which does not rely on | |||||||||||||||
| 21 | HTML::Template to prepare the content : | |||||||||||||||
| 22 | ||||||||||||||||
| 23 | =for example begin | |||||||||||||||
| 24 | ||||||||||||||||
| 25 | use strict; | |||||||||||||||
| 26 | use CGI::Wiki::Simple::NoTemplates; | |||||||||||||||
| 27 | use CGI::Wiki::Store::MySQL; # Change this to match your setup | |||||||||||||||
| 28 | ||||||||||||||||
| 29 | my $store = CGI::Wiki::Store::MySQL->new( dbname => "test", | |||||||||||||||
| 30 | dbuser => "master", | |||||||||||||||
| 31 | dbpass => "master" ); | |||||||||||||||
| 32 | ||||||||||||||||
| 33 | ||||||||||||||||
| 34 | my $search = undef; | |||||||||||||||
| 35 | my $wiki = CGI::Wiki::Simple::NoTemplates | |||||||||||||||
| 36 | ->new( PARAMS => { | |||||||||||||||
| 37 | store => $store, | |||||||||||||||
| 38 | })->run; | |||||||||||||||
| 39 | ||||||||||||||||
| 40 | =for example end | |||||||||||||||
| 41 | ||||||||||||||||
| 42 | =cut | |||||||||||||||
| 43 | ||||||||||||||||
| 44 | sub make_edit_form { | |||||||||||||||
| 45 | my ($self,$raw_content,%actions) = @_; | |||||||||||||||
| 46 | ||||||||||||||||
| 47 | my ($url_title) = $self->param("url_node_title"); | |||||||||||||||
| 48 | #my $prefix = $self->query->script_name; | |||||||||||||||
| 49 | ||||||||||||||||
| 50 | return " | |||||||||||||||
| 52 | . " | |||||||||||||||
| 53 | . HTML::Entities::encode_entities($raw_content) | |||||||||||||||
| 54 | . " " |
|||||||||||||||
| 55 | . $self->actions(node=>$url_title,%actions) | |||||||||||||||
| 56 | . ""; | |||||||||||||||
| 57 | }; | |||||||||||||||
| 58 | ||||||||||||||||
| 59 | sub make_header { | |||||||||||||||
| 60 | my ($self,$version) = @_; | |||||||||||||||
| 61 | $self->header_props( -title => $self->param("node_title"), -content_type => "text/html" ); | |||||||||||||||
| 62 | ||||||||||||||||
| 63 | if ($version) { | |||||||||||||||
| 64 | $version = " (v $version)" | |||||||||||||||
| 65 | } else { | |||||||||||||||
| 66 | $version = ""; | |||||||||||||||
| 67 | }; | |||||||||||||||
| 68 | ||||||||||||||||
| 69 | return | |||||||||||||||
| 70 | " |
|||||||||||||||
| 71 | . "
"; |
|||||||||||||||
| 73 | }; | |||||||||||||||
| 74 | ||||||||||||||||
| 75 | sub make_footer { | |||||||||||||||
| 76 | my ($self) = @_; | |||||||||||||||
| 77 | ||||||||||||||||
| 78 | my $template = $self->load_tmpl("footer.templ", die_on_bad_params => 0 ); | |||||||||||||||
| 79 | return $self->param("cgi_wiki_simple_footer"), | |||||||||||||||
| 80 | }; | |||||||||||||||
| 81 | ||||||||||||||||
| 82 | sub make_checksum { | |||||||||||||||
| 83 | my ($self) = @_; | |||||||||||||||
| 84 | return ""; | |||||||||||||||
| 85 | }; | |||||||||||||||
| 86 | ||||||||||||||||
| 87 | sub actions { | |||||||||||||||
| 88 | my ($self,%args) = @_; | |||||||||||||||
| 89 | #my $node = $self->param("url_node_title"); | |||||||||||||||
| 90 | my $node = $self->param("node_title"); | |||||||||||||||
| 91 | my $checksum = $self->make_checksum(); | |||||||||||||||
| 92 | ||||||||||||||||
| 93 | my $prefix = $self->query->script_name; | |||||||||||||||
| 94 | ||||||||||||||||
| 95 | my @result; | |||||||||||||||
| 96 | ||||||||||||||||
| 97 | # First, make the "display" link | |||||||||||||||
| 98 | if (delete $args{display}) { | |||||||||||||||
| 99 | push @result, $self->inside_link( node => $node, mode => 'display', title => 'display' ); | |||||||||||||||
| 100 | #push @result, "display"; | |||||||||||||||
| 101 | }; | |||||||||||||||
| 102 | ||||||||||||||||
| 103 | # and then the "preview" link | |||||||||||||||
| 104 | if (delete $args{preview}) { | |||||||||||||||
| 105 | push @result, $self->inside_link( node => $node, mode => 'preview', title => 'preview' ); | |||||||||||||||
| 106 | #push @result, "edit"; | |||||||||||||||
| 107 | }; | |||||||||||||||
| 108 | ||||||||||||||||
| 109 | # and then the "save" link | |||||||||||||||
| 110 | if (delete $args{commit}) { | |||||||||||||||
| 111 | push @result, "$checksum"; | |||||||||||||||
| 112 | }; | |||||||||||||||
| 113 | ||||||||||||||||
| 114 | # Further actions will have to go here | |||||||||||||||
| 115 | ||||||||||||||||
| 116 | join " | ", @result; | |||||||||||||||
| 117 | }; | |||||||||||||||
| 118 | ||||||||||||||||
| 119 | sub render_display { | |||||||||||||||
| 120 | my ($self) = @_; | |||||||||||||||
| 121 | my $node = $self->param("node_title"); | |||||||||||||||
| 122 | my $html_node_title = $self->param("html_node_title"); | |||||||||||||||
| 123 | return $self->make_header() | |||||||||||||||
| 124 | . $self->param('content') | |||||||||||||||
| 125 | . " " |
|||||||||||||||
| 126 | . $self->actions( preview => 1, node => $html_node_title ) | |||||||||||||||
| 127 | . $self->param("cgi_wiki_simple_footer"), | |||||||||||||||
| 128 | . ""; | |||||||||||||||
| 129 | }; | |||||||||||||||
| 130 | ||||||||||||||||
| 131 | sub render_editform { | |||||||||||||||
| 132 | my ($self) = @_; | |||||||||||||||
| 133 | return $self->make_header() | |||||||||||||||
| 134 | . $self->param("content") | |||||||||||||||
| 135 | . " " |
|||||||||||||||
| 136 | . $self->make_edit_form($self->param("raw"),commit=>1,display=>1 ) | |||||||||||||||
| 137 | . $self->param("cgi_wiki_simple_footer") | |||||||||||||||
| 138 | . " |