Jump to content
php.lv forumi

CI controller and three level navigation


renathy
 Share

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"?

Link to comment
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/

Link to comment
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.

Link to comment
Share on other sites

  • 4 weeks later...

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ā.

Link to comment
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
Link to comment
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...
 Share

×
×
  • Create New...