2009-07-26T20:02:41
reneeKannst Du da Deine Lösung kurz skizzieren?
Meil SQL-Teil sieht stark vereinfacht so aus
SELECT
struktur_1.struktur_id,
struktur_1.struktur_txt,
struktur_1.ebene
FROM
struktur AS struktur_1,
struktur AS struktur_2
WHERE
struktur_1.links BETWEEN struktur_2.links AND struktur_2.rechts
GROUP BY
struktur_1.links
Die Routine zum Erstellen der Struktur dann i.e. so
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
sub StrukturAuslesen {
my $self = shift;
my ( @Struktur, $struktur_id, $struktur_text, $ebene );
$self->SqlStatements::HoleStrukturSQL();
$self->{HoleStrukturSQL}->execute();
$self->{HoleStrukturSQL}->bind_columns(undef, \( $struktur_id, $struktur_text, $ebene ));
while ( $self->{HoleStrukturSQL}->fetch() ) {
my $padding = ($ebene * 5);
my %StrukturHash = (
ID => $struktur_id,
PADDING => $padding,
TITEL => $struktur_text,
);
push (@Struktur, \%StrukturHash);
}
return \@Struktur;
}
und im Template vereinfacht sowas
<!--TMPL_LOOP STRUKTUR_ZEILEN -->
<div id="tr_objekt_<!-- TMPL_VAR ID -->" class="struktur_zeile">
<div style="margin-left:<!-- TMPL_VAR PADDING -->px;">
<!--TMPL_VAR TITEL -->
</div>
</div>
<!--/TMPL_LOOP STRUKTUR_ZEILEN -->
Wie gesagt, ich habe mir angewohnt gleich beim Anlegen eines Datensatzes die "Ebene" zu berechnen und dann mit im Datensatz zu speichern.
Last edited: 2009-07-27 09:32:35 +0200 (CEST)