<%
my $out;
my $maxtime = time + 60*60*24*30;
my $sql = qq(
SELECT
va_objekte.*,
DATE_FORMAT(va_objekte.datum,'%d.%m.%Y') AS datum,
DATE_FORMAT(va_objekte.datum_bis,'%d.%m.%Y') AS datum_bis,
DATE_FORMAT(va_objekte.datum,'%H:%i') AS uhrzeit,
UNIX_TIMESTAMP(va_objekte.datum) AS unixtime,
DAYOFWEEK(va_objekte.datum) AS wochentag,
DATE_FORMAT(va_objekte.datum_bis,'%H:%i') AS datum_uhrzeit_bis,
va_locations.name AS ort_name,
va_locations.text AS ort_beschreibung,
va_veranstalter.name AS veranstalter_name,
1
FROM
va_objekte
LEFT JOIN
va_locations ON va_locations.id = va_objekte.location
LEFT JOIN
va_veranstalter ON va_veranstalter.id = va_objekte.veranstalter_id
WHERE 1
AND va_objekte.datum >= NOW()
AND UNIX_TIMESTAMP(va_objekte.datum) <= $maxtime
AND va_objekte.mandant_id = "40"
AND va_objekte.attribute REGEXP "[[:<:]](242)[[:>:]]"
GROUP BY
va_objekte.id
ORDER BY
va_objekte.datum ASC
);
my $dbh = &mysql_connect('va');
my $sth = $dbh->prepare( $sql );
$sth->execute() || &mysql_error($sth);
#
Mittwoch, 06.09.2006
my @objekte;
my %familien;
while (my $objekt = $sth->fetchrow_hashref) {
if ($objekt->{familie} && ($objekt->{familie} ne "X")) {
if (exists($familien{"$objekt->{familie}"})) {
next;
} else {
$familien{"$objekt->{familie}"} = 1;
}
}
$objekt->{text} =~ s/\n//g;
push(@objekte, $objekt) if $objekt->{unixtime};
}
# sub _FindValue {
# foreach (@{$_[0]}) {
# return $_ if ($_ eq $_[1]);
# }
# return "";
# }
#
# my @rands;
# my $max = @objekte > 5 ? 5 : @objekte;
# while (@rands < $max) {
# my $r = int(rand(@objekte));
# push(@rands, $r) if (&_FindValue(\@rands, $r) eq "");
# }
# @rands = sort(@rands);
#
sub _SortObjekte {
return 1 if ($a->{unixtime} > $b->{unixtime});
return 0 if ($a->{unixtime} == $b->{unixtime});
return -1;
}
my $max = @objekte > 5 ? 5 : @objekte;
my @rands;
foreach (1..$max) {
push (@rands, (splice(@objekte, int(rand(@objekte)), 1))[0]);
}
@rands = sort (_SortObjekte @rands);
my $lastgruppe;
my @wds = ("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
foreach my $objekt (@rands) {
# my $objekt = (splice(@objekte, $rands[$_], 1))[0];
my ($d, $m, $y, $wd) = (localtime($objekt->{unixtime}))[3,4,5,6];
my $gruppe = sprintf("%s, %02d.%02d.%04d", $wds[$wd], $d, $m+1, $y+1900);
$out .= qq(
$gruppe
) if ($lastgruppe ne $gruppe);
$lastgruppe = $gruppe;
$out .= qq(
);
}
return qq(
$out
);
%>