First pass at adding key files
This commit is contained in:
		
							
								
								
									
										117
									
								
								site/slowtwitch.com/cgi-bin/articles/showpicture.cgi
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										117
									
								
								site/slowtwitch.com/cgi-bin/articles/showpicture.cgi
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,117 @@
 | 
			
		||||
#!/usr/bin/perl
 | 
			
		||||
# ==================================================================
 | 
			
		||||
# Links SQL - enhanced directory management system
 | 
			
		||||
#
 | 
			
		||||
#   Website  : http://gossamer-threads.com/
 | 
			
		||||
#   Support  : http://gossamer-threads.com/scripts/support/
 | 
			
		||||
#   CVS Info : 087,070,087,092,085 
 | 
			
		||||
#   Revision : $Id: showpicture.cgi,v 1.6 2006/12/29 15:37:20 aki Exp $
 | 
			
		||||
#
 | 
			
		||||
# Copyright (c) 2001 Gossamer Threads Inc.  All Rights Reserved.
 | 
			
		||||
# Redistribution in part or in whole strictly prohibited. Please
 | 
			
		||||
# see LICENSE file for full details.
 | 
			
		||||
# ==================================================================
 | 
			
		||||
 | 
			
		||||
    use strict;
 | 
			
		||||
    use lib 'admin';
 | 
			
		||||
    use Links qw/$DB $IN $USER $CFG/;
 | 
			
		||||
    use Links::Plugins;
 | 
			
		||||
 | 
			
		||||
    Links::init('admin');
 | 
			
		||||
    Links::init_user();
 | 
			
		||||
 | 
			
		||||
    local $SIG{__DIE__} = \&Links::fatal;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    main();
 | 
			
		||||
 | 
			
		||||
sub main {
 | 
			
		||||
# -------------------------------------------------------------------
 | 
			
		||||
# display an html page for a picture frame    
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
    my $tbl  = $DB->table('Links');
 | 
			
		||||
    my $id = $IN->param('ID');
 | 
			
		||||
    my $rec  = $tbl->get( $id ) || {};
 | 
			
		||||
    my $col  = $IN->param('v');
 | 
			
		||||
 | 
			
		||||
# go through and find out what columsn have images
 | 
			
		||||
    my $conf       = Links::Plugins::get_plugin_user_cfg( 'SlideShow' );
 | 
			
		||||
    my @image_cols = grep $_, map { s,^(\s*),,; s,(\s*)$,,; $_ } split /,/, $conf->{seq_image_cols};
 | 
			
		||||
 | 
			
		||||
    $col ||= $image_cols[ int( $IN->param( 'index' ) || 0 ) || 0];
 | 
			
		||||
    $col ||= $image_cols[0];
 | 
			
		||||
 | 
			
		||||
    my $cached     = eval $rec->{SlideShowCache};
 | 
			
		||||
    my $changed    = 1;
 | 
			
		||||
    my ( $linksdb, $linkscols, %image_lookup );
 | 
			
		||||
 | 
			
		||||
    require Plugins::SlideShow;
 | 
			
		||||
    my $paths = Plugins::SlideShow::generate_paths( $id, $rec );
 | 
			
		||||
    @$rec{ keys %$paths } = values %$paths;
 | 
			
		||||
 | 
			
		||||
# find out which columns have files (assume images) populated
 | 
			
		||||
# create 
 | 
			
		||||
#       - @images order array with column names 
 | 
			
		||||
#       - %images hash with the index lookup
 | 
			
		||||
    my ( @images, %images, $index ); 
 | 
			
		||||
    foreach my $colname ( @image_cols ) {
 | 
			
		||||
        $rec->{$colname} or next;
 | 
			
		||||
        push @images, $colname;
 | 
			
		||||
        $images{$colname} = $index++;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
# find out where we are in the list
 | 
			
		||||
    my ( $Image_Previous, $Image_Next, $Image_First, $Image_Last, 
 | 
			
		||||
        $Image_Count, $Image_Tool, $Image_Current );
 | 
			
		||||
    $Image_Count = scalar( @images );
 | 
			
		||||
    $index = $images{ $col }; # convert from column name to index #
 | 
			
		||||
 | 
			
		||||
# get the next and previous
 | 
			
		||||
    ( $index > 0 ) and $Image_Previous = $images[$index-1];
 | 
			
		||||
    ( $index < $Image_Count ) and $Image_Next = $images[$index+1];
 | 
			
		||||
 | 
			
		||||
# get the first and last
 | 
			
		||||
    $Image_Current          = $index + 1;
 | 
			
		||||
    $index and $Image_First = $images[0];
 | 
			
		||||
    $index+1 < $Image_Count and $Image_Last = $images[$Image_Count-1];
 | 
			
		||||
 | 
			
		||||
# for the toolbar
 | 
			
		||||
    $index = 1;
 | 
			
		||||
    foreach my $colname ( @images ) {
 | 
			
		||||
        push @{$Image_Tool}, {
 | 
			
		||||
                                Image_Colname => $colname,
 | 
			
		||||
                                Image_Index => $index++,
 | 
			
		||||
                                Image_Selected => ( $colname eq $col ? 1 : 0 ),
 | 
			
		||||
                             };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    print $IN->header();
 | 
			
		||||
    print Links::user_page( 
 | 
			
		||||
        'pictureframe.html', 
 | 
			
		||||
        { 
 | 
			
		||||
            %{$USER || {} }, 
 | 
			
		||||
            %{$IN->get_hash}, 
 | 
			
		||||
            %$rec,
 | 
			
		||||
            %{$image_lookup{$col}||{}},
 | 
			
		||||
            Image_Previous     => $Image_Previous,
 | 
			
		||||
            Image_First        => $Image_First,
 | 
			
		||||
            Image_Last         => $Image_Last,
 | 
			
		||||
            Image_Next         => $Image_Next,
 | 
			
		||||
            Image_Count        => $Image_Count,
 | 
			
		||||
            Image_Current      => $Image_Current,
 | 
			
		||||
            Image_Description  => $rec->{$col."_description"},
 | 
			
		||||
            Image_Tool         => $Image_Tool,
 | 
			
		||||
            image_url_path     => sub {
 | 
			
		||||
                my $col  = join( "_", @_ ) or return;
 | 
			
		||||
                my $tags = GT::Template->tags;
 | 
			
		||||
                return $tags->{$col.'_path'};
 | 
			
		||||
            }
 | 
			
		||||
        } 
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user