Skip to content

Commit 3ec0e59

Browse files
committed
added Forms renderer examples
1 parent 10e1a23 commit 3ec0e59

File tree

4 files changed

+130
-0
lines changed

4 files changed

+130
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
{if $renderer === 'bs3'}
5+
<link
6+
rel="stylesheet"
7+
href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"
8+
integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu"
9+
crossorigin="anonymous">
10+
{else}
11+
<link
12+
rel="stylesheet"
13+
href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css"
14+
integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS"
15+
crossorigin="anonymous">
16+
{/if}
17+
<title>Renderer demo</title>
18+
</head>
19+
<body>
20+
<div class="container">
21+
<h1>Forms Bootstrap Rendering</h1>
22+
<ul class="nav nav-pills">
23+
<li n:class="nav-item, $renderer === bs3 ? active" >
24+
<a n:class="nav-link, $renderer === bs3 ? active" n:href="this renderer => bs3">BS 3</a>
25+
</li>
26+
<li n:class="nav-item, $renderer === bs4h ? active" >
27+
<a n:class="nav-link, $renderer === bs4h ? active" n:href="this renderer => bs4h">BS 4 horizontal</a>
28+
</li>
29+
<li n:class="nav-item, $renderer === bs4v ? active">
30+
<a n:class="nav-link, $renderer === bs4v ? active" n:href="this renderer => bs4v">BS 4 vertical</a>
31+
</li>
32+
<li n:class="nav-item, $renderer === bs4i ? active">
33+
<a n:class="nav-link, $renderer === bs4i ? active" n:href="this renderer => bs4i">BS 4 inline</a>
34+
</li>
35+
</ul>
36+
<hr>
37+
{control form}
38+
</div>
39+
</body>
40+
</html>
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<?php declare(strict_types = 1);
2+
3+
namespace NextrasDemos\FormsRendering\Renderers;
4+
5+
use Nette\Application\UI\Form;
6+
use Nette\Application\UI\Presenter;
7+
use Nextras\FormsRendering\Renderers\Bs3FormRenderer;
8+
use Nextras\FormsRendering\Renderers\Bs4FormRenderer;
9+
use Nextras\FormsRendering\Renderers\FormLayout;
10+
11+
12+
class RenderersPresenter extends Presenter
13+
{
14+
/**
15+
* @var string
16+
* @persistent
17+
*/
18+
public $renderer = 'bs3';
19+
20+
21+
public function actionDefault()
22+
{
23+
$this->template->renderer = $this->renderer;
24+
}
25+
26+
27+
public function createComponentForm()
28+
{
29+
$form = new Form();
30+
$form->addText('text', 'Name');
31+
$form->addCheckbox('checkbox', 'Do you agree?');
32+
$form->addCheckboxList('checkbox_list', 'CheckboxList', ['A', 'B', 'C']);
33+
$form->addInteger('integer', 'How much?');
34+
$form->addMultiSelect('multi_select', 'MultiSelect', ['A', 'B', 'C']);
35+
$form->addPassword('password', 'Password');
36+
$form->addRadioList('radio_list', 'RadioList', ['1', '2', '3']);
37+
$form->addSelect('select', 'Select', ['Y', 'X', 'C']);
38+
$form->addTextArea('textarea', 'Textarea');
39+
$form->addMultiUpload('multi_upload', 'MultiUpload');
40+
$form->addSubmit('save', 'Send');
41+
$form->addSubmit('secondary', 'Secondary');
42+
43+
if ($this->renderer === 'bs3') {
44+
$form->setRenderer(new Bs3FormRenderer());
45+
} elseif ($this->renderer === 'bs4h') {
46+
$form->setRenderer(new Bs4FormRenderer(FormLayout::HORIZONTAL));
47+
} elseif ($this->renderer === 'bs4v') {
48+
$form->setRenderer(new Bs4FormRenderer(FormLayout::VERTICAL));
49+
} elseif ($this->renderer === 'bs4i') {
50+
$form->setRenderer(new Bs4FormRenderer(FormLayout::INLINE));
51+
}
52+
53+
$form->onSuccess[] = function ($form, $values) {
54+
dump($values);
55+
};
56+
return $form;
57+
}
58+
59+
60+
public function formatTemplateFiles(): array
61+
{
62+
return [__DIR__ . '/RenderersPresenter.latte'];
63+
}
64+
}

examples/renderers/config.neon

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
application:
2+
scanDirs: false
3+
mapping:
4+
*: NextrasDemos\FormsRendering\Renderers\*Module\*Presenter
5+
6+
services:
7+
routing.router: Nette\Application\Routers\SimpleRouter('Renderers:default')

examples/renderers/index.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php declare(strict_types = 1);
2+
3+
namespace NextrasDemos\FormsRendering\Renderers;
4+
5+
use Nette\Application\Application;
6+
use Nette\Configurator;
7+
8+
require_once __DIR__ . '/../../vendor/autoload.php';
9+
10+
11+
$configurator = new Configurator;
12+
$configurator->enableDebugger(__DIR__ . '/log');
13+
$configurator->setTempDirectory(__DIR__ . '/temp');
14+
$configurator->createRobotLoader()->addDirectory(__DIR__)->register();
15+
$configurator->addConfig(__DIR__ . '/config.neon');
16+
17+
$container = $configurator->createContainer();
18+
$app = $container->getByType(Application::class);
19+
$app->run();

0 commit comments

Comments
 (0)