outanekka.KIESS.ONL, your online image gallery!
theme » relaxed · tek · unique ·
user:   password:

About outanekka

Outanekka modules

The outanekka base arrived at version 0.9.0.11.

It is the so called summary of all those below listed modules and additional files.

  1. basic is v0.9.1.1, last edit: 18.02.09.

    ) ? " «" : "",
    	" $what ".$q->big($skip+1

  2. config is v0.2.0.1, last edit: 18.02.09.

    ;
    our $LASTEDIT = '1

  3. home is v0.1.1.3, last edit: 18.02.09.

    ;		
    
    our $q = new CGI; 
    our $VERSION = 0.1

  4. chatbox is v0.9.9.8, last edit: 18.02.12.

     AUTHOR
    
    Adrian Immanuel Kiess - < http://www.kiess.onl >
    
    =head1

  5. about is v1.0.2.1, last edit: 18.02.12.

    8.02.1

  6. html is v0.0.1.3, last edit: 16.06.27.

    ';
    our $PAGE_REFRESH = 60; # READY MOVE TO CHATBOX.PM
    
    our $benchmarkA = \$main::benchmarkA;
    #our $dbh;
    our $cookie = \$main::cookie; # READY MOVE TO USER.PM
    
    our $BASE = 'index.pl';
    our $COPYRIGHT_URL = $conf::copyrightUrl;
    our $REF = $conf::sitePath;
    our $NAME = $conf::siteName;
    our $STATS_URL = $conf::siteStats;
    our $TITLE = $conf::siteTitle;
    our $WEBMASTER = $conf::siteWebmaster;
    
    our $Q_MODULE = $q->param('module');
    our $Q_ACTION = $q->param('action');
    our $Q_ID = $q->param('id');
    our $Q_PATH = $q->param('path');
    
    our $PATHLENGTH  = 255;
    
    
    =item run()
    
    run() is called from index.pl while building the main content of the 
    current page. The following logic will decide what to execute 
    inside here.
    
    =cut
    
    sub run {
      my $header = &header();
      my $topbar = &topbar();
      my $navmenu = &navmenu();
      my $navmenuUser = &user::page::navmenu();
      my $middleBegin = &middleBegin();
      my $middle = &middle();
      my $right = &right();
      my $bottombar = &bottombar();
     
      #### standard reporting functionality
      #msg(    &basic::getFailureMessage( "Database","Connecting to database"));
      #error(  "Database connection failed! ");
      #debug(  "Connection arguments were! ");
    
      return $header .
        $topbar . 
        $q->div({-class=>'topbar-nav'},
          $q->div({-style=>'float:right;'},
            $navmenu
          ) .
          $navmenuUser
        ) . 
        $middleBegin . 
        ($main::locallog || ""). 
        Log::Message::Simple->stack_as_string .
        $middle .
        $right .
        $bottombar;
       
    }
    
    
    =item header()
    
    header().
    
    =cut
    
    sub header {
     
      my $stylesheet .= qq|
        }
        img {
     	behavior: url("pngbehavior.htc");
        }\n|;
      my $siteUrl = $conf::siteUrl;
      my $chatboxREF = "/chatbox/";
      
      $chatboxREF =~ s/^\/// if $siteUrl =~ m/\/$/;
     
      return ($$cookie ? 
        $q->header(-type=>'text/html',-cookie=>$$cookie) :
        $q->header(-type=>'text/html')) . 
    	  $q->start_html(
    			 -encoding => "UTF-8",
        	-title=>$NAME . 
        		($Q_MODULE ? ' : '.$Q_MODULE : '').
    	  		($Q_ACTION ? ' : '.$Q_ACTION : '').
    	  		($Q_ID ?     ' : '.$Q_ID     : '').
    	  		($Q_PATH ?   ' : '.$Q_PATH   : ''),
      		#-base=>'true',
      		-meta=>{'copyright'=>  'GPL',
    	  		     'publisher'=> $AUTHOR,
    	  		     'description'=> 'A image display web solution with additional features.',
    	  		     'generator'=> 'outanekka.org ' . $BASE . ' ' . $main::VER},
      		-style=>{-code=> $stylesheet},
      		-head=>[ 
    		    $q->Link({-rel=>'Stylesheet',
                      -href=>&theme::getDefaultCSS(),
                      -type=>'text/css'}),
    			  $q->Link({-rel=>'Stylesheet',
    	          		  -href=>&theme::getThemeCSS(),
                      -type=>'text/css'}),
    	  		$q->Link({-rel=>'shortcut icon',
    	                -href=>$REF.'favicon.ico',
    		              -type=>'image/x-icon'}), 
    		    (($Q_MODULE and ($Q_MODULE eq "chatbox")) ? 
    	        $q->meta({-http_equiv => 'Refresh', 
    			              -content=> "$chatbox::PAGE_REFRESH; URL=$siteUrl$chatboxREF"}) 
    		         : "")
          ],     
        );
    }
    
    
    =item topbar()
    
    topbar().
    
    =cut
    
    sub topbar {
      my $img;
      my $img_src = &theme::getBannerImage();
        
      #if ($ENV{'HTTP_USER_AGENT'} and $ENV{'HTTP_USER_AGENT'} !~ /MSIE/) {
      #} else {
        #$img_style = "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(".
        #"src='".$img_src."";".',sizing='scale');";  
      #}
      
      $img = $q->a({-href=>$REF},
             $q->img({-src=>$img_src,
                      -title=>$TITLE,
    								  -alt=>$TITLE})) . 
             $q->div({-class=>'loading'},''); #'loading the page...');	    
    
      return $q->div({-class=>'topbar',
                      -title=>$NAME},
               $q->div({-class=>'topbar-text'},
                 $img . 
    	           $q->div(
    	             $q->small('theme &raquo; ' . &theme::getThemeLinks()
    		           ) . 
                   &user::page::topbar()
    	           )
    	         )
    	       );
    }
    
    
    =item navmenu()
    
    navmenu().
    
    =cut
    
    sub navmenu {
      return "\n<!-- navmenu() -->\n".
        $q->ul({-id=>'navmenu'},
        
        $q->li({-style=>'margin-right:1

  7. guestbook is v0.9.9.8, last edit: 18.02.09.

    ("Opinions. What People left Us.") . 
          ( $o || "") . &guestbook::page::browse() . 
          &about::module::getModuleVersion($MODULE, $VER);
      }
    }
    
    
    =head1

  8. user is v0.2.2.5, last edit: 18.02.15.

    28'),br(),br(),
            $q->checkbox(-name=>'remember',
    	             -value=>'yes',
    		     -label=>' remember me',
                         -checked=>'0'),$q->br(),$q->br(),
            $q->submit('log in >'),$q->br(),$q->br(),
            $q->i("( Cookie support is ",$q->u("required"),"to log in. )")
          ),
          $q->end_form(), 
    
          $q->h2("sign up?"),
          $q->p(
    	$q->big("W")."ant an personal account? [",
            $q->a({-href=>$REF."signup"},"&raquo; Sign up now"),"]"
          ),
        
          $q->h2("password?"),
          $q->p($q->big("L")."ost your password? [",
            $q->a({-href=>$REF."passwordrequest"},"&raquo; Request your password"),"]",
          ),
        );
       
    }
    
    sub logout {
      if ($accountId == 0) {
        return &basic::success("Logged out",
    	                   "Bye bye, You are now logged out. Hope to see You soon again!").
          &user::page::login();
      }
    }
    
    sub preLogout {
      if ( $Q_MODULE and ($Q_MODULE eq MODULE) && 
          ($Q_ACTION and ($Q_ACTION eq "logout")) ) {
        my $givenSessionId = $q->cookie("session_id");
    
        if ( $givenSessionId and (length($givenSessionId) <= 256) ) {      
          my $sth = $::dbh->prepare(qq{ 
           	  UPDATE ${\MODULE} SET last_seen=?, 
    	                        session_expires=?, 
    			        session_id=? WHERE session_id=? 
          });    
          $sth->execute($^T,undef,undef,$givenSessionId);  
          
          if ($sth) {
            $::cookie = $q->cookie(
    	 	-NAME => 'session_id',
                    -VALUE => 'logged out',
                    -EXPIRES => '+1

  9. imagery is v0.7.1.1, last edit: 16.06.26.

    024 );
      #$avrg_size = int ( $avrg_size / 1

  10. theme is v0.2.2.1, last edit: 18.02.09.

    ;
    
    

  11. text is v0.2.0.3, last edit: 18.02.09.

    ;
    
    

  12. 0
  13. about::module is v0.0.1.3, last edit: 18.02.09.

    px; 
    	                       border-left-width: 2px; 
                             border-left-style: solid; 
    			                   padding-left: 3px;'},
    		     $q->escapeHTML($randLine))));  
      } else {
        return 0;
      }
    }
    
    
    =item getModuleVersion()
    
    getModuleVersion() displays the name and version of a perl package.
    
    =cut
    
    sub getModuleVersion {
      my $base = shift;
      my $ver = shift;
      
      if ($base and $ver) {
        return $q->p({-id=>'module-version'},
        $q->a({-href=>"$conf::sitePath"."about#"."$base"},$base),"v".$ver);
      } else {
        return 0;
      }
    }
    
    
    =item getModule()
    
    getModules() returns all perl packages found recursively in a directory.
    
    =cut
    
    sub getModules {
      my $path = shift;
      my @modules;
      
      if ($path and -d $path) {
        sub list_dirs {
            my @dirs = shift;
            my @files;
            find({ wanted => sub { push @files, $_ if !-d} , no_chdir => 1

  14. about::page is v0.0.1.4, last edit: 18.02.11.

    8.02.1

  15. 00
  16. user::profile is v0.0.0.1, last edit: 18.02.14.

    024 * 1

  17. user::account is v0.0.0.1, last edit: 18.02.11.

    ;
    		}
      }
    	else {
    	  &basic::failureMessage("Password is empty",
    	       "The password is emtpy".
    	       " Please type in your password.");
    		return 0;
    	}
      return 0;
    }
    
    =item link()
    
    link() returns a link pointing to the user account.
    
    =cut 
    
    sub link {
      my $uid = shift;
      
      if ($uid and &user::account::exists($uid)) {   
        my ($lastSeen, $nick, $sessionKey, $diff, $class, $sth, $href);
    
        $sth = $::dbh->prepare(qq{
          SELECT user.nick,
    			user_session.session_key,
    			user_session.last_seen 
    		  FROM user LEFT OUTER JOIN user_session ON user.id=user_session.user_id WHERE user.id=(?)
        }) or die $::dbh->errstr;      
        $sth->execute($uid) or die $::dbh->errstr;
        $href = $sth->fetchrow_hashref;
        
    		$nick = $href->{'nick'};
        $lastSeen = $href->{'last_seen'} || 0;
        $sessionKey = $href->{'session_key'} if defined $href->{'session_key'}; 
        
        $diff = $^T - $lastSeen; 
        
        if (($diff > 600) or !$sessionKey) {
          $class = 'offline';
        }
        else {
          $class = 'online';
        }
        
        return $q->span({-style=>'white-space: nowrap;'},
    			$q->b({-class=>$class},'&#6531

  18. user::page is v0.0.0.1, last edit: 18.02.10.

    28'),$q->br(),$q->br(),
            $q->checkbox(-name=>'remember',
    	        -value=>'yes',
    		      -label=>' remember me',
              -checked=>'0'),$q->br(),$q->br(),
            $q->submit('log in >>'),$q->br(),$q->br(),
            $q->i("( Cookie support is ",$q->u("required"),"to log in. )")
          ),
          $q->end_form(), 
    
          $q->h2("sign up?"),
          $q->p(
    	    $q->big("W")."ant an personal account? [",
            $q->a({-href=>$$REF."signup"},"&raquo; Sign up now"),"]"
          ),
        
          $q->h2("password?"),
          $q->p($q->big("L") . "ost your password? [",
            $q->a({-href=>$$REF."passwordrequest"},"&raquo; Request your password"),"]",
          ),
        );
      }
    }
    
    =item logout()
    
    logout() log's the user out of outanekka.
    
    =cut
    
    sub logout {
    	if (&user::session::logout()) {
        return &user::page::login();	
    	} else {
        return &user::page::login();
    	}
    }
    
    
    =item signup()
    
    signup() let's the user create a new account on outanekka.
    
    =cut
    
    
    sub signup {
      
    	if (&user::account::signup()) {
    		return &user::page::login();
    	} else {
    		$q->param('module',$$MODULE); 
    		$q->param('action','signup');
    		 
    		#		my $r = new String::Random;
    		#		my ($randomNick, $randomPassword);
    		#		
    		#		# define vowels
    		#		$r->{'V'} = [ qw(a e i o u) ];
    		#		# define common consonants
    		#		$r->{'Q'} = [ qw(r s t n m) ];
    		#		# e.g. retom, satan, timis ...
    		#		$randomNick = $r->randpattern("QVQVQ");  
    		#		
    		#		$r = new String::Random;
    		#		$randomPassword = $r->randpattern("CcCnCnCn");
    		 
        my $randomNick = &user::account::randomNick();
    		my $randomPassword = &user::account::randomPassword();
    
    		return $q->h1

  19. user::session is v0.0.0.2, last edit: 18.02.12.

    8.02.1

  20. guestbook::opinion is v0.0.0.6, last edit: 18.02.11.

    024 * 1

  21. guestbook::page is v0.0.0.5, last edit: 18.02.11.

    0;
        my $verify = int(rand($verify_range)) + $verify_minimum;;
    
        $q->param('verify',$verify);
    
        return "\n\n<!-- $$MODULE ::page::slider -->\n\n" . 
    			$q->div({-class=>'section-right',
    							 -style=>'text-align:center;'},
    			$q->start_form({-style=>'margin:0px;'}),
    			$q->hidden('module') .
    			$q->hidden('action') . 
    			$q->hidden('verify') . 
    			$q->p(
    				"your",$q->u("email"),":",$q->br(),
    				$q->textfield({-style=>'width:1

  22. chatbox::message is v0.0.0.10, last edit: 18.02.12.

    ;		
    
    our $q = new CGI; 
    our $VERSION = 0.0.0.1

  23. chatbox::page is v0.0.0.3, last edit: 18.02.12.

    8.02.1

  24. imagery::album is v0.1.0.2, last edit: 16.06.26.

    ;
    
      $sth = $::dbh->prepare(qq{
            SELECT album_id, path FROM ${\MODULE}_albums WHERE path LIKE ?
      });
      $sth->execute("$path%");
    
      while (my ($album_id, $subPath) = $sth->fetchrow) {
        confess unless $album_id && $subPath; 
        my $sthImages = $::dbh->prepare(qq{
             SELECT id, image FROM ${\MODULE} WHERE album_id = ?
        });  
        $sthImages->execute($album_id);
        while (my ($id, $image) = $sthImages->fetchrow) {
          confess unless $id && $image;
          &imagery::image::delete($id, $subPath, $image);
          push @deletedImages, $subPath.$image;
        }
        my $sthDelete = $::dbh->prepare(qq{
            DELETE FROM ${\MODULE}_albums WHERE album_id = ? 
        });
        $sthDelete->execute($album_id);
      }
        
      &basic::delFileTree($$PATH_ALBUMS.$path) or warn $! if -d $$PATH_ALBUMS.$path;
      &basic::delFileTree($cacheAlbums) or warn $! if -d $cacheAlbums;
      &basic::delFileTree($cacheImages) or warn $! if -d $cacheImages;
      &basic::delFileTree($cacheThumbs) or warn $! if -d $cacheThumbs;
    
      @deletedImages = join(', ',@deletedImages) if @deletedImages;
        
      $path =~ m/^(.*?)\/(.*?)\/$/;
      
      return &basic::success('Album deleted',
             qq!The album <i>$path</i> and the 
                corresponding subalbums were successfully deleted.!.
    	 (@deletedImages ? "<p>Deleted images: @deletedImages.</p>" : '')).
             ($2 ? &page($1

  25. imagery::thumb is v0.0.1.1, last edit: 05.03.12.

    ;
    

  26. imagery::quota is v0.9.1.0, last edit: 16.06.27.

    6384) > 0) ? return 1

  27. imagery::page is v0.2.1.0, last edit: 16.06.26.

     = 'Recently Uploaded Images'; last; };
        /^popular$/ && do { 
    	  @images = &imagery::image::popularImages($$PAGE_THUMBS); 
    	  $h1

  28. imagery::image is v0.1.1.2, last edit: 16.06.26.

    " title="^ Up to Album" href="$pathUrl" />
                   <area shape="rect" coords="$coords2" title="Next Image >" href="$nextImageUrl" />
                   </map>).
             $q->div({-class=>'navbar',-id=>'picture-navigation'},
               ($prevImageUrl and $prevImageUrl ne $pathUrl) ? 
                 $q->a({-href=>$prevImageUrl},'&laquo; Previous Image') : '','&middot;',
    	     $q->a({-href=>$pathUrl},'^ Up to Album'),' &middot;',
    	   ($nextImageUrl and $nextImageUrl ne $pathUrl) ? 
                 $q->a({-href=>$nextImageUrl},'Next Image &raquo;') : '');
    }
    
    =item getId()
    
    =cut
    
    sub getId {
      my $path = shift;
      my $image = shift;
      
    	confess unless $path && $image;
    
      my ($id, $mtime);
      my ($album_id) = &imagery::album::getId($path);
    	confess unless $album_id;
    
    	#do {
          my ($href, $sth); 
         
          $sth = $::dbh->prepare(qq{
            SELECT id, mtime FROM ${\MODULE} WHERE album_id=? AND image=?
          }) or warn $::dbh->errstr;      
          $sth->execute($album_id, $image) or warn $!;
          $href = $sth->fetchrow_hashref;
          $id = $href->{'id'};
          $mtime = $href->{'mtime'};
          
    			#unless ($id) {
    			#my $mtime = 0;
    	  
    		  confess unless (-e $$PATH_ALBUMS . $path . $image);
    
          if (!defined $id) {
    				#return $album_id.$path.$image.$^T;
    				$sth = $::dbh->prepare(qq{
    					INSERT INTO ${\MODULE} (album_id, image, mtime, unixtime, impressions) VALUES (?, ?, ?, ?, ?)
    								}) or warn $::dbh->errstr; 
    					$sth->execute($album_id, $image, $mtime, $^T, 1

  29. imagery::daily is v0.0.2.1, last edit: 16.06.26.

    ;
    our $LASTEDIT 		= '1

about v1.0.2.1

348903
impressions since February 09, 2018
0 images

chatbox

<adrian> jjj
<susan> ll
<susan> Hallo Welt!
<test> 123
<test> aa
<adrian> as

Please log in to write a message!

users

we welcome
Sites · resun · sunur · 1sss · matum · susan1 · susan · sinir · test12 · meter111 · meter11 · meter1 · meter · munar · munar · rrrr · …

recently active
adrian · susan · sunur · …

new images
Sites · resun · sunur · 1sss · matum · susan1 · susan · sinir · test12 · meter111 · meter11 · meter1 · meter · munar · munar · rrrr · …

outanekka.kiess.onl v0.9.0.11 (2001–2018) by Adrian Immanuel KiessGPL licensed
Designed for gecko engine < mozilla.org> ♦ outanekka.kiess.onl usage statistics
Perl code runtime: 0 wallclock secs ( 0.04 usr + 0.00 sys = 0.04 CPU)