Ako vytvoriť admin rozhranie?

publikované: od: Tibor Piňo
Tagy: ,

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/co­re.php odkomentovaním ri­adku

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/controller­s/articles_con­troller.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.

VN:F [1.8.3_1051]
Rating: 5.0/5 (1 vote cast)
Ako vytvoriť admin rozhranie?5.051