hi himmelreich...
ich habe das ganze mal für einen pizzadienst gebaut, klappt auch ganz gut. ersetzt aber kein shopsystem.
der anfang
das hier in dein default template ganz nach oben damit der ganze klumpatsch erst mal in eine session geschrieben wird und du später drauf zugreifen kannst.
Code: Alles auswählen
<?php
session_start(); // brauch natürlich nur einmal im template zu sein
$artid = rex_getUrl($this->getValue('article_id'), $REX['CUR_CLANG']);
if ((int)$_REQUEST['add'] != "0") { $_SESSION["shoppingcart"][(int)$_REQUEST['add']]["menge"] += 1;
$artid = rex_getUrl($this->getValue('article_id'), $REX['CUR_CLANG']);
header("Location: http://". $_SERVER['HTTP_HOST'] ."/".$artid); exit(); }
if ((int)$_REQUEST['remove'] != "0") { unset($_SESSION["shoppingcart"][(int)$_REQUEST['remove']]);
$artid = rex_getUrl($this->getValue('article_id'), $REX['CUR_CLANG']);
header("Location: http://". $_SERVER['HTTP_HOST'] ."/".$artid); exit();
}
?>
einen artikel anlegen der *offline* bleibt. (nenn ihn merkzettel oder so)
block per modul minibeispiel php einpflegen:
hier zu bekommen
http://www.redaxo.de/165-Moduldetails.html?module_id=9
Code: Alles auswählen
<?php if (sizeof($_SESSION["shoppingcart"]) != 0) {
echo '<h1 class="bestellen">Bisher auf dem Lieferschein:</h1>';
$db_korb = " SELECT * FROM rex_article_slice WHERE modultyp_id = '79'";
$prods = new rex_sql; $prods->setQuery($db_korb);
for ($i=0;$i<$prods->getRows();$i++) {
foreach ($_SESSION['shoppingcart'] as $pid => $id) {
if ($pid == $prods->getValue("id")) {
echo ' <div class="merkzettel"> ';
echo ' <h3 class="bestellen">'.$id["menge"].' x '.$prods->getValue("value1").' - '.$prods->getValue("value2").', a '.$prods->getValue("value4").'
<br><a href="'.rex_getUrl($prods->getValue("article_id")).'"> Mehr Information ...</span></a></h3> <p><a class="entfernen" href="'.rex_getUrl($this->getValue(article_id), $REX["CUR_CLANG"], array('remove'=>$prods->getValue("id"))).'"> Vom Lieferschein löschen</a></p></div> ';
$products_mail .= $id["menge"]." x "; $products_mail .= $prods->getValue("value1")." - "; $products_mail .= $prods->getValue("value2")."\n";
$products_mail .= $prods->getValue("value3")." a "; $products_mail .= $prods->getValue("value4")."\n"; } }
$prods->next(); } ; } else { echo '<h1>Ihr Lieferschein ist leer</h1>'; }
?>
im gleichen artikel (merkzettel) als zweiten block das hier:
achtung die 13 im form link bitte gegen die id des angelegten artikel tauschen.
Code: Alles auswählen
<?php if ($_GET[action] != "send") {?>
<div class="bestell_form">
<form name="form1" method="post" action="index.php?article_id=13&action=send">
<label>Name:</label>
<input type="text" name="nachname" id="nachname">
<label>Strasse:</label>
<input type="text" name="strasse" id="strasse">
<label>PLZ:</label>
<input type="text" name="plz" id="plz">
<label>Ort:</label>
<input type="text" name="ort" id="ort">
<label>Telefon:</label>
<input type="text" name="telefon" id="telefon">
<label>E-Mail:</label>
<input type="text" name="email" id="email">
<input type="submit" name="send" id="send" value="send">
</form>
</div>
<?php } ?>
weiterverarbeiten als email versenden... dein job
im default template an der stelle wo der warenkorb erscheinen soll.
im link bitte das:
.rex_getUrl(13,0). also die 13 ändern in die merkzettel artikel id
Code: Alles auswählen
<?php if (sizeof($_SESSION["shoppingcart"]) != 0){ echo ' <div id="order"> <p>'; echo (count($_SESSION["shoppingcart"])); if (count($_SESSION["shoppingcart"]) == 1) { echo ' Produkt'; } else { echo ' Produkte'; } echo '<br /> auf Ihrem Lieferschein.<br /> <a href="'.rex_getUrl(13,0).'">bestellen</a></p> </div>'; } ?>
das bestellen modul mit dem du die zu bestellenden artikel anlegst
eingabe anpassen an die eigenen bedürfnisse:
Code: Alles auswählen
Gericht Nummer:<br />
<input type="text" size="80" name="VALUE[1]" value="REX_VALUE[1]" /><br />
Gericht Name:<br />
<input type="text" size="80" name="VALUE[2]" value="REX_VALUE[2]" /><br />
Gericht Beschreibung:<br />
<input type="text" size="80" name="VALUE[3]" value="REX_VALUE[3]" /><br />
Gericht Preis:<br />
<input type="text" size="80" name="VALUE[4]" value="REX_VALUE[4]" /><br />
ausgabe anpassen an die eigenen bedürfnisse:
Code: Alles auswählen
<div class="bestellung">
<span class="red">REX_VALUE[1] REX_VALUE[2]</span>
<span class="red">REX_VALUE[4]</span>
<div class="g_beschreibung">REX_VALUE[3]</div>
<?php echo ' <a class="bestellen2" href="'.rex_getUrl($this->getValue(article_id), $REX["CUR_CLANG"], array('add'=>REX_SLICE_ID)).'">bestellen</a>'; ?>
</div>
und nun beten und dann sollte alles klappen

ich hoffe das ich dir helfen konnte.
gruß richy