[UPDATE: funktioniert fast] template nächste tabellenzeile
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
so, das ganze läuft jetzt und ich bekomme auch meinen langersehnten output ^^
es war ein ganz doofer fehler im template, man sollte halt guggen ob BEGIN und END richtig sind.
wie gesagt, jetzt bekomme ich eine ausgabe, leider stimmt die noch nicht so ganz.
anstatt jeweils 4 fotos in einer zeile anzuzeigen und bei mehr als 4 fotos dann automatisch in die nächste zeile zu springen, werden alle fotos untereinander ausgegeben
so sollte es sein:
das wird ausgegeben:
hier nochmal der aktuelle ausschnitt aus php und tpl datei:
php
tpl
und einmal das html, was der browser bekommt:
wie bekomme ich das jetzt in den griff
danke für eure geduld
es war ein ganz doofer fehler im template, man sollte halt guggen ob BEGIN und END richtig sind.
wie gesagt, jetzt bekomme ich eine ausgabe, leider stimmt die noch nicht so ganz.
anstatt jeweils 4 fotos in einer zeile anzuzeigen und bei mehr als 4 fotos dann automatisch in die nächste zeile zu springen, werden alle fotos untereinander ausgegeben
so sollte es sein:
Code: Alles auswählen
[1] [2] [3] [4]
[5] [6] [7] [8]
...
Code: Alles auswählen
[1]
[2]
[3]
[4]
...
php
Code: Alles auswählen
$zeilen = count($cnt_alb);
for ($x = 1; $x <= $zeilen; $x++)
{
$template->assign_block_vars('zeile', array(
));
$y = $x;
for ($y = $x; $y <= $x + 4; $y++)
{
$template->assign_block_vars('zeile.bild', array(
'THMIMG' => $img_url,
));
$x++;
if(!isset($cnt_alb[$x]))
break;
}
}
tpl
Code: Alles auswählen
<!-- BEGIN zeile -->
<tr>
<!-- BEGIN bild -->
<td> {zeile.bild.THMIMG}</td>
<!-- END bild -->
</tr>
<!-- END zeile -->
und einmal das html, was der browser bekommt:
Code: Alles auswählen
<tr>
<td> <a href=gallery_pic.php?pic_id=6><img src="gallery/gal00002/_thm/DSC00001.JPG"></a><br></td>
</tr>
<tr>
<td> <a href=gallery_pic.php?pic_id=7><img src="gallery/gal00002/_thm/DSC00002.JPG"></a><br></td>
</tr>
<tr>
<td> <a href=gallery_pic.php?pic_id=8><img src="gallery/gal00002/_thm/DSC00003.JPG"></a><br></td>
</tr>
danke für eure geduld

-
- Mitglied
- Beiträge: 1697
- Registriert: 02.06.2003 14:37
- Wohnort: NRW - immer dem Monitorleuchten folgen...
- Kontaktdaten:
also ich habe gleich 2 Fehler gesehen (von mir denke ich... tschuldigung)
1.)
vor die Schleife:
$end = $x + 4;
in die Schleife anstelle von $y <= $x + 4
$y <= $end
2.) vor der Schleife:
ersetze $y = $x; durch $start = $x;
und in der Schleife
$y = $x; durch $y = $x;
nun zurück zu deinem Fehler:
if(!isset($cnt_alb[$x]))
break;
ersetze durch
if(!isset($cnt_alb[$x])){
echo '<!-- Abbruch -->' . "\n";
break;
}
dann sag mal was dann im Quelltext kommt
PS: die Lösung ist dann noch nicht HTML Konform, aber fehlerfrei darzustellen.
es fehlen die Leerfelder die mit einem else eingebunden werden
1.)
vor die Schleife:
$end = $x + 4;
in die Schleife anstelle von $y <= $x + 4
$y <= $end
2.) vor der Schleife:
ersetze $y = $x; durch $start = $x;
und in der Schleife
$y = $x; durch $y = $x;
nun zurück zu deinem Fehler:
if(!isset($cnt_alb[$x]))
break;
ersetze durch
if(!isset($cnt_alb[$x])){
echo '<!-- Abbruch -->' . "\n";
break;
}
dann sag mal was dann im Quelltext kommt
PS: die Lösung ist dann noch nicht HTML Konform, aber fehlerfrei darzustellen.
es fehlen die Leerfelder die mit einem else eingebunden werden
Die Weisheit verfolgte mich sekundenlang...
Aber sie überholte mich und war fortan nicht mehr gesehen !!!
Aber sie überholte mich und war fortan nicht mehr gesehen !!!
wie was wo ?shwepsi hat geschrieben: 1.)
und in der Schleife
$y = $x; durch $y = $x;

so sieht es jetzt aus:
Code: Alles auswählen
$img_url = "<a href=gallery_pic.php?pic_id=" . $akt_ptid . "><img src="gallery/" . $alb_row['ordner'] . "/_thm/" . $alb_row['dateiname'] . ""></a><br>";
$zeilen = count($cnt_alb);
$end = $x + 4;
for ($x = 1; $x <= $zeilen; $x++)
{
$template->assign_block_vars('zeile', array(
));
$start = $x;
for ($y = $x; $y <= $end; $y++)
{
$template->assign_block_vars('zeile.bild', array(
'THMIMG' => $img_url,
'CNT_CMTS' => $cnt_cmt
));
$x++;
if(!isset($cnt_alb[$x])){
echo "<!-- Abbruch -->" . "\n";
break;
}
}
}
das ABBRUCH wird am anfang des templates eingefügt, also unter dem letzten teil der overall_header.php
Code: Alles auswählen
<!-- Abbruch -->
<!-- Abbruch -->
<!-- Abbruch -->
<table width="100%">
<tr>
<td><center>
<span class="genbig"><b>Gallery</b></span><br><br>
<table class="forumline" width="60%" cellspacing="0" cellpadding="0" align="center">
<tr>
<th class="catHead" height="25" align="left"> Sonntag, 10. April 2005</th>
</tr>
<tr>
<td class="row1">
<table width="100%" cellspacing="0" cellpadding="5" border="0">
<tr>
<td class="row2"><span class="genmed"><i><b>TEST</a></b></i><br> Fotograf: <a href="profile.php?mode=viewprofile&u=Oli">Oli</a></span></td>
</tr>
<tr>
<td class="row1"> <br>
<table width="100%" cellspacing="0" cellpadding="5" border="0">
<tr>
<td> <a href=gallery_pic.php?pic_id=9><img src="gallery/gal00003/_thm/DSC00001.JPG"></a><br><span class="gensmall">0 Kommentare</span><br></td>
</tr>
<tr>
<td> <a href=gallery_pic.php?pic_id=10><img src="gallery/gal00003/_thm/DSC00002.JPG"></a><br><span class="gensmall">2 Kommentare</span><br></td>
</tr>
<tr>
<td> <a href=gallery_pic.php?pic_id=11><img src="gallery/gal00003/_thm/DSC00003.JPG"></a><br><span class="gensmall">0 Kommentare</span><br></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
-
- Mitglied
- Beiträge: 1697
- Registriert: 02.06.2003 14:37
- Wohnort: NRW - immer dem Monitorleuchten folgen...
- Kontaktdaten:
anstelle von
for ($y = $x;
for( $y = $start
ist zwar kein Fehler aber sauberer
und dsa echo nehme raus
und baue beim if (!isset ein:
$template->assign_block_vars('zeile.bild', array(
'ABBRUCH' => '<!-- Abbruch -->
));
und als else zu dem !isset
$template->assign_block_vars('zeile.bild', array(
'ABBRUCH' => '<!-- ok, zählt hoch -->
));
und natürlich 'ABBRUCH' auch bei der tpl auch einbauen
for ($y = $x;
for( $y = $start
ist zwar kein Fehler aber sauberer
und dsa echo nehme raus
und baue beim if (!isset ein:
$template->assign_block_vars('zeile.bild', array(
'ABBRUCH' => '<!-- Abbruch -->
));
und als else zu dem !isset
$template->assign_block_vars('zeile.bild', array(
'ABBRUCH' => '<!-- ok, zählt hoch -->
));
und natürlich 'ABBRUCH' auch bei der tpl auch einbauen
Die Weisheit verfolgte mich sekundenlang...
Aber sie überholte mich und war fortan nicht mehr gesehen !!!
Aber sie überholte mich und war fortan nicht mehr gesehen !!!
so, jetzt ist abbruch so einigermaßen an der richtigen stelle
php
ausgabe
richtig so ? ausgabe ist immer noch untereinander
Code: Alles auswählen
<!-- BEGIN zeile -->
<tr>
<!-- BEGIN bild -->
<td> {zeile.bild.THMIMG}<span class="gensmall">{zeile.bild.CNT_CMTS} Kommentare</span><br></td>
{zeile.bild.ABBRUCH}
<!-- END bild -->
</tr>
<!-- END zeile -->
php
Code: Alles auswählen
$img_url = "<a href=gallery_pic.php?pic_id=" . $akt_ptid . "><img src=\"gallery/" . $alb_row['ordner'] . "/_thm/" . $alb_row['dateiname'] . "\"></a><br>";
$zeilen = count($cnt_alb);
$end = $x + 4;
for ($x = 1; $x <= $zeilen; $x++)
{
$template->assign_block_vars('zeile', array(
));
$start = $x;
for ($y = $start; $y <= $end; $y++)
{
$template->assign_block_vars('zeile.bild', array(
'THMIMG' => $img_url,
'CNT_CMTS' => $cnt_cmt
));
$x++;
if(!isset($cnt_alb[$x])){
$template->assign_block_vars('zeile.bild', array(
'ABBRUCH' => '<!-- Abbruch -->'
));
break;
}
else {
$template->assign_block_vars('zeile.bild', array(
'ABBRUCH' => '<!-- ok, zählt hoch -->'
));
}
}
}
}
Code: Alles auswählen
<tr>
<td><center>
<span class="genbig"><b>Gallery</b></span><br><br>
<table class="forumline" width="60%" cellspacing="0" cellpadding="0" align="center">
<tr>
<th class="catHead" height="25" align="left"> Sonntag, 10. April 2005</th>
</tr>
<tr>
<td class="row1">
<table width="100%" cellspacing="0" cellpadding="5" border="0">
<tr>
<td class="row2"><span class="genmed"><i><b>Millennium München</a></b></i><br> Fotograf: <a href="profile.php?mode=viewprofile&u=Oli">Oli</a></span></td>
</tr>
<tr>
<td class="row1"> <br>
<table width="100%" cellspacing="0" cellpadding="5" border="0">
<tr>
<td> <a href=gallery_pic.php?pic_id=9><img src="gallery/gal00003/_thm/DSC00001.JPG"></a><br><span class="gensmall">0 Kommentare</span><br></td>
<td> <span class="gensmall"> Kommentare</span><br></td>
<!-- Abbruch --> </tr>
<tr>
<td> <a href=gallery_pic.php?pic_id=10><img src="gallery/gal00003/_thm/DSC00002.JPG"></a><br><span class="gensmall">2 Kommentare</span><br></td>
<td> <span class="gensmall"> Kommentare</span><br></td>
<!-- Abbruch --> </tr>
<tr>
<td> <a href=gallery_pic.php?pic_id=11><img src="gallery/gal00003/_thm/DSC00003.JPG"></a><br><span class="gensmall">0 Kommentare</span><br></td>
<td> <span class="gensmall"> Kommentare</span><br></td>
<!-- Abbruch --> </tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
-
- Mitglied
- Beiträge: 1697
- Registriert: 02.06.2003 14:37
- Wohnort: NRW - immer dem Monitorleuchten folgen...
- Kontaktdaten:
ja, und der Fehler liegt in der Abbruchbedingung.
if(!isset($cnt_alb[$x])){
echo "<!-- Abbruch -->" . "\n";
das <!-- Abbruch --> erscheint dauernd in deinem Ausgabe Quelltext.
Leider weiss ich nicht wie dein Array $cnt_alb aufgebaut ist. Ist es ein nummeriertes Array?
falls du da keine Ahnung hast gebe mal print_r($cnt_alb); ein, und zwar direkt vor der ersten schleife
das was da ausgespuckt wird sollte weiterhelfen können
PS: zeigt er da nicht eh immer das gleiche Bild an?
'THMIMG' => $img_url, <- das ist kein Array, deswegen vermute ich das mal
oder hast du die Schleife gekürzt?
if(!isset($cnt_alb[$x])){
echo "<!-- Abbruch -->" . "\n";
das <!-- Abbruch --> erscheint dauernd in deinem Ausgabe Quelltext.
Leider weiss ich nicht wie dein Array $cnt_alb aufgebaut ist. Ist es ein nummeriertes Array?
falls du da keine Ahnung hast gebe mal print_r($cnt_alb); ein, und zwar direkt vor der ersten schleife
das was da ausgespuckt wird sollte weiterhelfen können
PS: zeigt er da nicht eh immer das gleiche Bild an?
'THMIMG' => $img_url, <- das ist kein Array, deswegen vermute ich das mal
oder hast du die Schleife gekürzt?
Die Weisheit verfolgte mich sekundenlang...
Aber sie überholte mich und war fortan nicht mehr gesehen !!!
Aber sie überholte mich und war fortan nicht mehr gesehen !!!
$cnt_alb enthält nur die gesamtanzahl der zu ladenden fotos, sprich wieviele fotos das gewählte album enthält.
das array ist $alb_row, mit der abfrage:
$img_url wird durch diese schleife gefüllt, als
gibt es eine möglichkeit, das besser zu machen ? weil ich meine, du zielst auf einen anderen lösungsweg ab als ich
das array $alb_row:
die bilder werden richtig ausgegebn, also nciht immer dasselbe
das array ist $alb_row, mit der abfrage:
Code: Alles auswählen
$alb_sql = 'SELECT * FROM `gallery_pix` WHERE `album_id` = ' . $gal_id . ' ORDER BY `id` ASC LIMIT ' . $start . ', 24';
if(!$alb_result = $db->sql_query($alb_sql)) {
message_die(GENERAL_ERROR, 'Fehler beim Auslesen der Album-Informationen', '', __LINE__, __FILE__, $alb_sql);
}
while($alb_row = $db->sql_fetchrow($alb_result)) {
...
dein code ist innerhalb der schleife
}
Code: Alles auswählen
$img_url = "<a href=gallery_pic.php?pic_id=" . $akt_ptid . "><img src=\"gallery/" . $alb_row['ordner'] . "/_thm/" . $alb_row['dateiname'] . "\"></a><br>";
das array $alb_row:
Code: Alles auswählen
Array ( [id] => 9 [album_id] => 3 [ordner] => gal00003 [dateiname] => DSC00001.JPG ) Array ( [id] => 10 [album_id] => 3 [ordner] => gal00003 [dateiname] => DSC00002.JPG ) Array ( [id] => 11 [album_id] => 3 [ordner] => gal00003 [dateiname] => DSC00003.JPG