Řešení LoginForm, QuickSearchForm, navazuju na předchozí článek

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

Navazuji na můj předchozí článek

https://forum.nette.org/…in-formulare

a jak jsem to vyřešil?

1. LoginControl

Myslím, že správné je mít vlastní komponentu, jejíž funkce jsou přihlášení a odhlášení, můžeme přihlašovat i více typů uživatelů, tím že jí předáme model, který se o přihlášení stará

form v komponentě pak má dvě funkce

<?php
$form->onSubmit[] = array($this, 'loginFormSubmitted');
$form->onInvalidSubmit[] = array($this, 'invalidLoginFormSubmitted');
?>

při úspěchu redirectuje na backlink, při neúspěchu na presenter který zobrazí chybové hlášky, nabídne další možnosti a vykreslí form ještě jednou znovu

s řešením jsem asi v celku spokojený… ale některé věci jsou hodně o kompromisech, třeba ten dvojitý form, no, ale dá se to řešit

2. QuickSearchControl

Rychlý vyhledávací formulář, nevím jeslti je na to potřeba tvořit zvláštní komponentu ale budiž. Tady ještě nejsem s řešením spokojený.

Co taková komponenta má umět?

  1. přesměruje na nějaký get požadavek na žádaný presenter (vzhledem k tomu, že se vždy jedná o get požadavek, tak redirect, by asi nebyl nutný a mohli bychom tedy rovnou nastavit setAction)
  2. měla by umět nabídnout jak přesun na konkrétní presenter, tak nabídnout combo box, který určuje kdo je příjemcem (vyhledávání článků, produktů atd.)
  3. mohla by nabídnout i nějaký autocomplete
  4. měla by mít možnost být vykreslena na stránce několikrát, např. pro každý presenter jinak, vnitřní formulář by pak mohl být odvozen od výsledného presenteru (tedy název komponenty)

Co taková komponenta potřebuje?

  1. Obvykle potřebuje nějaký ten text uvnitř inputu, něco jako hledej…,
  2. obvykle potřebuje vědět jestli button bude image nebo submit a co bude na submitu napsané

toť snad vše z těchto základů, a jak by měla vypadat implementace? a tady už se mi to moc nelíbí, s množstvím podmínek se to začíná komplikovat a přestává to být hezké

…obvykle by css k nastylování takového formu mělo stačit a připojovat šablonu by nemělo být potřeba

<?php
{control quickSearchForm array(presenters=>array("Articles"), "submit"=>array("image"=>"/button-img.jpg"), "search"=>array("value"=>"hledej...")), "/templates/quickSearchForm.phtml"}

{control quickSearchForm array(presenters=>array("Articles", "Products"), "submit"=>array("value"=>"OK"), "search"=>array("value"=>"hledej..."), "autocomplete"=>"/SuggestArticles.php"), "/templates/quickSearchForm.phtml"}

případně připojení šablony, by mělo být ojedinělé

{control quickSearchForm array(presenters=>array("Articles", "Products"), "submit"=>array("value"=>"OK"), "search"=>array("value"=>"hledej..."), "autocomplete"=>"/SuggestArticles.php")}

?>

tak co vy na to?

celý zápis ještě více znesnadňuje to, že tag {widget} se mi nedaří zapsat na více řádků, jinak to spadne

Editoval mcmatak (14. 10. 2009 22:34)

Honza Kuchař
Člen | 1662
+
0
-

můžeme přihlašovat i více typů uživatelů, tím že jí předáme model, který se o přihlášení stará

To nebude používat Nette\Security?

Já na tohle využívám AuthPresenter. Pokud chceš můžu poslat zdroják.

QuickSearchControl

Nápad zajímavý. Ale ten našeptávač by měl mít nějakou integrovanou podporu. Odkaz na php soubor nebude nic moc.

mcmatak
Člen | 490
+
0
-

integrovanou podporu? co tím myslíš? samozřejmě bude součástí javascript, ale třeba našeptávač se mi moc nechce odesílat na nette, protože by ho podle mne zbytečně zdržovalo

krom toho tohle nebyl ani tak navrh na vytvoření komponent, spíš zamyšlení nad tím jestli to tak řešíte, nebo jinak, jestli se vám zdá nebo nezdá ta šílená konfigurace v šabloně, sem nette začátečník, sic po školení, ale spíš bojuji s nějakou logikou, a dělám opravdu pouze složité věci, takže se něco blbě učí, když zrovna musíte stavět vzducholoď

jinak na zdroják se určitě rád podívám, používám to samé co ty, ale opět upravené na míru

nevíte někdo jestli se dá někde mrknout na zdrojáky root.cz, lupa.cz nebo tak? alespoň obecný kód? ne žádné fičury, považuju to asi za jediný složitější projekt v nette v tuhle chvíli (i když sám o sobě je dost triviální)

Honza Kuchař
Člen | 1662
+
0
-

nevíte někdo jestli se dá někde mrknout na zdrojáky root.cz, lupa.cz nebo tak? alespoň obecný kód? ne žádné fičury, považuju to asi za jediný složitější projekt v nette v tuhle chvíli (i když sám o sobě je dost triviální)

Silně pochybuji

integrovanou podporu? co tím myslíš? samozřejmě bude součástí javascript, ale třeba našeptávač se mi moc nechce odesílat na nette, protože by ho podle mne zbytečně zdržovalo

Mno asi by to trochu zdržovalo, ale zase by to bylo takové více instantní. :)

Editoval honzakuchar (15. 10. 2009 13:44)