use strict;
use Carp;
use POSIX qw/getcwd strftime/;
+use HTTP::Date;
use CGI qw/:html *table *Tr *td *center *div *Link/;
use Image::Info qw/image_info dim/;
use Term::ReadLine;
-depth=>$parent->{-depth}+1,
-base=>$name,
-fullpath=>$parent->{-fullpath}.'/'.$name,
- -relpath=>$parent->{-relpath}.'/'.$name,
+ -relpath=>$parent->{-relpath}.$name.'/',
-inc=>'../'.$parent->{-inc},
};
} else {
}
my $relpath = substr($fullpath,$pos);
$relpath =~ s%^/%%;
+ $relpath .= '/' if ($relpath);
$self->{-relpath} = $relpath;
$self->{-toppath} = substr($fullpath,0,$pos);
#print "rel=$relpath, top=$self->{-toppath}, inc=$inc\n";
sub initrss {
my $self=shift; # this is not a method but we cheat
my $fullpath=$self->{-fullpath};
+ my $toppath=$self->{-toppath};
my $inc=$self->{-inc}.$incdir.'/';
- my $conffile=$inc.'rss.conf';
+ my $conffile=$toppath.'/'.$incdir.'/rss.conf';
my $CONF;
if ($rssfile) {
}
$rssobj->{'rss'}->save($rssobj->{'file'});
} else {
- my $link="";
- for (my $pos=index($rssfile,'/');$pos>=0;
- $pos=index($rssfile,'/',$pos+1)) {
+ my $link;
+ my $p1;
+ my $p2;
+ for ($p1=0,$p2=length($toppath);
+ substr($rssfile,$p1,3) eq '../' && $p2>0;
+ $p1+=3,$p2=rindex($toppath,'/',$p2-1)) {;}
+ $link=substr($toppath,$p2);
+ $link =~ s%^/%%;
+ $link .= '/' if ($link);
+ while (($p1=index($rssfile,'/',$p1+1)) >= 0) {
$link = '../'.$link;
}
my $inc = $self->{-inc}.$incdir.'/';
my $title = $self->{-title};
my $rsslink="";
- if ($self->{-rss}) {
+ if ($rssobj) {
$rsslink=Link({-rel=>'alternate',
-type=>'application/rss+xml',
-title=>'RSS',
- -href=>$self->{-rss}});
+ -href=>$self->{-inc}.$rssfile});
}
print $IND start_html(-title => $title,
-encoding=>"utf-8",
-id => 'indexContainer'}),
"\n";
my $EVL;
- if (open($EVL,$inc.'header.pl')) {
+ if (open($EVL,$self->{-toppath}.'/'.$incdir.'/header.pl')) {
my $prm;
while (<$EVL>) {
$prm .= $_;
print $IND end_div;
my $EVL;
- if (open($EVL,$self->{-inc}.$incdir.'/footer.pl')) {
+ if (open($EVL,$self->{-toppath}.'/'.$incdir.'/footer.pl')) {
my $prm;
while (<$EVL>) {
$prm .= $_;
$self->{-numofimgs},
$self->{-numofsubs};
my $rsslink=$rssobj->{'rss'}->channel('link').
- $self->{-relpath}."/index.html";
+ $self->{-relpath}."index.html";
$rssobj->{'rss'}->add_item(
title => $self->{-title},
link => $rsslink,
description => $rsstitle,
+ pubDate => time2str(time),
);
}
}