flashMessage – jake jsou jeji preddefinovane (defaultni) typy
- martin-army
- Člen | 6
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
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
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
Žá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)
- Šaman
- Člen | 2666
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
Diky za vsechny odpovedi.
Zakladem bylo pochopit, ze je to definovane v css/screen.css, a tam uz se to da
vyuzit ruzne.