PluginProbe
Packeta / trunk
Packeta vtrunk
2.3.2 2.3.1 trunk 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3.0 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 All 56 releases
packeta / deps / nette / forms / examples / custom-rendering.php

custom-rendering.php in Packeta trunk, at deps/nette/forms/examples/custom-rendering.php

109 lines 2.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Nette Forms custom rendering example.
5 */
6 declare (strict_types=1);
7 namespace Packetery;
8
9 if (@(!(include __DIR__ . '/../vendor/autoload.php'))) {
10 die('Install packages using `composer install`');
11 }
12 use Packetery\Nette\Forms\Form;
13 use Packetery\Nette\Utils\Html;
14 use Packetery\Tracy\Debugger;
15 use Packetery\Tracy\Dumper;
16 Debugger::enable();
17 $form = new Form();
18 // setup custom rendering
19 $renderer = $form->getRenderer();
20 $renderer->wrappers['form']['container'] = Html::el('div')->id('form');
21 $renderer->wrappers['group']['container'] = null;
22 $renderer->wrappers['group']['label'] = 'h3';
23 $renderer->wrappers['pair']['container'] = null;
24 $renderer->wrappers['controls']['container'] = 'dl';
25 $renderer->wrappers['control']['container'] = 'dd';
26 $renderer->wrappers['control']['.odd'] = 'odd';
27 $renderer->wrappers['label']['container'] = 'dt';
28 $renderer->wrappers['label']['suffix'] = ':';
29 $renderer->wrappers['control']['requiredsuffix'] = "";
30 $form->addGroup('Personal data');
31 $form->addText('name', 'Your name')->setRequired('Enter your name');
32 $form->addRadioList('gender', 'Your gender', ['m' => Html::el('span', 'male')->style('color: #248bd3'), 'f' => Html::el('span', 'female')->style('color: #e948d4')]);
33 $form->addSelect('country', 'Country', ['Buranda', 'Qumran', 'Saint Georges Island']);
34 $form->addCheckbox('send', 'Ship to address');
35 $form->addGroup('Your account');
36 $form->addPassword('password', 'Choose password');
37 $form->addUpload('avatar', 'Picture');
38 $form->addTextArea('note', 'Comment');
39 $form->addGroup();
40 $form->addSubmit('submit', 'Send');
41 if ($form->isSuccess()) {
42 echo '<h2>Form was submitted and successfully validated</h2>';
43 Dumper::dump($form->getValues());
44 exit;
45 }
46 ?>
47 <!DOCTYPE html>
48 <meta charset="utf-8">
49 <title>Nette Forms custom rendering example</title>
50
51 <link rel="stylesheet" media="screen" href="assets/style.css" />
52 <style>
53 textarea, select, input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="image"]):not([type="range"]) {
54 border: 1px solid #78BD3F;
55 }
56
57 dt, dd {
58 padding: .5em 1em;
59 }
60
61 #form h3 {
62 background: #78BD3F;
63 color: white;
64 margin: 0;
65 padding: .1em 1em;
66 font-size: 100%;
67 font-weight: normal;
68 clear: both;
69 }
70
71 #form dl {
72 background: #F8F8F8;
73 margin: 0;
74 }
75
76 #form dt {
77 text-align: right;
78 font-weight: normal;
79 float: left;
80 width: 10em;
81 clear: both;
82 }
83
84 #form dd {
85 margin: 0;
86 padding-left: 10em;
87 display: block;
88 }
89
90 #form dd ul {
91 list-style: none;
92 font-size: 90%;
93 }
94
95 #form dd.odd {
96 background: #EEE;
97 }
98 </style>
99 <script src="https://nette.github.io/resources/js/3/netteForms.js"></script>
100
101 <h1>Nette Forms custom rendering example</h1>
102
103 <?php
104 $form->render();
105 ?>
106
107 <footer><a href="https://doc.nette.org/en/forms">see documentation</a></footer>
108 <?php
109