#!/usr/bin/perl

#Fehlerausgabe an Browser
use CGI::Carp qw(fatalsToBrowser);

# Dateiflock
use Fcntl qw(:DEFAULT :flock);

# Benötige Konfigurationsdatei einbinden
require "config.pl";
require "library.pl";

$scriptname = "mylinks.pl";

$layout = "$spalten";

if (-e "misc/lock.lock") {
wartung();
} else {

open(KATEGORIE,"kategorien/kategorie.dat");
flock(KATEGORIE, 2);
@kat = <KATEGORIE>;
flock(KATEGORIE, 8);
close(KATEGORIE);

open(DATEIC,"<misc/counter.dat");
flock(DATEIC, 2);
$gesamt = <DATEIC>;
flock(DATEIC, 8);
close(DATEIC);


open(DATEI,"+<misc/aufruf.dat");
flock(DATEI, 2);
$aufruf = <DATEI>;
seek(DATEI,0,0);
$aufruf++;
print DATEI "$aufruf";
flock(DATEI, 8);
close(DATEI);
chmod(0666, "misc/aufruf.dat");
# - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Layout einspaltig
# - - - - - - - - - - - - - - - - - - - - - - - - - - #

if ($layout eq "E") {

header();
laylink();
print qq~
<table cellspacing="0" cellpadding="0" border="0" width="600">
<tr><td class="nt">
<table class="nt" width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
    <td class="none" width="50%"><b>Kategorien</b></td>
    <td class="none" width="50%" align="right">Links in der Datenbank: <b>$gesamt</b> &nbsp;</td>
</tr>
</table>
</td></tr>

~;
$zahl = 0;

foreach $kateg (sort sortiert @kat){
chomp(@kat);
($id,$kattitel,$katdesc,$counter) = split(/\|/, $kateg);
$zahl++;

print "<tr>\n<td class=tabcont onMouseOver=\"CH(this, 0);\" onMouseOut=\"CH(this, 1);\">$zvt<b> <a href=\"$scripturl/view.pl?typ=$id&kt=$kattitel\"><b>$kattitel</b></a></b> [ $counter ] <br><font class=\"katdesc\">$katdesc</font></td></tr>";
}
print "<tr><td class=\"nt\"><b>Aufrufe:</b> $aufruf </td></tr>\n";
print "</table><br>\n";

footer();

}
# - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Layout zweispaltig
# - - - - - - - - - - - - - - - - - - - - - - - - - - #
if ($layout eq "Z") {

header();

laylink();
print qq~
<table cellspacing="0" cellpadding="0" border="0" width="600">
<tr><td colspan="2" class="nt">
<table class="nt" width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
    <td class="none" width="50%"><b>Kategorien</b></td>
    <td class="none" width="50%" align="right">Links in der Datenbank: <b>$gesamt</b> &nbsp;</td>
</tr>
</table>
</td></tr>
~;

$zahl = 0;

foreach $kateg (sort sortiert @kat){

chomp(@kat);
($id,$kattitel,$katdesc,$counter) = split(/\|/, $kateg);
$zahl++;

if ($zahl == 1) {
print "<tr>\n<td class=tabcont onMouseOver=\"CH(this, 0);\" onMouseOut=\"CH(this, 1);\" width=\"50%\">$zvt<b> <a href=\"$scripturl/view.pl?typ=$id&kt=$kattitel\"><b>$kattitel</b></a></b> [ $counter ]<br><font class=\"katdesc\">$katdesc</font></td>\n";
}
if ($zahl == 2) {
print "<td class=tabcont onMouseOver=\"CH(this, 0);\" onMouseOut=\"CH(this, 1);\" width=\"50%\">$zvt<b> <a href=\"$scripturl/view.pl?typ=$id&kt=$kattitel\"><b>$kattitel</b></a></b> [ $counter ]<br><font class=\"katdesc\">$katdesc</font></td></tr>\n";
$zahl = 0;
}
}

if ($zahl == 1) {
print"<td class=tabcont onMouseOver=\"CH(this, 0);\" onMouseOut=\"CH(this, 1);\" width=\"50%\">&nbsp;</td>\n</tr>\n";
print "<tr><td colspan=\"2\" class=\"nt\"><b>Aufrufe:</b> $aufruf </td></tr>\n</table><br>\n";
} 
if  ($zahl == 0) {
print "<tr><td class=tabcont onMouseOver=\"CH(this, 0);\" onMouseOut=\"CH(this, 1);\" colspan=\"2\" class=\"nt\"><b>Aufrufe:</b> $aufruf </td></tr>\n</table><br>\n";
}

footer();

}
# - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Layout dreispaltig
# - - - - - - - - - - - - - - - - - - - - - - - - - - #
if ($layout eq "D") {

header();
laylink();
print qq~

<table cellspacing="0" cellpadding="0" border="0" width="600">
<tr><td colspan="3" class="nt">
<table class="nt" width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
    <td class="none" width="50%"><b>Kategorien</b></td>
    <td class="none" width="50%" align="right">Links in der Datenbank: <b>$gesamt</b> &nbsp;</td>
</tr>
</table>
</td></tr>

~;
my $zahl = 0;
foreach $kateg (sort sortiert @kat){
chomp(@kat);
($id,$kattitel,$katdesc,$counter) = split(/\|/, $kateg);
$zahl++;

if ($zahl == 1) {
print "<tr>\n<td class=tabcont onMouseOver=\"CH(this, 0);\" onMouseOut=\"CH(this, 1);\" width=\"34%\">$zvt<b> <a href=\"$scripturl/view.pl?typ=$id&kt=$kattitel\"><b>$kattitel</b></a> [ $counter ]<br><font class=\"katdesc\">$katdesc</font></td>\n";
}
if ($zahl == 2) {
print"<td class=tabcont onMouseOver=\"CH(this, 0);\" onMouseOut=\"CH(this, 1);\" width=\"33%\">$zvt<b> <a href=\"$scripturl/view.pl?typ=$id&kt=$kattitel\"><b>$kattitel</b></a></b> [ $counter ]<br><font class=\"katdesc\">$katdesc</font></td>\n";
}
if ($zahl == 3) {
print"<td class=tabcont onMouseOver=\"CH(this, 0);\" onMouseOut=\"CH(this, 1);\" width=\"33%\">$zvt<b> <a href=\"$scripturl/view.pl?typ=$id&kt=$kattitel\"><b>$kattitel</b></a></b> [ $counter ]<br><font class=\"katdesc\">$katdesc</font></td>\n</tr>\n";
$zahl =0;
}
}

if ($zahl == 1) {
print"<td class=tabcont onMouseOver=\"CH(this, 0);\" onMouseOut=\"CH(this, 1);\" width=\"33%\">&nbsp;</td><td width=\"33%\">&nbsp;</td>\n</tr>\n";
print "<tr><td colspan=\"3\" class=\"nt\"><b>Aufrufe:</b> $aufruf </td></tr>\n</table><br>\n";
}
if ($zahl == 2) {
print"<td class=tabcont onMouseOver=\"CH(this, 0);\" onMouseOut=\"CH(this, 1);\" width=\"33%\">&nbsp;</td>\n</tr>\n";
print "<tr><td colspan=\"3\" class=\"nt\"><b>Aufrufe:</b> $aufruf </td></tr>\n</table><br>\n";
} 
if  ($zahl == 0) {
print "<tr><td colspan=\"3\" class=\"nt\"><b>Aufrufe:</b> $aufruf </td></tr>\n</table><br>\n";
}

footer();
}

# - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Sortieren nach Alphabet
# - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub sortiert {
@a = split(/\|/,$a);
@b = split(/\|/,$b);
$a[1] cmp $b[1];
}

# - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Wartung
# - - - - - - - - - - - - - - - - - - - - - - - - - - #
}

sub wartung {
header();
laylink();
print qq~
<table cellspacing="2" cellpadding="4" border="0" width="600">
<tr>
<td colspan="2" class=\"darker\">Fehler festgestellt:</td>
</tr>
<tr>
<td colspan="2">Das Programm befindet sich im Wartungsmodus. Bitte versuchen Sie es in ein paar Minuten nocheinmal.<br><br>
Bitte gehen Sie <a href="javascript:history.go(-1)" onMouseOver="self.status=document.referrer;return true">zurück</a>
<br><br>
</td>
</tr>
</table>
~;

footer();
exit;
}



# - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Ende
# - - - - - - - - - - - - - - - - - - - - - - - - - - #










