Ako vytvoriť admin rozhranie?
Admin rozhraním disponuje v súčasnosti každá väčšia web aplikácia. Dnes si ukážeme, ako si môžeme takéto jednoduché admin rozhranie vytvoriť pomocou CakePHP.
V Cake máme v podstate dve možnosti, ktorými môžeme vytvoriť administračné rozhranie pre našu aplikáciu. Prvou je vytvoriť novú aplikáciu ktorú sa bude starať o administráciu a druhou je použiť predpripravené riešenie Cake.
Najprv si poďme predstaviť prvé riešenie, čiže si vytvoríme v rámci nášho projektu novú aplikáciu, ktorú môžeme nazvať napr. admin, tzn. že budeme mať v našej aplikácii nasledovnú štruktúru
/web
|_ admin
|_ webroot
|_ controllers
|_ views
|_ models
|_ ...
|_ app
|_ webroot
|_ controllers
|_ views
|_ models
|_ ...
|_ cake
Predstavme si, že adresár web je koreňový adresár našej web aplikácie, ktorú máme napríklad na adrese http://www.example.com a adresár admin je nová aplikácia v našom projekte s kompletnou stromovou štruktúrou Cake aplikácie. Potom budeme pristupovať k nášmu administračnému rozhraniu cez adresu http://www.example.com/admin a k rozhraniu stránky prístupné pre všetkých cez adresu http://www.example.com tak ako sme bežne zvyknutý. Tento spôsob tvorby administračného rozhrania by som však neodporúčal, pretože nedodržuje pravidlo DRY a veľa vecí budete musieť písať a upravovať na dvoch miestach, tak ako v klasickej aplikácii, tak i v admin aplikácii.
Druhým spôsobom oveľa jednoduchším a inteligentnejším je využiť priamo riešenie, ktoré nám ponúka Cake. Základom je nastaviť admin routovanie v súbore app/config/core.php odkomentovaním riadku
Configure::write('Routing.admin', 'admin');
Nič viac netreba nastavovať. Týmto sme dali Cake najavo, že za adresou http://www.example.com/admin/ sa bude skrývať naše administračné rozhranie. Od tejto chvíle, bude Cake automaticky rozpoznávať akcie v controllery a k nim príslušné view podľa predpony admin_.
Uveďme si príklad. Máme controller články, kde máme verejnú akciu view a admin akciu add. Náš controller uložený v súbore app/controllers/articles_controller.php by vyzeral následovne
class ArticlesController extends AppController {
var $name = 'Articles';
function view($id) {}
function admin_add(){}
}
Ešte je treba doplniť, že akcia view bude dostupná prostredníctvom adresy http://www.example.com/articles/view/1 a akcia admin_add bude dostupná prostredníctvom adresy http://www.example.com/…articles/add
Na záver treba uviesť, ako pomenovávať view súbory k daným akciám a uvedieme si výslednú adresárovú štruktúru
/web
|_ app
|_ controllers
|_ articles_controller.php
|_ views
|_ articles
|_ view.ctp
|_ admin_add.ctp
|_ models
|_ ...
Teraz nám je jasné, že keď vytvárame admin akciu, musíme k nej vytvoriť aj admin view s prefixom admin_. Týmto sme u konca a môžeme plnohodnotne využívať administračné rozhranie.
V článku som predstavil dva možné spôsoby, ako vytvoriť administračné rozhranie pre našu aplikáciu. Myslím si, že oveľa lepší a jednoduchší spôsob je ten druhý, kde využijeme predpripravené riešenie frameworku.
Rád uvítam vaše námety a pripomienky v diskusii k článku.
Súvisiace články
-
Kategórie
- Tipy a triky (28)
- Články (8)
- Fantom CMS (4)
- Zábava (2)
- Začíname s CakePHP (6)
-
Najčítanejšie články
-
Novinky
-
Seriál o CakePHP na www.debug.sk
15. 10. 2008
Od 7. októbra vychádza nový seriál o CakePHP na serveri zameranom na programovanie s názvom Debug.sk Autorom seriálu je autor tohto webu a kto by mal záujem, môžete daný seriál podporiť jeho prečítaním.
-
-
Nálepky
-
Nedávne komentáre
-
Rss kanály

Komentáre k článku
Nový komentár
Titulok: Ine rozhrania
Autor: Huco
Vytvorený: 28. 02. 2008 09:21
Admin akcie povolim
Ale mozem nadefinovat aj viac takychto typov akcii, napr. ak mam viacero uzivatelskych typov skupin a kazda ma vystup rieseny inaksie. Napr. mam standardneho uzivatela, registrovaneho uzivatela, …
Titulok: RE:Ine rozhrania
Autor: Tibor
Vytvorený: 28. 02. 2008 11:15
No toto je podla mna vec access listu a auth komponenty
Prava by som nenastavoval podla toho, v akom tvare je url adresa. Podla mna si nastav admin routing tak, ako je to opisane v clanku a podla access listu a auth komponenty spristupnuj jednotlive akcie uzivatelom, ktory budu mat na danu akciu prava.
Taktiez si mozes podla jednotlivych prav lubovolne menit view, napr. ked je niekto prihlaseny, ked nie je atd.
Este doplnim, ze urcite je vyhodne si pre admin rohzranie vytvorit iny layout, ako pre beznu stranku.
Titulok: admin layout
Autor: curo
Vytvorený: 03. 05. 2008 23:23
da sa nastavit nieco ako default admin layout, aby som ho nemusel vzdy nastavovat v metode controlleru?
Titulok: RE: admin layout
Autor: Tibor
Vytvorený: 04. 05. 2008 15:49
Napriklad umiestnenim nasledovneho kodu do suboru app/app_controller.php ako metoda triedy AppController