Tabellenmodul für gruppierte Elemente

Gesperrt
_Marc
Beiträge: 76
Registriert: Di 12. Sep 2006, 11:38
Kontaktdaten:

Tabellenmodul für gruppierte Elemente

Beitrag von _Marc » Mi 28. Feb 2007, 14:06

Hallo,

wie im Modul-Requests kurz diskutiert habe ich nach einer Lösung gesucht, eine Tabelle zu erstellen in der, geordnet nach Gruppen, Mitarbeiter aufgelistet werden. Nachdem ich mich von der Idee, alles automatisiert im Edit ablaufen zu lassen, verabschiedet habe, lassen sich Anzahl der Gruppen und Anzahl der Elemente in den Gruppen jetzt in der Konfiguration einstellen.

Einschränkung: Die Anzahl der Elemente ist erstmal auf 100 beschränkt, kann aber durch eine Erweiterung der Lookup-Tabelle aufgestockt werden.

Im Edit wird dann eine entsprechende Tabelle ausgegeben, die mit Inhalten gefüllt werden kann. Es gibt noch keine Demo davon (zumindest nicht online), aber das ganze sieht für 3 Gruppen mit je 4 Personen in 2 Spalten ungefähr so aus:

Gruppenüberschrift 1

Bild | Titel / Text | Bild | Titel / Text

Bild | Titel / Text | Bild | Titel / Text


Gruppenüberschrift 2

Bild | Titel / Text | Bild | Titel / Text

Bild | Titel / Text | Bild | Titel / Text


Gruppenüberschrift 3

Bild | Titel / Text | Bild | Titel / Text

Bild | Titel / Text | Bild | Titel / Text


Input:

Code: Alles auswählen

$counter=100; //Anzahl verfügbare CMS_ in Lookup-Table

echo '<table><tr>
      <td>Anzahl Gruppen:</td>
      <td><input type="text" size="2" maxlength="2" name="CMS_VAR[0]" value="CMS_VALUE[0]"></td>
      <td>Personen pro Zeile: </td>
      <td><input type="text" size="2" maxlength="2" name="CMS_VAR[1]" value="CMS_VALUE[1]"></td>
      </tr><tr><td colspan="4"><strong>
      Bitte beachten: Die Anzahl der Personen darf in der Summe '.$counter.' nicht überschreiten. <br> 
      Wird die Zahl der Gruppen nachträglich reduziert, werden Gruppenüberschriften und Personenzahl <br> 
      der wegfallenden Gruppen gelöscht!</strong>
      <hr></td></tr>';
  if ("CMS_VALUE[0]">0) {
    for ($i=2;$i<=("CMS_VALUE[0]"*2);$i+=2) { 
      if($counter>0) {
          echo '<tr><td>Gruppenüberschrift: </td> 
                     <td><input type="text" size="20" maxlength="50" name="CMS_VAR['.$i.']" value="';
          echo $CMS_VALUE[$i];
          echo        '"> </td><td>Anzahl Personen: </td>
                        <td><input type="text" size="2" maxlength="2" name="CMS_VAR['.($i+1).']" value="';
          echo $CMS_VALUE[($i+1)];
          $counter -= $CMS_VALUE[($i+1)];
          echo        '"> </td></tr>';
      } else {
          echo '<tr><td colspan="2"><strong>maximal mögliche Anzahl Personen erreicht, 
                bitte reduzieren Sie die Anzahl der Personen!</strong></td></tr>'; 
          break;
      }
    } 
  }  
echo '</table>';
Output

Code: Alles auswählen

<?php

$CMS_TYPE = array( 
    array("img" => "CMS_IMG[100]","imgedit" => "CMS_IMGEDIT[100]","head" => "CMS_HEAD[100]","html" => "CMS_HTML[100]"),
    array("img" => "CMS_IMG[101]","imgedit" => "CMS_IMGEDIT[101]","head" => "CMS_HEAD[101]","html" => "CMS_HTML[101]"),
    array("img" => "CMS_IMG[102]","imgedit" => "CMS_IMGEDIT[102]","head" => "CMS_HEAD[102]","html" => "CMS_HTML[102]"),
    array("img" => "CMS_IMG[103]","imgedit" => "CMS_IMGEDIT[103]","head" => "CMS_HEAD[103]","html" => "CMS_HTML[103]"),
    array("img" => "CMS_IMG[104]","imgedit" => "CMS_IMGEDIT[104]","head" => "CMS_HEAD[104]","html" => "CMS_HTML[104]"),
    array("img" => "CMS_IMG[105]","imgedit" => "CMS_IMGEDIT[105]","head" => "CMS_HEAD[105]","html" => "CMS_HTML[105]"),
    array("img" => "CMS_IMG[106]","imgedit" => "CMS_IMGEDIT[106]","head" => "CMS_HEAD[106]","html" => "CMS_HTML[106]"),
    array("img" => "CMS_IMG[107]","imgedit" => "CMS_IMGEDIT[107]","head" => "CMS_HEAD[107]","html" => "CMS_HTML[107]"),
    array("img" => "CMS_IMG[108]","imgedit" => "CMS_IMGEDIT[108]","head" => "CMS_HEAD[108]","html" => "CMS_HTML[108]"),
    array("img" => "CMS_IMG[109]","imgedit" => "CMS_IMGEDIT[109]","head" => "CMS_HEAD[109]","html" => "CMS_HTML[109]"),
    array("img" => "CMS_IMG[110]","imgedit" => "CMS_IMGEDIT[110]","head" => "CMS_HEAD[110]","html" => "CMS_HTML[110]"),
    array("img" => "CMS_IMG[111]","imgedit" => "CMS_IMGEDIT[111]","head" => "CMS_HEAD[111]","html" => "CMS_HTML[111]"),
    array("img" => "CMS_IMG[112]","imgedit" => "CMS_IMGEDIT[112]","head" => "CMS_HEAD[112]","html" => "CMS_HTML[112]"),
    array("img" => "CMS_IMG[113]","imgedit" => "CMS_IMGEDIT[113]","head" => "CMS_HEAD[113]","html" => "CMS_HTML[113]"),
    array("img" => "CMS_IMG[114]","imgedit" => "CMS_IMGEDIT[114]","head" => "CMS_HEAD[114]","html" => "CMS_HTML[114]"),
    array("img" => "CMS_IMG[115]","imgedit" => "CMS_IMGEDIT[115]","head" => "CMS_HEAD[115]","html" => "CMS_HTML[115]"),
    array("img" => "CMS_IMG[116]","imgedit" => "CMS_IMGEDIT[116]","head" => "CMS_HEAD[116]","html" => "CMS_HTML[116]"),
    array("img" => "CMS_IMG[117]","imgedit" => "CMS_IMGEDIT[117]","head" => "CMS_HEAD[117]","html" => "CMS_HTML[117]"),
    array("img" => "CMS_IMG[118]","imgedit" => "CMS_IMGEDIT[118]","head" => "CMS_HEAD[118]","html" => "CMS_HTML[118]"),
    array("img" => "CMS_IMG[119]","imgedit" => "CMS_IMGEDIT[119]","head" => "CMS_HEAD[119]","html" => "CMS_HTML[119]"),
    array("img" => "CMS_IMG[120]","imgedit" => "CMS_IMGEDIT[120]","head" => "CMS_HEAD[120]","html" => "CMS_HTML[120]"),
    array("img" => "CMS_IMG[121]","imgedit" => "CMS_IMGEDIT[121]","head" => "CMS_HEAD[121]","html" => "CMS_HTML[121]"),
    array("img" => "CMS_IMG[122]","imgedit" => "CMS_IMGEDIT[122]","head" => "CMS_HEAD[122]","html" => "CMS_HTML[122]"),
    array("img" => "CMS_IMG[123]","imgedit" => "CMS_IMGEDIT[123]","head" => "CMS_HEAD[123]","html" => "CMS_HTML[123]"),
    array("img" => "CMS_IMG[124]","imgedit" => "CMS_IMGEDIT[124]","head" => "CMS_HEAD[124]","html" => "CMS_HTML[124]"),
    array("img" => "CMS_IMG[125]","imgedit" => "CMS_IMGEDIT[125]","head" => "CMS_HEAD[125]","html" => "CMS_HTML[125]"),
    array("img" => "CMS_IMG[126]","imgedit" => "CMS_IMGEDIT[126]","head" => "CMS_HEAD[126]","html" => "CMS_HTML[126]"),
    array("img" => "CMS_IMG[127]","imgedit" => "CMS_IMGEDIT[127]","head" => "CMS_HEAD[127]","html" => "CMS_HTML[127]"),
    array("img" => "CMS_IMG[128]","imgedit" => "CMS_IMGEDIT[128]","head" => "CMS_HEAD[128]","html" => "CMS_HTML[128]"),
    array("img" => "CMS_IMG[129]","imgedit" => "CMS_IMGEDIT[129]","head" => "CMS_HEAD[129]","html" => "CMS_HTML[129]"),
    array("img" => "CMS_IMG[130]","imgedit" => "CMS_IMGEDIT[130]","head" => "CMS_HEAD[130]","html" => "CMS_HTML[130]"),
    array("img" => "CMS_IMG[131]","imgedit" => "CMS_IMGEDIT[131]","head" => "CMS_HEAD[131]","html" => "CMS_HTML[131]"),
    array("img" => "CMS_IMG[132]","imgedit" => "CMS_IMGEDIT[132]","head" => "CMS_HEAD[132]","html" => "CMS_HTML[132]"),
    array("img" => "CMS_IMG[133]","imgedit" => "CMS_IMGEDIT[133]","head" => "CMS_HEAD[133]","html" => "CMS_HTML[133]"),
    array("img" => "CMS_IMG[134]","imgedit" => "CMS_IMGEDIT[134]","head" => "CMS_HEAD[134]","html" => "CMS_HTML[134]"),
    array("img" => "CMS_IMG[135]","imgedit" => "CMS_IMGEDIT[135]","head" => "CMS_HEAD[135]","html" => "CMS_HTML[135]"),
    array("img" => "CMS_IMG[136]","imgedit" => "CMS_IMGEDIT[136]","head" => "CMS_HEAD[136]","html" => "CMS_HTML[136]"),
    array("img" => "CMS_IMG[137]","imgedit" => "CMS_IMGEDIT[137]","head" => "CMS_HEAD[137]","html" => "CMS_HTML[137]"),
    array("img" => "CMS_IMG[138]","imgedit" => "CMS_IMGEDIT[138]","head" => "CMS_HEAD[138]","html" => "CMS_HTML[138]"),
    array("img" => "CMS_IMG[139]","imgedit" => "CMS_IMGEDIT[139]","head" => "CMS_HEAD[139]","html" => "CMS_HTML[139]"),
    array("img" => "CMS_IMG[140]","imgedit" => "CMS_IMGEDIT[140]","head" => "CMS_HEAD[140]","html" => "CMS_HTML[140]"),
    array("img" => "CMS_IMG[141]","imgedit" => "CMS_IMGEDIT[141]","head" => "CMS_HEAD[141]","html" => "CMS_HTML[141]"),
    array("img" => "CMS_IMG[142]","imgedit" => "CMS_IMGEDIT[142]","head" => "CMS_HEAD[142]","html" => "CMS_HTML[142]"),
    array("img" => "CMS_IMG[143]","imgedit" => "CMS_IMGEDIT[143]","head" => "CMS_HEAD[143]","html" => "CMS_HTML[143]"),
    array("img" => "CMS_IMG[144]","imgedit" => "CMS_IMGEDIT[144]","head" => "CMS_HEAD[144]","html" => "CMS_HTML[144]"),
    array("img" => "CMS_IMG[145]","imgedit" => "CMS_IMGEDIT[145]","head" => "CMS_HEAD[145]","html" => "CMS_HTML[145]"),
    array("img" => "CMS_IMG[146]","imgedit" => "CMS_IMGEDIT[146]","head" => "CMS_HEAD[146]","html" => "CMS_HTML[146]"),
    array("img" => "CMS_IMG[147]","imgedit" => "CMS_IMGEDIT[147]","head" => "CMS_HEAD[147]","html" => "CMS_HTML[147]"),
    array("img" => "CMS_IMG[148]","imgedit" => "CMS_IMGEDIT[148]","head" => "CMS_HEAD[148]","html" => "CMS_HTML[148]"),
    array("img" => "CMS_IMG[149]","imgedit" => "CMS_IMGEDIT[149]","head" => "CMS_HEAD[149]","html" => "CMS_HTML[149]"),
    array("img" => "CMS_IMG[150]","imgedit" => "CMS_IMGEDIT[150]","head" => "CMS_HEAD[150]","html" => "CMS_HTML[150]"),
    array("img" => "CMS_IMG[151]","imgedit" => "CMS_IMGEDIT[151]","head" => "CMS_HEAD[151]","html" => "CMS_HTML[151]"),
    array("img" => "CMS_IMG[152]","imgedit" => "CMS_IMGEDIT[152]","head" => "CMS_HEAD[152]","html" => "CMS_HTML[152]"),
    array("img" => "CMS_IMG[153]","imgedit" => "CMS_IMGEDIT[153]","head" => "CMS_HEAD[153]","html" => "CMS_HTML[153]"),
    array("img" => "CMS_IMG[154]","imgedit" => "CMS_IMGEDIT[154]","head" => "CMS_HEAD[154]","html" => "CMS_HTML[154]"),
    array("img" => "CMS_IMG[155]","imgedit" => "CMS_IMGEDIT[155]","head" => "CMS_HEAD[155]","html" => "CMS_HTML[155]"),
    array("img" => "CMS_IMG[156]","imgedit" => "CMS_IMGEDIT[156]","head" => "CMS_HEAD[156]","html" => "CMS_HTML[156]"),
    array("img" => "CMS_IMG[157]","imgedit" => "CMS_IMGEDIT[157]","head" => "CMS_HEAD[157]","html" => "CMS_HTML[157]"),
    array("img" => "CMS_IMG[158]","imgedit" => "CMS_IMGEDIT[158]","head" => "CMS_HEAD[158]","html" => "CMS_HTML[158]"),
    array("img" => "CMS_IMG[159]","imgedit" => "CMS_IMGEDIT[159]","head" => "CMS_HEAD[159]","html" => "CMS_HTML[159]"),
    array("img" => "CMS_IMG[160]","imgedit" => "CMS_IMGEDIT[160]","head" => "CMS_HEAD[160]","html" => "CMS_HTML[160]"),
    array("img" => "CMS_IMG[161]","imgedit" => "CMS_IMGEDIT[161]","head" => "CMS_HEAD[161]","html" => "CMS_HTML[161]"),
    array("img" => "CMS_IMG[162]","imgedit" => "CMS_IMGEDIT[162]","head" => "CMS_HEAD[162]","html" => "CMS_HTML[162]"),
    array("img" => "CMS_IMG[163]","imgedit" => "CMS_IMGEDIT[163]","head" => "CMS_HEAD[163]","html" => "CMS_HTML[163]"),
    array("img" => "CMS_IMG[164]","imgedit" => "CMS_IMGEDIT[164]","head" => "CMS_HEAD[164]","html" => "CMS_HTML[164]"),
    array("img" => "CMS_IMG[165]","imgedit" => "CMS_IMGEDIT[165]","head" => "CMS_HEAD[165]","html" => "CMS_HTML[165]"),
    array("img" => "CMS_IMG[166]","imgedit" => "CMS_IMGEDIT[166]","head" => "CMS_HEAD[166]","html" => "CMS_HTML[166]"),
    array("img" => "CMS_IMG[167]","imgedit" => "CMS_IMGEDIT[167]","head" => "CMS_HEAD[167]","html" => "CMS_HTML[167]"),
    array("img" => "CMS_IMG[168]","imgedit" => "CMS_IMGEDIT[168]","head" => "CMS_HEAD[168]","html" => "CMS_HTML[168]"),
    array("img" => "CMS_IMG[169]","imgedit" => "CMS_IMGEDIT[169]","head" => "CMS_HEAD[169]","html" => "CMS_HTML[169]"),
    array("img" => "CMS_IMG[170]","imgedit" => "CMS_IMGEDIT[170]","head" => "CMS_HEAD[170]","html" => "CMS_HTML[170]"),
    array("img" => "CMS_IMG[171]","imgedit" => "CMS_IMGEDIT[171]","head" => "CMS_HEAD[171]","html" => "CMS_HTML[171]"),
    array("img" => "CMS_IMG[172]","imgedit" => "CMS_IMGEDIT[172]","head" => "CMS_HEAD[172]","html" => "CMS_HTML[172]"),
    array("img" => "CMS_IMG[173]","imgedit" => "CMS_IMGEDIT[173]","head" => "CMS_HEAD[173]","html" => "CMS_HTML[173]"),
    array("img" => "CMS_IMG[174]","imgedit" => "CMS_IMGEDIT[174]","head" => "CMS_HEAD[174]","html" => "CMS_HTML[174]"),
    array("img" => "CMS_IMG[175]","imgedit" => "CMS_IMGEDIT[175]","head" => "CMS_HEAD[175]","html" => "CMS_HTML[175]"),
    array("img" => "CMS_IMG[176]","imgedit" => "CMS_IMGEDIT[176]","head" => "CMS_HEAD[176]","html" => "CMS_HTML[176]"),
    array("img" => "CMS_IMG[177]","imgedit" => "CMS_IMGEDIT[177]","head" => "CMS_HEAD[177]","html" => "CMS_HTML[177]"),
    array("img" => "CMS_IMG[178]","imgedit" => "CMS_IMGEDIT[178]","head" => "CMS_HEAD[178]","html" => "CMS_HTML[178]"),
    array("img" => "CMS_IMG[179]","imgedit" => "CMS_IMGEDIT[179]","head" => "CMS_HEAD[179]","html" => "CMS_HTML[179]"),
    array("img" => "CMS_IMG[180]","imgedit" => "CMS_IMGEDIT[180]","head" => "CMS_HEAD[180]","html" => "CMS_HTML[180]"),
    array("img" => "CMS_IMG[181]","imgedit" => "CMS_IMGEDIT[181]","head" => "CMS_HEAD[181]","html" => "CMS_HTML[181]"),
    array("img" => "CMS_IMG[182]","imgedit" => "CMS_IMGEDIT[182]","head" => "CMS_HEAD[182]","html" => "CMS_HTML[182]"),
    array("img" => "CMS_IMG[183]","imgedit" => "CMS_IMGEDIT[183]","head" => "CMS_HEAD[183]","html" => "CMS_HTML[183]"),
    array("img" => "CMS_IMG[184]","imgedit" => "CMS_IMGEDIT[184]","head" => "CMS_HEAD[184]","html" => "CMS_HTML[184]"),
    array("img" => "CMS_IMG[185]","imgedit" => "CMS_IMGEDIT[185]","head" => "CMS_HEAD[185]","html" => "CMS_HTML[185]"),
    array("img" => "CMS_IMG[186]","imgedit" => "CMS_IMGEDIT[186]","head" => "CMS_HEAD[186]","html" => "CMS_HTML[186]"),
    array("img" => "CMS_IMG[187]","imgedit" => "CMS_IMGEDIT[187]","head" => "CMS_HEAD[187]","html" => "CMS_HTML[187]"),
    array("img" => "CMS_IMG[188]","imgedit" => "CMS_IMGEDIT[188]","head" => "CMS_HEAD[188]","html" => "CMS_HTML[188]"),
    array("img" => "CMS_IMG[189]","imgedit" => "CMS_IMGEDIT[189]","head" => "CMS_HEAD[189]","html" => "CMS_HTML[189]"),
    array("img" => "CMS_IMG[190]","imgedit" => "CMS_IMGEDIT[190]","head" => "CMS_HEAD[190]","html" => "CMS_HTML[190]"),
    array("img" => "CMS_IMG[191]","imgedit" => "CMS_IMGEDIT[191]","head" => "CMS_HEAD[191]","html" => "CMS_HTML[191]"),
    array("img" => "CMS_IMG[192]","imgedit" => "CMS_IMGEDIT[192]","head" => "CMS_HEAD[192]","html" => "CMS_HTML[192]"),
    array("img" => "CMS_IMG[193]","imgedit" => "CMS_IMGEDIT[193]","head" => "CMS_HEAD[193]","html" => "CMS_HTML[193]"),
    array("img" => "CMS_IMG[194]","imgedit" => "CMS_IMGEDIT[194]","head" => "CMS_HEAD[194]","html" => "CMS_HTML[194]"),
    array("img" => "CMS_IMG[195]","imgedit" => "CMS_IMGEDIT[195]","head" => "CMS_HEAD[195]","html" => "CMS_HTML[195]"),
    array("img" => "CMS_IMG[196]","imgedit" => "CMS_IMGEDIT[196]","head" => "CMS_HEAD[196]","html" => "CMS_HTML[196]"),
    array("img" => "CMS_IMG[197]","imgedit" => "CMS_IMGEDIT[197]","head" => "CMS_HEAD[197]","html" => "CMS_HTML[197]"),
    array("img" => "CMS_IMG[198]","imgedit" => "CMS_IMGEDIT[198]","head" => "CMS_HEAD[198]","html" => "CMS_HTML[198]"),
    array("img" => "CMS_IMG[199]","imgedit" => "CMS_IMGEDIT[199]","head" => "CMS_HEAD[199]","html" => "CMS_HTML[199]"),
    array("img" => "CMS_IMG[200]","imgedit" => "CMS_IMGEDIT[200]","head" => "CMS_HEAD[200]","html" => "CMS_HTML[200]")
);
$counter=0;

echo '<table class="team">';
for ($i=2;$i<=("CMS_VALUE[0]"*2);$i+=2) {
  echo '<tr><th colspan="'.("CMS_VALUE[1]"*2).'">';
  echo $CMS_VALUE[$i];
  echo "</th></tr><tr>";
  $maxCols="CMS_VALUE[1]";
  for ($j=1; $j<=$CMS_VALUE[($i+1)]; $j++) {
      if($maxCols==0) {
      echo '</tr><tr>';
      $maxCols="CMS_VALUE[1]";
      }
      if($counter<count($CMS_TYPE)) {
          echo '<td><img src="'.$CMS_TYPE[$counter]["img"].
               '" width="80" height="100">'.$CMS_TYPE[$counter]["imgedit"].'</td>';
          echo '<td valign="top"><h3>'.$CMS_TYPE[$counter]["head"].'</h3>'.
                $CMS_TYPE[$counter]["html"].'</td>';
          $counter++;
          $maxCols--;
      } elseif ($edit) {
          echo '<td>maximale Anzahl Personen erreicht!</td>';
          break 2;
        }
  }
  echo '</tr>';
}
echo '</table>';
?>
Vielleicht braucht es nochmal jemand, mit einigen Änderungen ist es sicherlich recht universell einsetzbar.

Grüße
_Marc

Gesperrt