Ich arbeite gerade auch an einer ähnliche Aufgabenstellung (Anmelde-Formular für Tanzkurse). Da ich so ziemlich alle Daten des Listen-Items an das Anmelde-Formular übergeben muss, diese aber nicht alle an die URL sichtbar anhängen möchte, arbeite ich mit einem Formular mit Feldern vom Typ "hidden" um mit der Methode "post" die Daten zu übergeben. Dazu habe ich von der Wiki-Seite ein Beispiel zur Template-Anpassung (Katalog-Liste) als Grundlage genommen und entsprechend angepasst.
Da ich aber wenig Erfahrung mit PHP (insbesondere mit dem Handling von Sessions) habe, wäre ich dankbar für Hinweise ( hallo, MacKP ), ob es bei dieser Lösung Sicherheits- oder andere Risiken gibt, die ich berücksichtigen sollte, oder ob dies eine adäquate Lösung sein könnte. Hier der Code, leider noch ohne Kommentare ...
PHP-Code:
<?php
if(count($this->entries)):
$monbynam=array("","Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
$fieldwidth=array(0,115,115,115,73,68,115,115,115,115,115,115,115);
$cur_fieldwidth=0;
foreach($this->entries as $entry):
$erster_kurstag=$entry[data]['erster_kurstag'][value];
$monbynum=date("n",$erster_kurstag);
if($cur_fieldwidth<$fieldwidth[$monbynum]):
$cur_fieldwidth=$fieldwidth[$monbynum];
endif;
endforeach;
reset($this->entries);
$entry=current($this->entries);
$cur_zielgruppe=$entry[data]['zielgruppe'][value];
$cur_untergruppe='';
$cur_style='';
$cur_level='';
$cur_lesson='';
$cur_kurstag='';
$cur_kurszeit='';
$cur_erster_kurstag='';
$cur_bemerkung=''; ?>
<h1 class="ce_headline"><?php echo $cur_zielgruppe ?></h1>
<div class="custom_tableless"><?php
foreach($this->entries as $entry):
$cur_untergruppe=$entry[data]['untergruppe'][value];
$cur_kurstag=$entry[data]['kurstag'][value];
$cur_kurszeit=$entry[data]['kursbeginn_H'][value].".".$entry[data]['kursbeginn_i'][value]." – ".$entry[data]['kursende_H'][value].".".$entry[data]['kursende_i'][value]." Uhr";
$erster_kurstag=$entry[data]['erster_kurstag'][value];
$monbynum=date("n",$erster_kurstag);
$cur_erster_kurstag="ab ".date("d",$erster_kurstag).". ".$monbynam[$monbynum];
$cur_bemerkung=$entry[data]['bemerkung'][value];
if($cur_style!=$entry[data]['style'][value]):
$cur_style=$entry[data]['style'][value]; ?>
<h2 class="red"><?php echo $cur_style; ?></h2><?php
endif;
if($cur_level!=$entry[data]['level'][value]):
$cur_level=$entry[data]['level'][value];
$cur_lesson=$entry[data]['kurseinheiten'][value]." x ".$entry[data]['kursdauer'][value]." Min. | ".$entry[data]['preis'][value]; ?>
<h3><?php echo $cur_level; ?></h3>
<p><?php echo $cur_lesson; ?></p><?php
endif; ?>
<div class="item<?php echo $entry['class']; ?>">
<div class="field kurstag float_left"><?php echo $cur_kurstag;?></div>
<div class="field kurszeit float_left"><?php echo $cur_kurszeit;?></div>
<div class="field erster_kurstag float_left" style="width:<?php echo $cur_fieldwidth; ?>px;"><?php echo $cur_erster_kurstag;?></div>
<div class="field anmelden float_left">
<form action="anmelden.html" method="post">
<div class="formbody">
<input type="hidden" name="zielgruppe" value="<?php echo $cur_zielgruppe; ?>" />
<input type="hidden" name="untergruppe" value="<?php echo $cur_untergruppe; ?>" />
<input type="hidden" name="style" value="<?php echo $cur_style; ?>" />
<input type="hidden" name="level" value="<?php echo $cur_level; ?>" />
<input type="hidden" name="lesson" value="<?php echo $cur_lesson; ?>" />
<input type="hidden" name="kurstag" value="<?php echo $cur_kurstag; ?>" />
<input type="hidden" name="kurszeit" value="<?php echo $cur_kurszeit; ?>" />
<input type="hidden" name="erster_kurstag" value="<?php echo $cur_erster_kurstag; ?>" />
<input type="hidden" name="bemerkung" value="<?php echo $cur_bemerkung; ?>" />
<input type="hidden" name="REQUEST_TOKEN" value="{{request_token}}" />
<div class="submit_container">
<input type="submit" class="submit" value="anmelden" />
</div>
</div>
</form>
</div>
<div class="field bemerkung"><?php echo $cur_bemerkung;?></div>
</div><?php
endforeach; ?>
</div><?php
else:
if($this->condition): ?>
<p class="condition"><?php echo $this->condition; ?></p><?php
else: ?>
<p class="info">Keine Einträge in der Kursliste gefunden!</p><?php
endif;
endif; ?>
So sieht die Liste im FE aus liste.png ...
Grüße
Uli
Lesezeichen