File Coverage

blib/lib/Toader/Templates/Defaults.pm
Criterion Covered Total %
statement 9 129 6.9
branch 0 14 0.0
condition n/a
subroutine 3 7 42.8
pod 4 4 100.0
total 16 154 10.3


line stmt bran cond sub pod time code
1             package Toader::Templates::Defaults;
2              
3 6     6   20846 use warnings;
  6         9  
  6         193  
4 6     6   29 use strict;
  6         11  
  6         138  
5 6     6   31 use base 'Error::Helper';
  6         9  
  6         8602  
6              
7             =head1 NAME
8              
9             Toader::Templates::Defaults - This provides the default templates for Toader.
10              
11             =head1 VERSION
12              
13             Version 0.3.0
14              
15             =cut
16              
17             our $VERSION = '0.3.0';
18              
19             =head1 SYNOPSIS
20              
21             use Toader::Templates::Defaults;
22              
23             #initiates the object
24             my $foo = Toader::Templates::Defaults->new;
25            
26             #fetches the css template
27             my $template=$foo->getPage('css');
28             if ( $foo->error ){
29             warn('Error:'.$foo->error.': '.$foo->errorString);
30             }
31              
32             =head1 METHODS
33              
34             =head2 new
35              
36             This initiates the object.
37              
38             This method does not error.
39              
40             my $foo=Toader::Template::Defaults->new;
41              
42             =cut
43              
44             sub new{
45 0     0 1   my %args;
46 0 0         if(defined($_[1])){
47 0           %args= %{$_[1]};
  0            
48             };
49              
50 0           my $self={
51             error=>undef,
52             errorString=>'',
53             templates=>{},
54             errorExtra=>{
55             flags=>{
56             1=>'noTemplateNameSpecified',
57             2=>'noSuchTemplate',
58             },
59             },
60             };
61 0           bless $self;
62              
63 0           $self->{templates}{'link'}='[== $text ==]';
64 0           $self->{templates}{'linkDirectory'}='[== $text ==]';
65 0           $self->{templates}{'linkEntry'}='[== $text ==]';
66 0           $self->{templates}{'linkPage'}='[== $text ==]';
67 0           $self->{templates}{'linkFile'}='[== $text ==]';
68 0           $self->{templates}{'linkDirectoryFile'}='[== $text ==]';
69 0           $self->{templates}{'linkEntryFile'}='[== $text ==]';
70 0           $self->{templates}{'linkPageFile'}='[== $text ==]';
71 0           $self->{templates}{'entriesLink'}='[== $text ==]';
72 0           $self->{templates}{'entriesArchiveLink'}='[== $text ==]';
73 0           $self->{templates}{'upOneDirLink'}='[== $text ==]';
74 0           $self->{templates}{'dirListLink'}='[== $text ==]';
75 0           $self->{templates}{'pageListLink'}='[== $text ==]';
76 0           $self->{templates}{'authorLink'}='[== $name ==]';
77 0           $self->{templates}{'pageSummaryLink'}='[== $text ==]';
78 0           $self->{templates}{'toRootLink'}='[== $text ==]';
79 0           $self->{templates}{'autodocLink'}='[== $text ==]';
80 0           $self->{templates}{'linkAutoDocList'}='[== $text ==]';
81 0           $self->{templates}{'linkGallery'}='[== $text ==]';
82              
83 0           $self->{templates}{'dirListBegin'}='';
84 0           $self->{templates}{'dirListEnd'}='';
85 0           $self->{templates}{'dirListJoin'}='
'."\n";
86 0           $self->{templates}{'dirListEnd'}='
'."\n";
87              
88 0           $self->{templates}{'pageListBegin'}='';
89 0           $self->{templates}{'pageListJoin'}='
'."\n";
90 0           $self->{templates}{'pageListEnd'}='
'."\n";
91              
92 0           $self->{templates}{'entryListBegin'}='';
93 0           $self->{templates}{'entryListJoin'}='
'."\n";
94 0           $self->{templates}{'entryListEnd'}='
'."\n";
95              
96 0           $self->{templates}{'authorBegin'}='';
97 0           $self->{templates}{'authorEnd'}='';
98 0           $self->{templates}{'authorJoin'}=", \n";
99 0           $self->{templates}{'authorEnd'}="\n";
100              
101 0           $self->{templates}{'cssInclude'}='';
102 0           $self->{templates}{'css'}='div{
103             border: 0px solid;
104             padding: 2px;
105             width: 100%;
106             }
107             div#sidebar{
108             width: auto;
109             float: left;
110             border: 1px solid;
111             }
112             div#content{
113             width: auto;
114             float: none;
115             }
116             div#location{
117             width: 100%;
118             border: 1px solid;
119             }
120             div#header{
121             width: 100%;
122             border: 1px solid;
123             }
124             div#content{
125             width: 100%;
126             border: 1px solid;
127             }
128             div#imageDiv{
129             border: 1px solid;
130             float: left;
131             }
132             div#copyright{
133             width: auto;
134             text-align: center;
135             clear: left;
136             }
137             body{
138             background: black;
139             color: white;
140             }
141             a:link{
142             color: grey;
143             }
144             a:visited{
145             color: lightgreen;
146             }
147             a:hover{
148             color: green;
149             }
150             table#entryArchive{
151             border: 1px solid;
152             }
153             td#entryArchive{
154             border: 1px solid;
155             }
156             table#pageSummary{
157             border: 1px solid;
158             }
159             td#pageSummary{
160             border: 1px solid;
161             }
162             table#hashToTable{
163             border: 1px solid;
164             }
165             td#hashToTable{
166             border: 1px solid;
167             }
168             tr#hashToTable{
169             border: 1px solid;
170             }
171             ';
172              
173 0           $self->{templates}{'page'}='
174            
175              
176            
177             [== $c->{_}->{siteTitle} ==]
178            
179            
180              
181            
182              
183            
184             [== $g->top ==]
185            
186              
187            
188             [== $g->locationbar( $locationID ) ==]
189             [== $g->locationSub ==]
190            
191              
192            
193              
194            
195             [== $g->sidebar; ==]
196            
197              
198            
199             [== $content ==]
200            
201              
202            
203            
204            


205              
206             [== $g->copyright ==]
207              
208            
209            
210              
211             ';
212              
213 0           $self->{templates}{'copyright'}='
214             [==
215             my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
216             $year=$year+1900;
217             return "Copyright ".$year." ".$c->{_}->{owner};
218             ==]
219            
220             ';
221              
222 0           $self->{templates}{'sidebar'}='[==
223             if ( ! $g->hasEntries ){
224             return "";
225             }
226             return "

Entries

\n".
227             " ".$g->entriesLink."
\n".
228             " ".$g->entriesArchiveLink."
\n";
229             ==]
230             [==
231             my $pages=$g->listPages;
232             if ( ( ! defined( $pages ) ) || ( $pages eq "" ) ){
233             return "";
234             }
235             return "

".$g->pageSummaryLink."

\n".$pages."\n
\n";
236             ==]
237             [==
238             if( $g->hasGallery ){
239             return "
\n

".$g->galleryLink."

";
240             }else{
241             return "";
242             }
243             ==]
244             [==
245             if( $g->hasAnyDirs ){
246             return "
\n

Directories

";
247             }else{
248             return "";
249             }
250             ==]
251             [==
252             if ( $g->atRoot ){
253             return "";
254             }
255             return $g->rlink("Go To The Root")."
\n ".
256             $g->upOneDirLink."
\n
";
257             ==]
258              
259             [==
260             if ( $g->hasSubDirs ){
261             return $g->listDirs;
262             }
263             return "";
264             ==]
265             [==
266             if ( $g->hasDocs ){
267             return "
".$g->adListLink;
268             }
269             return "";
270             ==]
271             ';
272              
273 0           $self->{templates}{'pageGallery'}='
274            
275              
276            
277             [== $c->{_}->{siteTitle} ==]
278            
279            
280              
281            
282              
283            
284             [== $g->top ==]
285            
286              
287            
288             [== $g->locationbar( $locationID ) ==]
289             [== $g->locationSub ==]
290            
291              
292            
293              
294            
295             [== $content ==]
296            
297            
298            


299            
300            
301             [==
302             my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
303             $year=$year+1900;
304             return "Copyright ".$year." ".$c->{_}->{owner};
305             ==]
306            
307              
308            
309            
310              
311             ';
312              
313 0           $self->{templates}{'dirContent'}='[== $body ==]';
314              
315              
316 0           $self->{templates}{'pageContent'}='[== $body ==]';
317              
318 0           $self->{templates}{'entryContent'}='
319            

[== $g->elink( $g->or2r, $date, $title ) ==]

320             Date: [== $year.$month.$day."-".$hour.":".$min ==]
321             Author: [== $g->authorsLink( $from ) ==]
322            
323             [== $body ==]
324            
325            
326             ';
327              
328 0           $self->{templates}{'entryIndex'}='[== $g->lastEntries( $c->{_}->{last} ) ==]';
329              
330 0           $self->{templates}{'entryArchive'}='[== $g->entryArchive ==]';
331 0           $self->{templates}{'entryArchiveBegin'}='
332            
Date Title Summary
333             ';
334 0           $self->{templates}{'entryArchiveRow'}='
335             [== $g->elink( "./", $date, $date ) ==]
336             [== $title ==]
337             [== $summary ==]
338            
339             ';
340 0           $self->{templates}{'entryArchiveJoin'}='';
341 0           $self->{templates}{'entryArchiveEnd'}='
';
342              
343 0           $self->{templates}{'pageSummary'}='[== $g->pageSummary ==]';
344              
345 0           $self->{templates}{'pageSummaryBegin'}='
346            
Name Summary
347             ';
348 0           $self->{templates}{'pageSummaryRow'}='
349             [== $name ==]
350             [== $summary ==]
351            
352             ';
353 0           $self->{templates}{'pageSummaryJoin'}='';
354 0           $self->{templates}{'pageSummaryEnd'}='
';
355              
356 0           $self->{templates}{'locationStart'}='

Location: ';

357 0           $self->{templates}{'locationPart'}='[== $text ==] / ';
358 0           $self->{templates}{'locationEnd'}='[== $locationID ==]
359             ';
360              
361 0           $self->{templates}{'top'}='

[== $c->{_}->{site} ==]


';
362              
363 0           $self->{templates}{'autodocContent'}='[== $g->autodocList ==]';
364 0           $self->{templates}{'autodocListBegin'}='
365            
File
366             ';
367 0           $self->{templates}{'autodocListRow'}='
368             [== $g->adlink( $dir, $file ) ==]
369            
370             ';
371 0           $self->{templates}{'autodocListJoin'}='';
372 0           $self->{templates}{'autodocListEnd'}='
';
373              
374 0           $self->{templates}{'hashToTableBegin'}='
375             ';
376 0           $self->{templates}{'hashToTableTitle'}='
377             [== $keyTitle ==]
378             [== $valueTitle ==]
379            
380             ';
381 0           $self->{templates}{'hashToTableRow'}='
382             [== $key ==]
383             [== $value ==]
384            
385             ';
386              
387 0           $self->{templates}{'hashToTableJoin'}='';
388 0           $self->{templates}{'hashToTableEnd'}='
';
389              
390 0           $self->{templates}{'imageDiv'}='
391             [== $above ==]
392             [== if ( defined( $link ) ){ return \'\' }else{ return \'\' } ==]
393             [== $alt ==]
394             [== if ( defined( $link ) ){ return \'\' }else{ return \'\' } ==]
395             [== $below ==]
396            
397             ';
398              
399 0           $self->{templates}{'gallerySmallImageBegin'}='';
400 0           $self->{templates}{'gallerySmallImage'}='[== $g->galleryImageSmall( $dir, $gdir, $image ); ==]';
401 0           $self->{templates}{'galleryDir'}='
[== $link ==]
';
402 0           $self->{templates}{'gallerySmallImageJoin'}="\n";
403 0           $self->{templates}{'gallerySmallImageEnd'}='';
404              
405 0           $self->{templates}{'galleryLocationStart'}='

Gallery Location: ';

406 0           $self->{templates}{'galleryLocationPart'}='[== $text ==]';
407 0           $self->{templates}{'galleryLocationJoin'}=' / ';
408 0           $self->{templates}{'galleryLocationEnd'}='
409             ';
410 0           $self->{templates}{'galleryLocationImage'}='

Image: [== $image ==]

411             ';
412              
413            
414 0           $self->{templates}{'imageExifTablesGroup'}='
415             EXIF Tag Group: [== $group ==]
416             [== $table ==]
417            
418             ';
419 0           $self->{templates}{'imageExifTablesJoin'}='';
420 0           $self->{templates}{'imageExifTablesBegin'}='';
421 0           $self->{templates}{'imageExifTablesEnd'}='';
422 0           $self->{templates}{'imageExifTables'}='Image: [== $filename ==]
423             [== $tables ==]
424             ';
425              
426 0           return $self;
427             }
428              
429             =head2 exists
430              
431             This checks if the specified template exists as a default template.
432              
433             One argument is required and that is the template name to check for.
434             This method will only throw a error if it is left undefined.
435              
436             The return value is a Perl boolean value.
437              
438             my $exists=$foo->exists($template);
439              
440             =cut
441              
442             sub exists{
443 0     0 1   my $self=$_[0];
444 0           my $name=$_[1];
445              
446 0 0         if ( ! $self->errorblank ){
447 0           $self->{error}=1;
448 0           $self->{errorString}='No template specified';
449 0           $self->warn;
450 0           return undef;
451             }
452              
453 0 0         if ( defined( $self->{templates}{$name} ) ){
454 0           return 1;
455             }
456              
457 0           return 0;
458             }
459              
460             =head2 getTemplate
461              
462             This returns a default template.
463              
464             One argument is required and it is the template name.
465              
466             There is no need to do error checking, if one is certian
467             the template exists.
468              
469             my $template=$foo->getTemplate( $name );
470             if ( $foo->error ){
471             warn( 'Error:'.$foo->error.': '.$foo->errorString );
472             }
473              
474             =cut
475              
476             sub getTemplate{
477 0     0 1   my $self=$_[0];
478 0           my $name=$_[1];
479              
480 0 0         if ( ! $self->errorblank ){
481 0           return undef;
482             }
483              
484 0 0         if ( ! defined( $name ) ){
485 0           $self->{error}=1;
486 0           $self->{errorString}='No template specified';
487 0           $self->warn;
488 0           return undef;
489             }
490              
491 0 0         if ( ! defined( $self->{templates}{$name} ) ){
492 0           $self->{error}=2;
493 0           $self->{errorString}='"'.$name.'" is not a default template';
494 0           $self->warn;
495 0           return undef;
496             }
497              
498 0           return $self->{templates}{$name};
499             }
500              
501             =head2 listTemplates
502              
503             This returns a list of default templates.
504              
505             No arguments are taken.
506              
507             my @defTemplates=$foo->listTemplates;
508              
509             =cut
510              
511             sub listTemplates{
512 0     0 1   my $self=$_[0];
513              
514 0 0         if ( ! $self->errorblank ){
515 0           return undef;
516             }
517              
518 0           return keys( %{ $self->{templates} } );
  0            
519             }
520              
521             =head1 ERROR CODES/FLAGS
522              
523             =head2 1, noTemplateNameSpecified
524              
525             No template name specified.
526              
527             =head2 2, noSuchTemplate
528              
529             No such template.
530              
531             =head1 AUTHOR
532              
533             Zane C. Bowers-Hadley, C<< >>
534              
535             =head1 BUGS
536              
537             Please report any bugs or feature requests to C, or through
538             the web interface at L. I will be notified, and then you'll
539             automatically be notified of progress on your bug as I make changes.
540              
541             =head1 SUPPORT
542              
543             You can find documentation for this module with the perldoc command.
544              
545             perldoc Toader::Templates::Defaults
546              
547              
548             You can also look for information at:
549              
550             =over 4
551              
552             =item * RT: CPAN's request tracker
553              
554             L
555              
556             =item * AnnoCPAN: Annotated CPAN documentation
557              
558             L
559              
560             =item * CPAN Ratings
561              
562             L
563              
564             =item * Search CPAN
565              
566             L
567              
568             =back
569              
570              
571             =head1 ACKNOWLEDGEMENTS
572              
573              
574             =head1 LICENSE AND COPYRIGHT
575              
576             Copyright 2013 Zane C. Bowers-Hadley.
577              
578             This program is free software; you can redistribute it and/or modify it
579             under the terms of either: the GNU General Public License as published
580             by the Free Software Foundation; or the Artistic License.
581              
582             See http://dev.perl.org/licenses/ for more information.
583              
584              
585             =cut
586              
587             1; # End of Toader