ConvetionalRenderer – Latte pomocník pro ruční renderování formuláře + Tw Bootstrap
- MartinitCZ
- Člen | 580
rixi napsal(a):
ahoj,
planujes update s podporou pre bootstrap 3.0 rc?
Pokud šoupne aktuální branch (master) do „2.x“, tak nevidím problém, ale zabít podporu pro starší verzi by byla blbost.
Nemluvě o tom, že 3.0 rc je hnusná :/
- rixi
- Člen | 109
martinit wrote:
Pokud šoupne aktuální branch (master) do „2.x“, tak nevidím problém, ale zabít podporu pro starší verzi by byla blbost.
Stacilo by otagovat (alebo branch), zostavajuca podpora pre 2.3.2 by tak nebola problem.
martinit wrote:
Nemluvě o tom, že 3.0 rc je hnusná :/
rc je hnusna, da sa suhlasit. no ked si chce niekto postavit vlastny design nad bootstrapom, sucasny flat design sa rozsiruje ovela jednoduchsie a nie je nutne kvoli tomu v CSS nutne overwritovat vsetky gradienty a bordery, ktore boli prebrate z twitteru.
Editoval rixi (30. 7. 2013 13:09)
- MartinitCZ
- Člen | 580
Narazil jsem problém. Renderer nepodporuje v input-append (input-prepend) použití tlačítka, resp. dostneš ho tam, ale renderer přidá i add-on, které tam v případě použití tlačítka být nemá ;)
Viz: http://getbootstrap.com/…ase-css.html#… sekce Buttons instead of text
- mattes.gfx
- Člen | 8
Zdravím, pokusil jsem se použít tento addon. Stáhnul jsem ho pomocí Composeru s takovýmto composer.json:
<script>
{
"name": "nette/sandbox",
"description": "The sandbox is a pre-packaged Nette Framework project, basic configured structure for your application.",
"homepage": "https://nette.org",
"type": "project",
"license": ["BSD-3-Clause", "GPL-2.0", "GPL-3.0"],
"authors": [
{
"name": "David Grudl",
"homepage": "http://davidgrudl.com"
},
{
"name": "Nette Community",
"homepage": "https://nette.org/en/contributors?lang=en"
}
],
"require": {
"php": ">= 5.3.0",
"nette/nette": "@dev",
"dg/adminer-custom": "1",
"kdyby/bootstrap-form-renderer": "2.0.*"
},
"require-dev": {
"nette/tester": "@dev"
}
}
</script>
Ale když to takto stáhnu, Laděnka mi hází chybu:
Nette\Utils\AssertionException
Missing section ‚development‘ in file ‚D:\prace\PHP\xampp\htdocs\www\imarket\app\config\config.neon‘.
V čem je chyba? Co mám kde vytvořit a proč?
Předem díky za rady :)
- mattes.gfx
- Člen | 8
Nevím v čem byl problém s Composerem, ale stačilo stáhnout addon z githubu a složku Kdyby umístit do vendor/others a pak v presenteru, kde chci vykreslování bootstrap formulářů použít, použít:
use Kdyby\BootstrapFormRenderer\BootstrapRenderer;
$form->setRenderer(new BootstrapRenderer);
Třeba to pomůže někomu se stejným problémem. :)
- Filip Procházka
- Moderator | 4668
To důrazně nedoporučuji! Pokud možno instalujte Kdyby rozšíření vždy pomocí Composeru.
Ta chyba co jsi poslal
Nette\Utils\AssertionException
Missing section ‚development‘ in file ‚D:\prace\PHP\xampp\htdocs\www\imarket\app\config\config.neon‘.
nijak nesouvisí s mým rozšířením, máš prostě chybu v aplikaci.
Když instaluješ aplikaci přes composer, stáhne se ti i Nette a pravděpodobně jsi ho měl buď v projektu dvakrát, nebo se ti přepsalo to co jsi tam měl předtím. A vývojové Nette se konfiguruje trochu jinak. To znamená ta chyba.
- Šaman
- Člen | 2659
mattes.gfx napsal(a):
Nette\Utils\AssertionException
Missing section ‚development‘ in file ‚D:\prace\PHP\xampp\htdocs\www\imarket\app\config\config.neon‘.V čem je chyba? Co mám kde vytvořit a proč?
V Nette 2.1 už jsou sekce defaultně vypnuté, pokud používáš 2.0× a nechceš používat sekce (jedeš podle novějších ukázek configu), tak tyto sekce musíš vypnout volitelným parametrem metody addConfig v bootstrapu.
<?php
$configurator->addConfig(__DIR__ . '/config/config.neon', FALSE);
?>
- mattes.gfx
- Člen | 8
Pokud jsem ale composeru řekl, ať stahuje jen nette, vše fungovalo v pořádku, až když jsem přidal addon, tak mi to hlásilo tuhle chybu. Přesně jak mám napsané v tom jsonu, stáhnul jsem dev verzi Nette, jak ta se tedy má nakonfigurovat, aby to frčelo jak má?
- mattes.gfx
- Člen | 8
Výpis z laděnky jsem hodil sem http://hottipy.cz/error.htm Nevím čeho se chytit :/
- mattes.gfx
- Člen | 8
Tak už asi vím v čem je chyba. Když po composeru budete chtít, aby
použil tento renderer kdyby/bootstrap-form-renderer a podstrčíte mu zápis
tak jak je uveden na stránce addon ve tvaru:
"kdyby/bootstrap-form-renderer": "2.0.*"
tak stáhne verzi 2.0.* a ta podle packagistu vyžaduje verzi nette 2.0.* , s tou je ale výše
zmíněný problém, o kterém psal Šaman. Takže pak composer stáhne nette
starší a ne ono 2.1dev, ikdyž jste zadali, že chcete nette v dev
stability.
Řešením je, když i renderer necháte stáhnout v dev verzi, to je
zápis:
"kdyby/bootstrap-form-renderer": "@dev"
v composer.json.
- fliper333
- Člen | 36
Ahojte, potreboval by som poradit, ci sa da pouzit tento renderer aj ked v projekte pouzivam ako framework CodeIgniter a z Nette pouzivam iba formy.
Renderery som si pisal vlastne a pouzival som to tak, ze som si v adresari Nette/Forms/Rendering vytvoril renderer, podedil DefaultFormRenderer a v controlleri som dal
use Nette\Forms\Rendering\BootstrapRenderer;
$form->setRenderer(new BootstrapRenderer());
a vsetko fungovalo.
Tento vas renderer som chcel pouzit podobne, ale kedze ma viac suborov, nahral som ho do adresara Nette\Forms\Rendering\BootstrapFormRenderer\BootstrapRenderer a v controlleri som dal:
use Nette\Forms\Rendering\BootstrapFormRenderer\BootstrapRenderer
$form->setRenderer(new BootstrapRenderer());
Pise mi to ale rozne chyby, napriklad:
Recoverable Error - Method Nette\Forms\Form::__toString() must return a string value
alebo
Severity: User Error
Message: Exception in Nette\Forms\Form::__toString(): Call to undefined method Nette\Templating\FileTemplate::noescape(). in /Users/Filip/Web/ts.com/application/third_party/nette-2.0.10/common/ObjectMixin.php:72
Filename: Forms/Form.php
Line Number: 611
alebo
Severity: 4096
Message: Method Nette\Forms\Form::__toString() must return a string value
Filename: smarty/9f3f738057df86748e0a66e514b85b9a433d80c9.file.test.tpl.php
Line Number: 108
Nette pouzivam verziu 2.0.10
Dakujem vopred za pomoc
- Lawondyss
- Člen | 106
Ahoj lidi,
vytvořil jsem si komponentu formuláře pro přidávání komentáře.
V metodě render()
pak nastavuju, že se má použít
BootstrapRenderer
$this->setRenderer(new Kdyby\BootstrapFormRenderer\BootstrapRenderer)
.
V presenteru vytvářím komponentu
protected function createComponentCommentForm()
{
return new CommentForm;
}
Problém nastane, když v šabloně zavolám
{control commentForm}
. Dojde totiž k zacyklení a laděnka
vyhodí fatal error
Maximum function nesting level of '100' reached, aborting!
.
Můžete mi někdo poradit, v čem dělám chybu?
- jpatus
- Člen | 5
Pre Bootstrap v3:
$renderer = $form->getRenderer();
$renderer->wrappers['controls']['container'] = null;
$renderer->wrappers['pair']['container'] = 'div class="form-group"';
$renderer->wrappers['label']['container'] = null;
$renderer->wrappers['control']['container'] = null;
$form->addText('name', 'Meno:')
->setRequired('Prosím zadajte meno skupiny')
->getControlPrototype()->class = "form-control";
$form->addSubmit('send', 'Odoslať')
->getControlPrototype()->class="btn btn-default";