Anzahl Felder pro Zeile

Anzahl Felder pro Zeile

Postby femu » Sat Jan 15, 2011 5:00 am

Hi NV,

ich hab da eine HTML-technische Frage. Wie kriegt man das hin, daß wie bei dir in der Gallery ein fixe Anzahl von Feldern pro Zeile sind. Also ich bekomme per PHP z.b. 10 Werte ausgeworfen und möchte die in der Tabelle auf 4 Felder pro Zeile begrenzen. Ich hab schon versucht, bei der Gallery zu spicken, aber ich blicke da ehrlich gesagt nicht ganz durch.

Soll also dann im Prinzip so aussehen:

Zeile 1: Wert 1 Wert 2 Wert 3 Wert 4
Zeile 2: Wert 5 Wert 6 Wert 7 Wert 8
Zeile 3: Wert 9 Wert 10

Für 'nen Denkanstoß wäre ich dankbar!

Danke und Gruß
femu
Danke und Gruß
femu
femu
Posts > 50
Posts > 50
 
Posts: 75
Topics: 18
Joined: Thu Jul 31, 2008 10:18 am
phpBB.de: femu
phpBB.com: femu

Re: Anzahl Felder pro Zeile

Postby nickvergessen » Sun Jan 16, 2011 2:22 pm

entweder div's mit 1/4tel der Seitenbreite, damit es automatisch umbricht, oder du testest ob die anzahl der ausgegebenen schleifenelemente durch 4 teilbar ist und gibst dann einen Zeilen umbruch aus.
cheers nickvergessen :geek:

Member of phpBB Development-Team
No Support via PM
User avatar
nickvergessen
Administrator
Administrator
 
Posts: 5748
Topics: 217
Images: 139
Joined: Mon Oct 15, 2007 4:15 pm
phpBB.de: nickvergessen
phpBB.com: nickvergessen

Re: Anzahl Felder pro Zeile

Postby femu » Sun Jan 16, 2011 3:54 pm

Hmmmm ... Wie könnte das mit dem Zeilenumbruch ausgeben denn aussehen?

Machen wir es mal etwas konkreter.

So sieht der Teil in der PHP aus:
Code: Select all
      $sql = 'SELECT u.user_id, u.username, u.user_colour, c.*
         FROM ' . DM_MUSIC_CHARTS_TABLE . ' c
         LEFT JOIN ' . USERS_TABLE . ' u
            ON u.user_id = c.chart_poster_id
         WHERE c.chart_add_time > ' . $config['chart_start_time'] . '
         ORDER BY c.chart_id DESC';
      $result = $db->sql_query($sql);

      while ($row = $db->sql_fetchrow($result))
      {
         $number_songs = count($row);
         
         if (empty($row['chart_picture']))
         {
            $img = $phpbb_root_path . 'images/dm_music_charts/icon_charts_video.png';
         }
         else
         {
            $img = $row['chart_picture'];
         }

         $template->assign_block_vars('newest', array(
            'ROWS'      => 100/$number_songs,
            'USER'      => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
            'SONG'      => $row['chart_song_name'],
            'ARTIST'   => $row['chart_artist'],
            'VIDEO'      => append_sid("{$phpbb_root_path}dm_music_charts.$phpEx", "mode=showvideo&v=" . $row['chart_id']),
            'IMG'      => '<img title="' . $user->lang['DM_MC_CLICK_VIDEO'] . '" alt="' . $user->lang['DM_MC_CLICK_VIDEO'] . '" height="50px" src="' . $img . '" />',
         ));


und so in der HTML:
Code: Select all
<div id="message" class="rules">
   <div class="inner"><span class="corners-top"><span></span></span>
      <strong>{L_INFORMATION}:</strong> {REMINDER}
      <!-- IF S_NEWEST -->
         <h3>{L_DM_MC_NEWEST_PERIOD}</h3>
         <table width="100%">
            <tr>
            <!-- BEGIN newest -->
               <!-- <td style="text-align: center; vertical-align: top;"> -->
               <td style="text-align: center; width: {newest.ROWS}%; vertical-align: top;">
                  <b>{newest.SONG}</b><br />
                  {L_DM_MC_FROM}<br />
                  <b>{newest.ARTIST}</b><br /><br />
                  <!-- IF S_HIGHSLIDE -->
                     <a href="{newest.VIDEO}" onclick="return hs.htmlExpand(this, { objectType: 'iframe' } )">{newest.IMG}</a>
                  <!-- ELSE -->
                     <a href="{newest.VIDEO}" onclick="return popup2(this, 'showpopup')">{newest.IMG}</a>
                  <!-- ENDIF -->
                  <br />
               </td>
            <!-- END newest -->
            </tr>
         </table>
      <!-- ENDIF -->
      <br />
   <span class="corners-bottom"><span></span></span></div>
</div>


Bis jetzt sieht das dann so aus:
Image

Ziel ist es, wie bei dir in der Gallery, daß aber nur 4 Einträge pro Zeile drinne sind und dann die nächsten 4 darunter, etc ...

Vermutlich ganz einfach, aber irgendwie habe ich da ein komplettes Blackout :?

Vielen Dank und Gruß
femu
Danke und Gruß
femu
femu
Posts > 50
Posts > 50
 
Posts: 75
Topics: 18
Joined: Thu Jul 31, 2008 10:18 am
phpBB.de: femu
phpBB.com: femu

Re: Anzahl Felder pro Zeile

Postby nickvergessen » Tue Jan 18, 2011 12:51 pm

vor
Code: Select all
<!-- END newest -->
versuch mal folgendes einzufügen:
Code: Select all
<!-- IF (newest.S_ROW_COUNT % 4) == 3 --></tr><tr><!--ENDIF-->

Jetzt müsste man noch rausfinden wie viele leere
Code: Select all
<td></td>
noch eingefügt werden müssen, damit die tabelle richtig ist.
Wenn du das nicht hinbekommst meld dich nochmal...
cheers nickvergessen :geek:

Member of phpBB Development-Team
No Support via PM
User avatar
nickvergessen
Administrator
Administrator
 
Posts: 5748
Topics: 217
Images: 139
Joined: Mon Oct 15, 2007 4:15 pm
phpBB.de: nickvergessen
phpBB.com: nickvergessen

Re: Anzahl Felder pro Zeile

Postby femu » Tue Jan 18, 2011 2:16 pm

Also bei prosilver scheint das auch ohne den td /td zu gehen und ist auch xhtml valide... Sieht also gut aus! Und soo einfach :D

Ich schau mir das heute Abend noch zu Hause für subsilver2 an, wie das dann da aussieht. Ich vermute, da müssen die dann doch irgendwie rein.

Ich melde mich dann nochmal!

Vielen, vielen Dank bis jetzt schon mal!

Gruß
femu
Danke und Gruß
femu
femu
Posts > 50
Posts > 50
 
Posts: 75
Topics: 18
Joined: Thu Jul 31, 2008 10:18 am
phpBB.de: femu
phpBB.com: femu

Re: Anzahl Felder pro Zeile

Postby femu » Tue Jan 18, 2011 6:47 pm

Ok. Hab ich mir fast gedacht. In subsilver2 schaut's so aus:

Image

Da müssen dann wohl irgendwie leere < td > < /td > mit rein ... Aber des wird wahrscheinlich schon aufwändiger, oder?

Andere Frage gleich dazu. Diese Zeile ... Ist das irgendwie "mengenmäßig" begrenzt oder ist es egal, wieviele Ergebnisse geliefert werden? Also werden dann 2, 3, 4, etc Zeilen ausgeworfen?

Danke und Gruß
Felix
Danke und Gruß
femu
femu
Posts > 50
Posts > 50
 
Posts: 75
Topics: 18
Joined: Thu Jul 31, 2008 10:18 am
phpBB.de: femu
phpBB.com: femu

Re: Anzahl Felder pro Zeile

Postby nickvergessen » Wed Jan 19, 2011 3:03 pm

Ich würde innerhalb der while-Schleife ein
Code: Select all
$anzahl_lieder++;
einfpgen, dass vor der schleife natürlich auf 0 gesetzt wird.

und nach der while schleife dann:
Code: Select all
         for ($j = 0, $j < (3 - ($anzahl_lieder % 4)); $j++)
         {
            $template->assign_block_vars('newest', array());
         }
oder sowas...
cheers nickvergessen :geek:

Member of phpBB Development-Team
No Support via PM
User avatar
nickvergessen
Administrator
Administrator
 
Posts: 5748
Topics: 217
Images: 139
Joined: Mon Oct 15, 2007 4:15 pm
phpBB.de: nickvergessen
phpBB.com: nickvergessen

Re: Anzahl Felder pro Zeile

Postby femu » Thu Jan 20, 2011 5:31 am

Hmmm ... Ich hab ja schon ein
Code: Select all
$number_songs = count($row);


drinne, was ja dann der $anzahl_lieder entsprechen würde ... denke ich mal.

Wenn ich jetzt deinen Code (leicht modifziert - ; statt , nach dem $j = 0) einsetze, sieht das genauso aus, wie vorher. Also
Code: Select all
      for ($j = 0; $j < (3 - ($number_songs / 4)); $j++)
      {
         $template->assign_block_vars('newest', array());
      }


nach der while-Schleife brngt zwar keinen Fehler, aber ändert auch nüscht .... Ich könnte zwar jetzt die Hintergrundfarbe ändern, damit das Ganze einheitlich aussieht, aber sobald jemand ein subsilver2 basierenden Style hat, geht die Rechnung nimmer auf :?
Danke und Gruß
femu
femu
Posts > 50
Posts > 50
 
Posts: 75
Topics: 18
Joined: Thu Jul 31, 2008 10:18 am
phpBB.de: femu
phpBB.com: femu

Re: Anzahl Felder pro Zeile

Postby nickvergessen » Thu Jan 20, 2011 9:33 am

Dein $number_songs = count($row); sagt dir lediglich wie viele Elemente das Array row hat, was dann wohl die Datenbank-Spalten sind und nicht die Zeilen die rauskommen ;)
cheers nickvergessen :geek:

Member of phpBB Development-Team
No Support via PM
User avatar
nickvergessen
Administrator
Administrator
 
Posts: 5748
Topics: 217
Images: 139
Joined: Mon Oct 15, 2007 4:15 pm
phpBB.de: nickvergessen
phpBB.com: nickvergessen

Re: Anzahl Felder pro Zeile

Postby femu » Thu Jan 20, 2011 11:11 am

Aha. Ok ... Denkfehler meinerseits. Also dann muß ich z.B. unterhalb meines count($row) zusätzlic $anzahl_lieder++; einsetzen und in der for Schleife das entsprechend rein tun. Ok. Probier ich mal aus.

Danke für deine Geduld!

Ok. Wir kommen der Sache schon näher ;)

Image

Als im obigen Beispiel hab ich jetzt 5 Songs und 4 leere müssten befüllt werden. Also ein Feld fehlt noch ... Das mit dem from löse ich anders. Da muß halt statt dem {L_xxx} das innerhalb der Schleife definiert werden.

EDIT: Hab es. In der for Schleife muß es 4 - heissen (statt 3 -). Dann passt das!

EDIT 2: Mist ... stimmt doch nicht. Die Anzeige ist dann zwar korrekt, aber das Ganze ist nicht mehr valide, weil dann ein abschließendes < /tr > fehlt ... grmbl ...

Vielen herzlichen Dank für deine Hilfe!

Schönen Gruß
Felix
Danke und Gruß
femu
femu
Posts > 50
Posts > 50
 
Posts: 75
Topics: 18
Joined: Thu Jul 31, 2008 10:18 am
phpBB.de: femu
phpBB.com: femu

Next

Return to General Discussion

Who is online

Users browsing this forum: No registered users and 0 guests