From: Eugene Crosser Date: Thu, 4 Sep 2008 16:39:46 +0000 (+0000) Subject: work in progress on rss generation X-Git-Tag: 2.00~8 X-Git-Url: http://www.average.org/gitweb/?p=mkgallery.git;a=commitdiff_plain;h=a4459ef8c416655779d060838622932d26cded1b work in progress on rss generation --- diff --git a/include/footer.pl b/include/footer.pl index 1c246e3..5b2aab1 100644 --- a/include/footer.pl +++ b/include/footer.pl @@ -5,6 +5,6 @@ # $_{-version} SVN release of the running script # $_{-depth} subdir depth relative to the "top" with .gallery2 # $_{-title} title of the current subdir (.title contents) -# $_{-breadcrumbs} not implemented at the moment +# $_{-path} path from the dir that contains .gallery2 "
generated by $_{-version}
" diff --git a/include/header.pl b/include/header.pl index 62ef345..e6cbdd0 100644 --- a/include/header.pl +++ b/include/header.pl @@ -5,7 +5,9 @@ # $_{-version} SVN release of the running script # $_{-depth} subdir depth relative to the "top" with .gallery2 # $_{-title} title of the current subdir (.title contents) -# $_{-breadcrumbs} not implemented at the moment +# $_{-path} path from the dir that contains .gallery2 "

$_{-title}

". -($_{-depth}?"
UP
":"") +($_{-depth}? + "
UP
": + "
HOME
") diff --git a/mkgallery.pl b/mkgallery.pl index ad32e66..f672b6c 100755 --- a/mkgallery.pl +++ b/mkgallery.pl @@ -101,15 +101,15 @@ sub new { $class = ref($this); my $parent = $this; my $name = shift; - my $fullpath = $parent->{-fullpath}.'/'.$name; $self = { -parent=>$parent, -root=>$parent->{-root}, + -toppath=>$parent->{-toppath}, -depth=>$parent->{-depth}+1, -base=>$name, - -fullpath=>$fullpath, + -fullpath=>$parent->{-fullpath}.'/'.$name, + -relpath=>$parent->{-relpath}.'/'.$name, -inc=>'../'.$parent->{-inc}, - -rss=>'../'.$parent->{-rss}, }; } else { $class = $this; @@ -118,9 +118,9 @@ sub new { -depth=>0, -root=>$root, -fullpath=>$root, - -inc=>getinc($root), - -rss=>getrss($root), }; + # fill in -inc, -rss, -relpath + initpaths($self); # we are not blessed yet, so cheat. } bless $self, $class; if ($debug) { @@ -132,30 +132,51 @@ sub new { return $self; } -sub getinc { - my $fullpath=shift; # this is not a method +sub initpaths { + my $self=shift; # this is not a method but we cheat my $depth=20; # arbitrary max depth + my $fullpath=$self->{-fullpath}; + my $inc; + my $rss; + my $relpath; if ($incpath) { - return $incpath."/.gallery2"; - } - - my $inc=".gallery2"; - while ( ! -d $fullpath."/".$inc ) { - $inc = "../".$inc; - last unless ($depth-- > 0); + $inc = $incpath."/.gallery2"; + } else { + $inc=".gallery2"; + while ( ! -d $fullpath."/".$inc ) { + $inc = "../".$inc; + last unless ($depth-- > 0); + } } if ($depth > 0) { - return $inc.'/'; # prefix with trailing slash + $self->{-inc} = $inc.'/'; + my $dp=0; + my $pos; + for ($pos=index($inc,'/');$pos>=0; + $pos=index($inc,'/',$pos+1)) { + $dp++; + } + for ($pos=length($fullpath);$dp-->0 && $pos>0; + $pos=rindex($fullpath,'/',$pos-1)) {;} + my $relpath = substr($fullpath,$pos); + $relpath =~ s%^/%%; + $self->{-relpath} = $relpath; + $self->{-toppath} = substr($fullpath,0,$pos); + initrss($self); } else { - return 'NO-.INCLUDE-IN-PATH/'; # won't work anyway + $self->{-inc} = 'NO-.INCLUDE-IN-PATH/'; # won't work anyway + $self->{-rss} = ''; + $self->{-relpath} = ''; } } -sub getrss { - my $fullpath=shift; # this is not a method - my $depth=20; # arbitrary max depth +sub initrss { + my $self=shift; # this is not a method but we cheat + my $fullpath=$self->{-fullpath}; + my $depth=20; + return; return "" unless $rssfile; my $rss=$rssfile; @@ -366,7 +387,7 @@ sub edittitle { close($T); } if ($asktitle || (!$title && !$noasktitle)) { - my $prompt = $self->{-base}; + my $prompt = $self->{-relpath}; $prompt = '/' unless ($prompt); my $OUT = $term->OUT || \*STDOUT; print $OUT "Enter title for $fullpath\n"; @@ -378,7 +399,7 @@ sub edittitle { } } unless ($title) { - $title=substr($fullpath,length($self->{-root})); + $title=$self->{-relpath}; } $self->{-title}=$title; print "title in $fullpath is $title\n" if ($debug);