Martin: Nuke block

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

  1. 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

    --
    bythewaythewebsuxgoofflineandenjoytheday
  2. 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

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    1. 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

      1. 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

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        1. 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