Jump to content
php.lv forumi
Sign in to follow this  
renathy

CI controller and three level navigation

Recommended Posts

Sāku izmantot Codeigniter un radās jautājums:

 

Man ir divu līmeņu horizontāla navigācija + dažiem ir arī trešā līmeņa vertikālā navigācija.

 

Kā ir loģiskie priekš MVC un CI - katrai navigācijas sadaļai savas kontrolieris vai arī pirmā līmeņa navigācijai ir savs kontrolieris, bet otrā līmeņa - tā ir funkcija, savukārt trešā - tas jau sanāk parametrs, vai?

 

Teiksim, man ir "forums -> php -> cms", tad

1) pirmajā varianta būtu kontrolieris "cms" (iespējams arī "forums", kas defaultā nosūta uz php/cms, kā arī "php", kas nosūta uz cms).

2) otrajā variantā būtu kontrolieris "forums", funkcija "php" ar parametru "tips", kura vērtība būtu "cms"?

Share this post


Link to post
Share on other sites

Tas nedaudz ir atkarīgs no tā cik sarežgītas (cik daudz koda jādrukā) tās apakšsadaļas ir. Būtu jāizvairās no situācijas, ka kontroliera fails ir tūkstiešiem koda rindiņu garš (normālā sistēmā otrais variants visticamāk ko tādu izraisītu).

 

Es droši vien katrai apakšsadaļai izvēlētos taisīt savu kontrolieri. Ja ir vitāli svarīgi, lai arī adresē parādītos tā sadaļu hierarhija, tad situācijas glābšanai var izmantot CI routēšanas pārrakstīšanas iespējas, vai arī šo lielisko bibliotēku: http://code.google.com/p/ocular/

Share this post


Link to post
Share on other sites

Visa lapa, izņemot vienu sadaļu ir ar statisko informāciju. Tādējādi reāli sanāk, ka kontrolierim ir tikai jāpaņem no db (vai config mainīgā) atbilstošos tekstus + varbūt vēl kkas.

Viena sadaļa gan ir sarežģītāka.

Share this post


Link to post
Share on other sites

Uzskatu, ka Tavs otrais variants ir visprātīgākais, kad veidotos tāda saite - www.example.com/forums/php/cms. Pēc saites lietotājam ar būs viegli orientēties, kur viņš atrodas. :)

Share this post


Link to post
Share on other sites

Battery, domāju ka nav labākais veids ceļu līdz lapai norādīt saitē. :) Lietotājam nevajadzētu atšifrēt saiti, lai iegūtu kādu informāciju. Parasti lapas ceļu norāda ar atbilstošu saišu virkni kaut kur virs raksta, nu izkārtojums jau atkarīgs no dizaina, piemēram:

 

Sākums > Ziņas > Jauna PHP versija

 

nu kaut kā tā.

Share this post


Link to post
Share on other sites

Codeigniter pats paredz, ka saite tiek veidota sekojoši www.example.com/klase/funkcija/parametrs1/parametrsN/. Izmantojot Routes.php vai kādu gudrāku risinājumu var paslēpt klasi (ja grib), bet jebkurā gadījumā šai informācijai nevajadzētu būt ļaundarim noderīgai, jo paša ietvara izstrādātāji ir vienojušies par šāda veida piekļuves konvesiju.

Edited by Battery

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...