Applicatie bouwen met chronoforms jd13nl

Post on 12-Jul-2015

654 views 2 download

Transcript of Applicatie bouwen met chronoforms jd13nl

Applicatie bouwen met Chronoforms

Met chronoforms en een klein beetje code een compleetloterijscript

Gert-Jan RadstaakeGJ-R Webdevelopment

Over mij

• Gert-Jan Radstaake

• CEO / Webdeveloper GJ-R Webdevelopment

• Sinds 2006 met Joomla! bezig

• Ontwikkeling Joomla! websites + Magentowebshops met 6 man vanuit Tilburg

• gert-jan@gj-r.nl

Situatieschets

- Loterij: 1000 loten

- 5 winnaars van een identieke prijs

- Elk lotnummer 1 keer gebruiken

- Lotnummer: combinatie letter/cijfers

Wat willen we weten?

• Naam

• Telefoonnummer

• Emailadres

• Lotnummer

Het formulier

Mensen vullen formulier in.. 4 mogelijkheden

• Niet bestaand lot foutmelding

• Al eerder gebruikt foutmelding

• Lotnummer geen prijs geen prijs gewonnen

• Lotnummer met prijs winnaar!

Benodigde tabellen

• Tabel met lotnummers + indicatie of ze al gebruikt zijn

• Tabel met winnaars

• Tabel met deelnemers

Niet bestaand lot

• Custom Server Side Validation

Niet bestaand lot

Vraag: Komt het ingevoerde lotnummer voor in de tabel met lotnummers?

In code:

$db = JFactory::getDBO();$lotnummer=htmlspecialchars($_POST["lotnummer"]);$query = "SELECT lotnummer FROM lotnummers WHERE lotnummer= ‘".$lotnummer."’";$db->setQuery($query);$result = $db->loadResult();if($result){return true;}else{return false;}

Niet bestaand lot -> foutmelding

• Bestaat het lot? Zo ja gaan we verder..

• Zo niet: “Show Thanks Message”:

“Het door u ingevoerde lotnummer is ongeldig.”

Al eerder gebruikt

Vraag: Is het betreffende lotnummer eerder gebruikt / staat er een 1 in de kolom “gebruikt”.

In code:

$db = JFactory::getDBO();$lotnummer=htmlspecialchars($_POST["lotnummer"]);$query = "SELECT lotnummer FROM lotnummers WHERE lotnummer = ‘".$lotnummer."’ AND gebruikt=0";$db->setQuery($query);$result = $db->loadResult();

if($result){$query="UPDATE lotnummers SET gebruikt='1' WHERE lotnummer = ‘".$lotnummer. "’";$db->setQuery($query);$db->execute();return true; }else{ return false; }

Al eerder gebruikt -> foutmelding

• Nog niet eerder gebruikt? Dan gaan we verder; en slaan we gegevens op.

• Zo niet “Het door u ingevoerde lotnummer is al eerder gebruikt en kan helaas niet nog een keer ingevoerd worden.”

De grote vraag…

Heeft de deelnemer gewonnen?

$db = JFactory::getDBO();$lotnummer=htmlspecialchars($_POST["lotnummer"]);$query = "SELECT lotnummer FROM `winnaars` WHERE lotnummer= ‘".$lotnummer."’";$db->setQuery($query);$result = $db->loadResult();if($result){return true;}else{return false;}

Winnaar!

Wat hebben we geleerd

• M.b.v. Chronoforms en de custom “side server validation” kunnen verschillende stappen / scenario’s worden uitgevoerd

• Elke stap/tak kan leiden tot een einde of eennieuwe stap met eigen mails, db opslag en meldingen.

Vragen?

…..