flashMessage – jake jsou jeji preddefinovane (defaultni) typy

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

Ahoj, jsem novacek v Nette. Zajimalo by me, jake standardni „typy“ jsou pouzitelne pro flashMessage?

Hledal jsem uz ve Forech a i pomoci Googlu a jedine kloudne jsem nasel toto:

Zasílání obstarává metoda flashMessage. Prvním parametrem je text zprávy a nepovinným druhým parametrem její typ (error, warning, info apod.).

a pak od enumaga:

@vosy: API dokumentace dneska nefunguje? https://api.nette.org/…rol.php.html#… (= $flash->type může být teoreticky naprosto cokoli)

Muze tam byt opravdu cokoli, zkusil jsem ‚papousek‘, ‚pravitko‘, ‚error pravitko‘.
Posledne priklad se chova jako ‚error‘ (coz mi prijde matouci).
Napr. uvodni priklad obsahuje i typ ‚success‘. Je nekde popis vsech „preddefinovanych“ typu?
Diky.
M

David Matějka
Moderator | 6445
+
0
-

nejsou zadny preddefinovany typy – opravdu muzes pouzivat co ti vyhovuje a vetsinou podle toho stylujes v css tu flash message. pokud pouzivas twitter bootstrap tak je vhodny pouzivat typy success, info, error.. ale je to opravdu jen na tobe

martin-army
Člen | 6
+
0
-

je ta definice v souboru css/screen.css ?

/*** Flash messages ***/
div.flash {
padding: .8em;
margin-bottom: 1em;
border: 2px solid #ddd;
}

div.flash.success {
background: #E6EFC2;
color: #264409;
border-color: #C6D880;
}

div.flash.info {
background: #FFF6BF;
color: #514721;
border-color: #FFD324;
}

div.flash.error {
background: #FBE3E4;
color: #8a1f11;
border-color: #FBC2C4;
}
enumag
Člen | 2118
+
0
-

Žádné předdefinované typy neexistují, jak jsi už zjistil sám. Nejběžnější použití jsou tyto 4, navíc odpovídají twitter bootstrapu:

  • error (obvykle nastylováno na červenou barvu)
  • warning (žlutá či oranžová)
  • success (zelená)
  • info (modrá).

Že se „error pravitko“ chová jako „error“ je asi tou mezerou. Tedy „pravitko error“ se nejspíše bude chovat jako „pravitko“. Oprav mne pokud se mýlím.

Editoval enumag (29. 9. 2013 20:14)

mkoubik
Člen | 728
+
0
-

Pokud $flash->type vykreslíš do class="", tak se pochopitelně class="error pravitko" chová jako třída error i pravitko.

Šaman
Člen | 2666
+
0
-

Přesně jak piše @mkoubik. FlashMessage jako objekt žádné typy nezná, ale má public property type. Když pak zprávu vykresluješ (v šabloně, často v @layout.latte), tak tento typ použiješ jako CSS třídu. A pokud máš v typu dvě slova, objeví se jako class="error pravitko" a to CSS vyhodnotí tak, že daný element patří pod obě třídy. Pravitko není nijak definovaný, ale error zařídí tu červenou barvu. To už ale není Nette, ale jen ukázka CSS v Sandboxu. Nette samo o sobě neumí zprávu ani vykreslit (@layout.latte také není součástí frameworku, ale jen Sandboxu).

Type ale můžeš klidně využít i jinak, například filtrovat výpisy flashMessage (třeba nevypisovat nic kromě errorů, pokud má uživatel nastaveno v profilu tichý režim), nebo jakkoliv jinak tě napadne.

Editoval Šaman (29. 9. 2013 21:26)

martin-army
Člen | 6
+
0
-

Diky za vsechny odpovedi.
Zakladem bylo pochopit, ze je to definovane v css/screen.css, a tam uz se to da vyuzit ruzne.