mason/dhandler (.contact): Recurse into first folder to find index image.
[tgal] / mason / dhandler
index d36722b..42b324c 100755 (executable)
@@ -88,10 +88,17 @@ Failed to find &lsquo;<% $path |h %>&rsquo;.
        for my $f (@$ff)
          { $tn{$f} = TrivGal::Image->new($path . $f->name); }
        for my $d (@$dd) {
-         my ($ddd, $fff, $iii) = listdir $real . "/" . $d->name;
-         $tn{$d} = $iii ?
-           TrivGal::Image->new(join_paths $path, $d->name, $iii->name) :
-           undef;
+         my $p = join_paths $path, $d->name;
+         DIR: for (;;) {
+           my ($ddd, $fff, $iii) = listdir join_paths $IMGROOT, $p;
+           if (defined $iii) {
+             my $index = join_paths $p, $iii->name;
+             $tn{$d} = TrivGal::Image->new($index);
+             last DIR;
+           }
+           if (!@$ddd) { $tn{$d} = undef; last DIR; }
+           $p = join_paths $p, $ddd->[0]->name;
+         }
        }
 </%perl>
 %