Applicatie bouwen met chronoforms jd13nl

16
Applicatie bouwen met Chronoforms Met chronoforms en een klein beetje code een compleet loterijscript Gert-Jan Radstaake GJ-R Webdevelopment

Transcript of Applicatie bouwen met chronoforms jd13nl

Page 1: Applicatie bouwen met chronoforms   jd13nl

Applicatie bouwen met Chronoforms

Met chronoforms en een klein beetje code een compleetloterijscript

Gert-Jan RadstaakeGJ-R Webdevelopment

Page 2: Applicatie bouwen met chronoforms   jd13nl

Over mij

• Gert-Jan Radstaake

• CEO / Webdeveloper GJ-R Webdevelopment

• Sinds 2006 met Joomla! bezig

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

[email protected]

Page 3: Applicatie bouwen met chronoforms   jd13nl

Situatieschets

- Loterij: 1000 loten

- 5 winnaars van een identieke prijs

- Elk lotnummer 1 keer gebruiken

- Lotnummer: combinatie letter/cijfers

Page 4: Applicatie bouwen met chronoforms   jd13nl

Wat willen we weten?

• Naam

• Telefoonnummer

• Emailadres

• Lotnummer

Page 5: Applicatie bouwen met chronoforms   jd13nl

Het formulier

Page 6: Applicatie bouwen met chronoforms   jd13nl

Mensen vullen formulier in.. 4 mogelijkheden

• Niet bestaand lot foutmelding

• Al eerder gebruikt foutmelding

• Lotnummer geen prijs geen prijs gewonnen

• Lotnummer met prijs winnaar!

Page 7: Applicatie bouwen met chronoforms   jd13nl

Benodigde tabellen

• Tabel met lotnummers + indicatie of ze al gebruikt zijn

• Tabel met winnaars

• Tabel met deelnemers

Page 8: Applicatie bouwen met chronoforms   jd13nl

Niet bestaand lot

• Custom Server Side Validation

Page 9: Applicatie bouwen met chronoforms   jd13nl

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;}

Page 10: Applicatie bouwen met chronoforms   jd13nl

Niet bestaand lot -> foutmelding

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

• Zo niet: “Show Thanks Message”:

“Het door u ingevoerde lotnummer is ongeldig.”

Page 11: Applicatie bouwen met chronoforms   jd13nl

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; }

Page 12: Applicatie bouwen met chronoforms   jd13nl

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.”

Page 13: Applicatie bouwen met chronoforms   jd13nl

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;}

Page 14: Applicatie bouwen met chronoforms   jd13nl

Winnaar!

Page 15: Applicatie bouwen met chronoforms   jd13nl

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.

Page 16: Applicatie bouwen met chronoforms   jd13nl

Vragen?

…..