Jump to content
php.lv forumi

Menu generesana


Joyride

Recommended Posts

Paslaik stradaju pie savas CMS, sanaca aizkersanas ar tadu lietu, ka menu izveidosana. Ir vajadzigs, lai menu butu 3 veidu: ka areja saite (uz lapu, kas atrodas ne uz sis lapas domena), ka iekseja saite uz module(piem, index.php?module=zinas&action=get_new), ka iekseja saite uz typed content(piem., index.php?module=typed_content&id=5 - kas varetu but "Kontaktu" modulis). Menu itemam vel ir janorada, vai to atvert jauna loga, vai tai pasa, to var glabat tabulas lauka 'new_win'.

 

Ka lai veido DB strukturu? Ja butu tik vien ka saites uz moduliem, tad varetu kaut ko lidzigu:

 

id, title mod_name, mod_action, params, new_win

1, Jaunākās ziņas, News, get_new, '', 0

 

Tad vel - ka lai norada, kurai valodai kurus menu itemus radit? Vai taisit tabulai jaunu lauku 'lang'? Vai sada gadijuma vajadzes katrai valodai pa jaunu vadit ieksa menu itemus?

Ka lai norada access level katram menu itemam (public, private, special)? Varbut to vajag parbaudit ieks izsaukta modula nevis menu drukajot?

 

Un, ja, piemeram, ir modulis 'shop', kada veida vins lai gjenere savus submenu - kategorijas, apakskategorijas? Neies tacu rakstit ar roku, vel jo vairak, ja vini biezi mainas.

 

Busu priecigs uzklausit jusu komentarus.

Link to comment
Share on other sites

Hmm.. tos menu tabulu vari sadalīt vairākās tabulās. Tipa pirmā un galvenā būtu:

id | title | new_win | un citi general lauki

 

Un pēc tām vēl pa tabulai katram linka tipam (Tavā gadijumā laikam vēl trīs tabulas). Piem., moduļu linku tabula:

galvenas_tabulas_id | mod_name | mod_action | params

 

Un pārējiem linku tipiem līdzīgas tabulas, tikai ar saviem laukiem.

 

Šeit selekti būs jātaisa ar joiniem. Kādam var likties, ka šāda struktūra ir zvirbuļ-šaušana-ar-lielgabalu.

 

 

Par valodu. Izveido vēlvienu tabulu:

galvenas_tabulas_id | lang | translation

 

Un tipa, ja cilvēks izvēlas kādu valodu, kas nav latviešu, tad automātiski meklējam tulkojumus šajā tabulā. Varam arī pārnest tekstus pilnībā uz šo papildus tabulu (ar domu - arī latviešu). Pēc tā vai attiecīgai valodai ir tulkojums, vai nav, varam noteikt, vai šo menu ierakstu rādīt klientam, kas izvēlējies attiecīgo valodu.

 

Par access level. To vari norādīt iekš galvenās tabulas kā papildus lauku. Un pārbaudi jāveic obligāti gan pie paša moduļa izsaukšanas, gan arī pie menu drukāšanas.

 

Pēdējo jautājumu īsti nesapratu.

Link to comment
Share on other sites

Paldies par komentaru!

 

Par to pedejo jautajumu - doma tada, ka pie cms instalacijas, installers nocheko pieejamos modulus un katram no tiem ievieto menu tabula vienu menu itemu. Tas tapec, lai lapa pec instalacijas nebutu plika. Velak lapas admins pats var izveletoes, kurus nemt nost, kurus paslept utt.

 

Tas viss ir elementari moduliem, kuriem paredzets tikai viens menu items - galvenais+paris apaksmenu.

 

Piemers: modulis 'Downloads', galvenais menu links iet uz download kategoriju sarakstu, zem si menu ir vel paris apaksmenu - top 10 downloads, pedejie pievienotie, utml. Tos lapas admins pats pievieno klat (apaksmenu).

 

Bet, ja ir 'Shop' modulis, kuram ir 50 apaksmenu uz zem katra apaksmenu ir vel kadi apaks-apaksmenu, tos tacu nerakstis ar roku. Mana gadijuma, tie tiek atjaunoti reizi 24h no XML. Ka lai paredz iespeju, ka modulis ari var automatiski gjeneret menu?

 

-Zinas

-Downloads

--Top 10

--Newest downloads

-Par mums

-Shop

--Admina pievienotais menu ar indeksu 1 zem menu Shop

// so gjenere 'Shop' modulis automatiski

--Datori

---Portativie

---Galda datori

--Monitori

---LCD

---CRT

// ---------------------------------------------

--Admina pievienotais menu ar indeksu 3 zem menu Shop

 

Man ir vizija, ka tas varetu izskatities (ieks admin panela):

 

-Zinas

-Downloads

--Top 10

--Newest downloads

-Par mums

-Shop

--Admina pievienotais menu ar indeksu 1 zem menu Shop

--[module_generated_menu] - sis varet but ka vel viens menu paveids - autogenerated

--Admina pievienotais menu ar indeksu 3 zem menu Shop

 

Tikai ka to realizet?

Link to comment
Share on other sites

×
×
  • Create New...