Ben even wat aan het proberen geweest, maar krijg het niet voor elkaar met CGSimpleSmarty en FormBuilder...
Met wat aanpassingen aan de Cart module lukt het wel:
Stap 1: maak een knop om te bestellen
action.viewcart.php rond regel 130 na
Code: Select all
// stop here
$smarty->assign('subtotal_text',$this->Lang('subtotal'));
toevoegen:
Cart Viewcart Form Template toevoegen (ergens onderaan):
Code: Select all
<input type="submit" name="{$mod_id}cart_order" value="Bestel" />
Stap 2: vang verstuurde bestelling op
action.viewcart.php rond regel 58
Code: Select all
// Expand the cart
if( isset($params['cart_adjust']) )
veranderen in
Code: Select all
// Expand the cart
if( isset($params['cart_adjust']) || isset($params['cart_order']))
action.viewcart.php rond regel 88 na
Code: Select all
// re-package the cart
$this->SetItems($newitems);
toevoegen:
Code: Select all
$parms = array();
if (isset($params['cart_order']))
{
$parms['order_submit'] = TRUE;
}
de regel erna:
Code: Select all
$this->RedirectContent($returnid);
veranderen in:
Code: Select all
$this->Redirect($id, 'viewcart', $returnid, $parms);
Wat dit doet is de browser terugsturen naar dezelfde pagina met een extra parameter 'order_submit' zodat eventuele wijzigingen in de aantallen in het formulier ook worden meegenomen.
Stap 3: de nieuwe 'order_submit' parameter toevoegen aan de module
Cart.module.php regel 218 na
Code: Select all
$this->SetParameterType(CLEAN_REGEXP.'/cart_.*/',CLEAN_STRING);
toevoegen:
Code: Select all
$this->SetParameterType('order_submit', CLEAN_INT);
Stap 4: Als de 'order_submit' parameter aanwezig is het formulier/de mail versturen
action.viewcart.php rond regel 142 na
Code: Select all
if( isset($params['viewcarttemplate'] ) )
{
$thetemplate = 'viewcartform_'.$params['viewcarttemplate'];
}
toevoegen:
Code: Select all
if (isset($params['order_submit']))
{
$cart_content = $this->ProcessTemplateFromDatabase($thetemplate);
$cmsmailer = $this->GetModuleInstance('CMSMailer');
$cmsmailer->AddAddress('waarnaartoe@domein.com','afzendernaam');
$cmsmailer->SetBody('<h4>Bestelling</h4>' . $cart_content);
$cmsmailer->IsHTML(true);
$cmsmailer->SetSubject('Webshop order');
$cmsmailer->Send();
$smarty->assign('order_submitted', TRUE);
}
De {$order_submitted} variabele kun je in de template gebruiken om bijvoorbeeld een bevestiging te tonen.
Ook zul je nog iets moeten verzinnen/toevoegen om te weten van wie de bestelling afkomstig is...
Grtz,
D