Created
April 14, 2016 17:07
-
-
Save Kcko/0c3f3b8cf771798f5d580122be1cd045 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require_once('./Nette/loader.php'); | |
define(HESLO_MIN_ZNAKU,6); | |
define(URL_ADRESA_OBCHODNICH_PODMINEK,'http://www.example.com/'); | |
function loginValidator($item){ | |
return dibi::query('SELECT [id] FROM [zakaznici] WHERE [nick]=%s LIMIT 1',$item->getValue())->count() == 0 ? true : false; | |
} | |
$form = new Form('registracni_formular'); | |
$form->setMethod('post'); | |
$form->getElementPrototype()->id = 'registrace'; | |
$form->getElementPrototype()->class = 'formular'; | |
$form->addGroup('Přihlašovací údaje'); | |
$form->addText('nick','Login:',25) | |
->addRule(Form::FILLED, 'Login nebyl vyplněn') | |
->addRule('loginValidator', 'Tento login již existuje'); | |
$form->addPassword('heslo','Heslo:',25) | |
->addRule(Form::FILLED, 'Heslo nebylo vyplněno') | |
->addRule(Form::MIN_LENGTH, 'Heslo je příliš krátké', HESLO_MIN_ZNAKU) | |
->setOption('description','Heslo musí mít minimálně '.HESLO_MIN_ZNAKU.' znaků'); | |
$form->addPassword('heslo2','Zopakujte heslo:',25) | |
->addRule(Form::FILLED, 'Heslo nebylo vyplněno') | |
->addRule(Form::EQUAL, 'Hesla se neshodují',$form['heslo']); | |
$form->addGroup('Povinné údaje'); | |
$form->addText('email', 'Email:',35) | |
->addRule(Form::FILLED, 'Email nebyl vyplněn') | |
->addRule(Form::EMAIL, 'Zadaný email není platným emailem') | |
->emptyValue = '@'; | |
$typ_osoby = array( | |
'1' => 'Fyzická osoba', | |
'2' => 'Právnická osoba', | |
); | |
$form->addRadioList('typ', 'Typ:', $typ_osoby)->addRule(Form::FILLED, 'Vyberte typ registrovaného subjektu')->addCondition(Form::EQUAL, 2)->toggle('povinneUdajePravnicka'); | |
$form->addText('jmeno','Jméno:',35)->addRule(Form::FILLED, 'Zadejte jméno'); | |
$form->addText('prijmeni','Příjmení:',35)->addRule(Form::FILLED, 'Zadejte příjmení'); | |
$form->addText('ulice','Ulice:',35)->addRule(Form::FILLED, 'Zadejte ulici'); | |
$form->addText('mesto','Město:',35)->addRule(Form::FILLED, 'Zadejte město'); | |
$form->addText('psc','PSČ:',35)->addRule(Form::FILLED, 'Zadejte PSČ'); | |
$souhlasLabel = Html::el()->setHtml('Souhlasím s <a href="'.URL_ADRESA_OBCHODNICH_PODMINEK.'" target="_blank">obchodními</a> podmínkami.'); | |
$form->addCheckbox('souhlas', $souhlasLabel)->addRule(Form::FILLED, 'Pro pokračování je nutné souhlasit s podmínkami.'); | |
$form->addGroup('Povinné údaje právnické osoby')->setOption('container', Html::el('fieldset')->id('povinneUdajePravnicka')); | |
$form->addText('firma','Firma:',35)->addConditionOn($form['typ'], Form::EQUAL, 2)->addRule(Form::FILLED,'Zadejte firmu'); | |
$form->addText('ico','IČO:',35)->addConditionOn($form['typ'], Form::EQUAL, 2)->addRule(Form::FILLED,'Zadejte IČO'); | |
$form->addText('dic','DIČ:',35)->addConditionOn($form['typ'], Form::EQUAL, 2)->addRule(Form::FILLED,'Zadejte DIČ'); | |
$form->addGroup('Nepovinné údaje')->setOption('container', Html::el('fieldset')->id('nepovinneUdaje')); | |
$form->addText('telefon','Telefon:',35); | |
$form->addText('mobil','Mobil:',35); | |
$form->addText('fax','Fax:',35); | |
$form->setCurrentGroup(NULL); | |
$form->addSubmit('ok','Registrovat se')->getControlPrototype()->class = 'submit'; | |
$form->addProtection('Vypršela platnost formuláře.'); | |
if ($form->isSubmitted() and $form->isValid()) { | |
$values = $form->getValues(); | |
unset($values['heslo2']); | |
unset($values['souhlas']); | |
$ok = dibi::query('INSERT INTO [zakaznici] %v',$values); | |
//..... nasleduje redirect | |
} else { | |
$defaults = array('typ'=>1); | |
$form->setDefaults($defaults); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment