Nuke block
Martin
- php
Hallo,
ich hab hier einen Block für PHPNuke. Habe ihn selbst erstellt, es soll ein Newsflash sein der auf die News verlinkt.
Nun wollte ich das die Zellen unterschiedlich farblich dargestellt werden, hab mir dazu was geben lassen, es eingebaut ect doch nun wird der Inhalt des Blocks nichtmehr im BLock sondern darüber angezeigt und im Block steht dann: Dieser Block hat derzeit keinen Inhalt.
Ich weiß mittlerweile das es an folgender Zeile liegt, da ich das Ding ja vorher schon fertig hatte, nur halt alles einfarbig. Ich poste hier mal eben den Source der beiden Blöcke:
Block1 - Original funktionierender:
<?php
if (eregi('block-newsflash.php',$PHP_SELF)) {
Header('Location: index.php');
die();
}
$abfrage = 'SELECT title, sid FROM nuke_stories ORDER BY sid DESC LIMIT 10';
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis)) {
$title = $row -> title;
$id = $row -> sid;
$content .= "<table border="0" cellspacing="0" cellpadding="0" width="130" bgcolor="D7EAFF"><tr><td><a href="#$id">$title</a></td></tr>
\n";
}
?>
Block2 - Mehrfarbiger:
<?php
if (eregi('block-newsflash.php',$PHP_SELF)) {
Header('Location: index.php');
die();
}
function bgcolor($row = 1) {
static $i;
static $col = array('#FFDDDD',
'#DDFFDD',
'#DDDDFF'
);
$bg = $col[(int)($i + .00000001)];
$i += 1 / $row;
if ($i >= count($col)) $i = 0;
return $bg;
}
$abfrage = 'SELECT title, sid FROM nuke_stories ORDER BY sid DESC LIMIT 10';
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis)) {
$title = $row -> title;
$id = $row -> sid;
$content .= printf("<table border="0 cellpadding="4" cellspacing="0" align="center">
<tr bgcolor='%s'><td width="500"><a href="#$id">$title</a></td></tr></table>\n", bgcolor(1));
}
?>
--------------------------------------------------------------
So wenn ich vom ersten funktionierenden die Variable $Content nehme und sie in den 2ten Block setz, gibt er mir alles korrekt aus, nur halt einfarbig.
Lass ich es so wie es ist, gibt er es mir zwar mehrfarbig aus, jedoch leider über dem eigentlichem Block.
Also muss irgendwas an folgender Zeile nicht stimmen:
$content .= printf("<table border="0 cellpadding="4" cellspacing="0" align="center">
<tr bgcolor='%s'><td width="500"><a href="#$id">$title</a></td></tr></table>\n", bgcolor(1));
Nur was bitte?!?
Ich häng noch einen Screen mit dran.
Ich hoffe mir kann jmd helfen.
Thx & freundliche Grüsse..
Martin
Moin Martin
Also muss irgendwas an folgender Zeile nicht stimmen:
$content .= printf("<table border="0 cellpadding="4" cellspacing="0" align="center">
<tr bgcolor='%s'><td width="500"><a href="#$id">$title</a></td></tr></table>\n", bgcolor(1));
Nur was bitte?!?
printf != sprintf
Viele Grüße
lulu
Hello,
$content .= "<table border="0" cellspacing="0" cellpadding="0" width="130" bgcolor="D7EAFF"><tr><td><a href="#$id">$title</a></td></tr>
\n";
$content .= printf("<table border="0 cellpadding="4" cellspacing="0" align="center">
<tr bgcolor='%s'><td width="500"><a href="#$id">$title</a></td></tr></table>\n", bgcolor(1));Also muss irgendwas an folgender Zeile nicht stimmen:
$content .= "<table border="0"\n". # <-- hier war der Fehler
" cellpadding="4"\n".
" cellspacing="0"\n".
" align="center">\n";
$content .= " <tr bgcolor="".bgcolor(1)."">\n";
$content .= " <td width="500">".
$content .= "<a href="#$id">$title</a></td>\n";
$content .= " </tr>\n";
$content .= "</table>\n";
Wer die Chaos-Schreibweise liebt, kommt darin um ;-))
So müsste es funktionieren.
Zum Debuggen solcher Statements empfiehlt es ich, auch mal den resultierenden HTML-Code anzuschauen. Du weißt schon, das sind die rechte Maustaste-Funktionen, die von JavaScriptKiddies gerne ausgeschaltet werden.
Liebe Grüße aus http://www.braunschweig.de
Tom
Tag nochma,
$content .= "<table border="0" cellspacing="0" cellpadding="0" width="130" bgcolor="D7EAFF"><tr><td><a href="#$id">$title</a></td></tr>
\n";$content .= printf("<table border="0 cellpadding="4" cellspacing="0" align="center">
<tr bgcolor='%s'><td width="500"><a href="#$id">$title</a></td></tr></table>\n", bgcolor(1));Also muss irgendwas an folgender Zeile nicht stimmen:
$content .= "<table border="0"\n". # <-- hier war der Fehler
" cellpadding="4"\n".
" cellspacing="0"\n".
" align="center">\n";
$content .= " <tr bgcolor="".bgcolor(1)."">\n";
$content .= " <td width="500">".
$content .= "<a href="#$id">$title</a></td>\n";
$content .= " </tr>\n";
$content .= "</table>\n";
Also schauts euch bitte an, irgendwas is da jetzt noch falscher als vorher :-P
http://www.game-reality.de/indexo.php
Hello,
der vorgeschlagene Code:
$content .= "<table border="0"\n". # <-- hier war der Fehler
" cellpadding="4"\n".
" cellspacing="0"\n".
" align="center">\n";
$content .= " <tr bgcolor="".bgcolor(1)."">\n";
$content .= " <td width="500">".
$content .= "<a href="#$id">$title</a></td>\n";
$content .= " </tr>\n";
$content .= "</table>\n";Also schauts euch bitte an, irgendwas is da jetzt noch falscher als vorher :-P
http://www.game-reality.de/indexo.php
Das habe ich bei Dir ausgeschnitten:
Das ist aber nicht der Code, den ich Dir vorgemalt hatte! Wo ist denn das TableData-Tag geblieben?
<table border="0"
cellpadding="0"
cellspacing="0"
width="100%"
align="center">
<tr bgcolor="#FFDDDD">
<a href="#21">dfgdf dfgdfgd</a>
</tr>
</table>
<table border="0"
cellpadding="0"
cellspacing="0"
width="100%"
align="center">
<tr bgcolor="#DDFFDD"> <!-- hier fehlt was -->
<a href="#20">dsfsdf</a> <!-- und hier auch! -->
</tr>
</table>
Liebe Grüße aus http://www.braunschweig.de
Tom
HI,
ja ich weiß, weil es ging mit dem Code nicht richtig ..wusste nicht wieso und hab einfach mal verschiedene zeilen rausgenommen.
Mittlerweile funktioniert es aber soweit ich das sehen kann. Lag an dem <td> Tag, hab ihn rausgenommen..ich weiß zwar nicht wieso, aber jetz funktioniert es wenigstens.
Gruss & thx nochmal
Micha