Text v Html::el() a pridanie ikony i

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
SontoEremo
Člen | 341
+
0
-

Zdravím,
Potrebujem pomoc pri odosielaní flashMessage!
konkrétne mi ide o to aby bol výsledný text
S pozdravom,
Stranka.xx

ale neviem to dostať do finálnej podoby

<p>
S pozdravom,
<br>
<strong>Stranka.xx</strong>
</p>

Môj pokus vyzerá takto

$thankspageName = = Html::el('p', 'S pozdravom,', Html::el('strong', 'Stranka.xx'));

Ale výsledok je žiadny a neviem ako to dať dokopy

Taktiež sa snažím do h4 s textom vložiť ikonu

<h4> Registrácia śpešná <i class="fa fa-check></i></h4>

No neviem absolutne ako to prepojiť aby mi zobrazilo k textu aj ikonu

Za všetky odpovede vopred Vďaka.

CZechBoY
Člen | 3608
+
+2
-

Co nějak takhle?

$p = Html::el('p');
$p->addText('S pozdravom,');
$p->addHtml(Html::el('br'));

$strong = Html::el('strong');
$strong->addText('Stranka.xx');

$p->addHtml($strong);

echo $p;

Případně to můžeš zkusit naházet do jednoho příkazu.

edit: upraveno podle poznámky @Oli

Editoval CZechBoY (6. 10. 2016 13:10)

Oli
Člen | 1215
+
+5
-

Jen doplním, že od verze 2.4 je add() depricated. Používá se místo toho addHtml() respektive addText()

SontoEremo
Člen | 341
+
0
-

Oli
CZechBoY

Vďaka chlapci …

Ešte sa chcem opýtať riešim registráciu cez nový nette 2.4 teda originál od Sandboxu
v zložke forms->SignUpFormFactory, …, …
Kde je najlepšie umiestniť flashMessage?
do Presenteru v Presenters
teda:

/**
	 * Sign-up form factory.
	 * @return Nette\Application\UI\Form
	 */
	protected function createComponentSignUpForm() {

		return $this->signUpFactory->create(function () {

			$hThankTxt = Html::el('h4')->class('text-center');
			$pThnakTxt = Html::el('p');
			$hThankTxt->addHtml($pThnakTxt->addText('Ďakujeme registrácia úspešná'));
			$hpiThankTxt = Html::el('i');
			$hpiThankTxt->addClass('fa fa-check');
			$hThankTxt->addHtml($hpiThankTxt);

			$pEmail = Html::el('p');
			$pEmail->addText('Na Email: ');
			$sEmail = Html::el('strong');
			$sEmail->addText('....');
			$pEmail->addHtml($sEmail);
			$sendMsg = Html::el('p', 'Sme Vám zaslali potvrdzujúcu správu o Vašej registrácii');
			$thanks = Html::el('p');
			$thanks->addText('S pozdravom,');
			$thanks->addHtml(Html::el('br'));
			$pageName = Html::el('strong');
			$pageName->addText('pagename.xxx');
			$thanks->addHtml($pageName);
			$link = Html::el('p', Html::el('a', 'Pokračujte na prihlásenie')->href($this->link(':Accounts:login'))->class('btn btn-success btn-block no-border no-radius'));
			$msgTxt = Html::el();
			$msgTxt->addHtml($hThankTxt);
			$msgTxt->addHtml($pEmail);
			$msgTxt->addHtml($sendMsg);
			$msgTxt->addHtml($thanks);
			$msgTxt->addHtml($link);

			$this->flashMessage($msgTxt);

			$this->redirect(':Accounts:registerSuccess');
		});
	}

Alebo to preniesť do SignUpFormFactory kde sa rieši registrácia…

Oli
Člen | 1215
+
0
-

To asi záleží na situaci. Odpovím obecně.

Pokud se jedná o globální flashMessage, například po refreshnutí (redirectu jinam) a flash zpracovává presenter, tak bych to řešil pomocí událostí.

Pokud se jedná např. o ajax odeslání formuláře, zpráva se objeví hned nad formulářem a komponenta si zpravuje flash zprávy sama, tak bych to nechal vyřešit komponentu.