addTextArea odřádkování v html
- motorcb
- Člen | 552
Zdravím.
Používám TextArea ve formuláři a chtěl bych zachovat odřádkování
v textech při výpisu.
protected function clanekForm()
{
$form = new Form();
$form->addTextArea('text', 'Text čláku:')
->addRule(Form::FILLED, 'Je nutné zadat text článku');
return $form;
}
protected function createComponentClanekEditForm()
{
$form = $this->clanekForm();
$oClanekDetail = $this->context->database->table('clanek')->where( array( "id" => $this->getUser()->getId() ) )->fetch();
$form->setDefaults( array('text' => $oClanekDetail->text) );
$form->addSubmit('edit', 'Upravit článek');
$form->onSuccess[] = callback($this, 'clanekEditFormSubmitted');
return $form;
}
public function clanekEditFormSubmitted($form)
{
$aValues = $form->getValues(TRUE); // same as: (array) $form->values;
$this->context->createClanek()->where(array('id' => $this->getUser()->getId()))->update($aValues);
}
Tento kód uloží ke každému uživateli text co si napíše. Já bych potřeboval aby při výpisu {$clanek->text} bylo odřádkování stejné jako v TextArea. Nevěděl by někdo jak na to?
- Vojtěch Dobeš
- Gold Partner | 1316
Tak se tomu v HTML má, že reálné odřádkování !==
odřádkování v prohlížeči. Buď to prožeň Texy, nebo to ostyluj, nebo
vypiš v <pre>
.
- Vojtěch Dobeš
- Gold Partner | 1316
Na to, aby nový řádek se skutečně jako nový řádek zobrazil v prohlížeči je pokud se nemýlím nějaká CSS vlastnost.
Texy ti pomůže taky, protože z plain textu vytvoří HTML. Pokud nevíš, co je Texy, vygoogli.
Ale úplně nejsnazší je to prostě vypsat do <pre>
.
- Vojtěch Dobeš
- Gold Partner | 1316
Tak to bylo dobrý :). elden46 má samozřejmě pravdu, Nette je na to vybaveno tímto helperem.
- Bernard Williams
- Člen | 207
Nazdárek,
já používám ještě variantu {!$clanek->text|escape|nl2br} – odřádkování se převede, ale ostatní HTML tagy budou escapovány.
Bernard
- Ascaria
- Člen | 187
motorcb napsal(a):
Perfekt. Funguje.
Máte mne pivo :)Nebylo by nějaké vysvětlení k tomu vykřičníku?
Díky
{$a} = echo htmlspecialchars($a, ENT_QUOTES);
{!$a} = echo $a;
{$a|nl2br} = echo htmlspecialchars(nl2br($a), ENT_QUOTES);
{!$a|escape|nl2br} = echo nl2br(htmlspecialchars($a, ENT_QUOTES));
Editoval Ascaria (31. 5. 2012 12:13)