The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
=head1 Toader Gallery Documentation

L<Toader::Gallery> handles image galleries for Toader.

Each Toader directory can have one gallery.

Below are the common variables used for in this POD.

    $srcPath - The base source image path from the config.
    $srcURL - The base URL for the source image from the config.
    $outputPath - The base output path from the config.
    $outputURL - The base URL for the output from the config.
    $gdir - The gallery directory formed as below.
    $image - The filename of a image, with the path part removed.

The gallery directory part is formed as below.

    $srcPath/$gdir/$image

It is just the gallery directory is the the path between the srcPath
and a image.

The following are recognized image extensions currently.

    jpg
    jpeg
    gif
    png

=head1 Configuration Storage

The config for a Toader::Gallery is $toaderDir.'/gallery.ini' .

=head2 Gallery INI Variables

=head3 outputPath

This is the output path to use for where output to.

This is required.

=head3 outputURL

This is the output URL to use for when creating the required
non-relative URLs.

None of the methods will append a '/', so if one is needed, it should
be provided here.

This is required.

=head3 srcPath

This is the path to find images under.

This is required.

=head3 srcURL

This is the URL that source images can be found under.

None of the methods will append a '/', so if one is needed, it should
be provided here.

This is required.

=head3 renderUpdateDetails

If image details should be updated upon render being called.

This defaults to '0'.

This is optional.

=head3 renderUpdateIndexes

If image gallery directory index should be updated upon render being called.

This defaults to '0'.

This is optional.

=head3 renderUpdateScaled

If the scaled images should be updated upon render being called.

This defaults to '0'.

This is optional.

=head3 resolutionSmall

The resolution to default to for the small image.

This is a integer that represents what the largest resolution for either
X or Y a scalled image may have.

The default is '200'.

This is optional.

=head3 resolutionLarge

The resolution to default to for the large image.

This is a integer that represents what the largest resolution for either
X or Y a scalled image may have.

The default is '1024'.

This is optional.

=head1 Page Template

L<Toader::Gallery> uses a different page template than other modules. The
template used is 'pageGallery' and the default is as below.

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    
      <head>
        <title> [== $c->{_}->{siteTitle} ==] </title>
        <LINK href="[== $g->cssLocation ==]" rel="stylesheet" type="text/css">
      </head>
    
      <body>
    
        <div id="header" >
          [== $g->top ==]
        </div>
    
        <div id="location" >
          [== $g->locationbar( $locationID ) ==]
          [== $g->locationSub ==]
        </div>
    
        <div>
    
        <div id="content" >
          [== $content ==]
        </div>
    	
        <br><br><br>
    	
        <div id="copyright">
          [==
            my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
            $year=$year+1900;
            return "Copyright ".$year." ".$c->{_}->{owner};
           ==]
        </div>
    
      </body>
    </html>


Below is what is passed to it, for both updateIndex and updateDetails.

    toader - The L<Toader> object.
    g - The L<Toader::Render::General> object.
    self - The L<Toader::Render::Entry> object.
    obj - The L<Toader::Entry> object.
    c - The L<Config::Tiny> holding the Toader config.
    dir - The R2R path for the Toader directory the gallery is for.
    gdir - The current gallery directory.
    content - The content for the page.

For updateDetails, the one below is also passed to it.

    image - The name of the image for this page.

=head1 Rendering

Rendering is handled by L<Toader::Render::Gallery>.

Upon Toader::Render::Gallery->render being called, it checks if it should
render any thing.

    renderUpdateDetails
    renderUpdateIndexes
    renderUpdateScaled

The above gallery config settings are used to check for if it should render
any thing. If any of those are set to 1, it calls the related methods.

=head2 updateDetails

This method updates the detailed images page.

The detail pages are writen out to
$outputPath.'/.toader-gallery/html/'.$gdir.'/'.$image.'.html' .

The content of the page is pulled from Toader::Render::General->galleryImageLarge .

=head2 updateIndexes

This method updates indexes of a directory.

The index pages are writen out to
$outputPath.'/.toader/html/'.$gdir.'/index.html' .

When joining the list of sub directories and images, directories
always come first.

=head3 templates

=head4 gallerySmallImageBegin

This begins the list.

The default template is blank.

The arguments passed to it are as below.

    toader - The L<Toader> object.
    g - The L<Toader::Render::General> object.
    self - The L<Toader::Render::Entry> object.
    obj - The L<Toader::Entry> object.
    c - The L<Config::Tiny> holding the Toader config.
    dir - The R2R path for the Toader directory the gallery is for.
    gdir - The current gallery directory.

=head4 galleryDir

This links to a gallery directory.

The default template is as below.

    <div id="imageDiv" > [== $link ==] </div>

The arguments passed to it are as below.

    toader - The L<Toader> object.
    g - The L<Toader::Render::General> object.
    self - The L<Toader::Render::Entry> object.
    obj - The L<Toader::Entry> object.
    c - The L<Config::Tiny> holding the Toader config.
    dir - The R2R path for the Toader directory the gallery is for.
    gdir - The gallery directory being linked to.
    link - This is the HTML for the gdir being linked to.

=head4 gallerySmallImage

This links to a gallery directory.

The default template is as below.

    [== $g->galleryImageSmall( $dir, $gdir, $image ); ==]

The arguments passed to it are as below.

    toader - The L<Toader> object.
    g - The L<Toader::Render::General> object.
    self - The L<Toader::Render::Entry> object.
    obj - The L<Toader::Entry> object.
    c - The L<Config::Tiny> holding the Toader config.
    dir - The R2R path for the Toader directory the gallery is for.
    gdir - The current gallery directory.
    image - The current image in the current gdir.

=head4 gallerySmallJoin

This joins the dir divs and image divs together.

The default template is as below.

    
    

The arguments passed to it are as below.

    toader - The L<Toader> object.
    g - The L<Toader::Render::General> object.
    self - The L<Toader::Render::Entry> object.
    obj - The L<Toader::Entry> object.
    c - The L<Config::Tiny> holding the Toader config.
    dir - The R2R path for the Toader directory the gallery is for.
    gdir - The current gallery directory.

=head4 gallerySmallImageBegin

This ends the list.

The default template is blank.

The arguments passed to it are as below.

    toader - The L<Toader> object.
    g - The L<Toader::Render::General> object.
    self - The L<Toader::Render::Entry> object.
    obj - The L<Toader::Entry> object.
    c - The L<Config::Tiny> holding the Toader config.
    dir - The R2R path for the Toader directory the gallery is for.
    gdir - The current gallery directory.

=head1 updateScaled

This updates the scaled images.

The small images are written out to
$outputPath.'/.toader-gallery/small/'.$gdir.'/'.$image .

The large images are written out to
$outputPath.'/.toader-gallery/small/'.$gdir.'/'.$image .

=cut