Jump to content
php.lv forumi

Dinamiskas sadaļas


eregi

Recommended Posts

hei!

Sen nekas te nav jautāts, bet nu ir kaut kas tāds, par ko vēlētos vairāk uzzināt. :)

 

Problēma sekojoša, ir jāveido lapa, kura satur standarta sadaļas (ziņas, kalendāri, topi, utml), kā arī jāļauj adminam pievienot papildus sadaļas un organizēt tās.

 

Mani interesē kā tad notiek viss dinamisko sadaļu process. Līdz šim vienmēr ir bijušas klases news,calendar,rank u.c, kuras saturēja pievienošanas, dzēšanas, attēlošanas metodes, tās veica kaut kādu darbību un atgrieza html stringu, kurš tika attēlots lietotājam. Ar switch palīdzību, izmantojot get datus, izvēlējos, kura klase un metode tiek pieprasīta.

 

Tagad, kad lietotājs pats varēs veidot sadaļas, jūtos nedaudz apjucis, jo īsti neēsmu saskāries ar šāda tipa problēmām.

 

Tātad interesē kā tiek katra sadaļa sadaļa izveidota un kāds info par viņu tiek glabāts, piemēram, patreiz ir tāds priekšstats -

 

 

Tabula 'sadaļas'

| Id | Parent_id | Name | Class name | Arrajs ar funkcijām, kuras tiek izsauktas |

 

Un tad, atkarībā no GET un mysql atgrieztā tiek izsauktas konkrētas metodes? Ko darīt, ja tiek izveidotas vairākas sadaļas ar vienādu Klasi un funkcijām? Vai teiksim visas lieto vienu tabulu, vai arī tiek radītas jaunas tabulas?

 

 

Būtībā visu sarežģīt tas, ka ir sadaļas, kuras admins visdrīzāk nevēlēsies likvidēt, bet var gadīties, ka tiek izveidota jauna sadaļa un kā tad menedžēt tās saturu? Dot vienu textboxu un editora tools, kur var sazīmēt tabulas un tas ir viss?

 

Būtībā diez gan nesakarīgi sarakstīju, cerams, ka vēlāk uzradīsies precīzi jautājumi par šo problēmu, bet līdz tam es ļoti gribētu dzirdēt Jūsu viedokļus par dinamisku kategoriju izveidi, problēmām, ar kurām jāsaskarās utml.

Link to comment
Share on other sites

Cik apjomiga ir plānota lapa? Ja lapa ir neliela izmēra ( respektīvi nav mega uber portāls ), iesaku izmantot jau kādu no gatavām CMS sistēmām ( drupal, joomla, wordpress, etc ), kur tas vis jau ir izveidots.

 

Vari arī protams uzlikt kādu no šiem CMS un papētīt DB struktūru, atradīsi daudz ko jaunu,

Edited by aaxc
Link to comment
Share on other sites

Man liekas muļķīgi glabāt klases nosaukumus un funkcijas tabulā. Ja nu savajagas mainīt kādu funkcijas nosaukumu? Rezultātā čakars!

 

Glabā labāk kaut kādu pašizdomātu identifikatoru (tekstuālu, kaut vai) un koda pusē arī balstoties no tā izsauc vajadzīgās klases utt.

 

...bet varbūt nav jēga visu cept no jauna, bet paņemt kādu gatavu risinājumu, kas to visu piedāvā ar spraudņu palīdzību? (WordPress, Drupal, Joomla, Typo3, Berta, etc..)

Link to comment
Share on other sites

Savā CMS arī esmu izstrādājis iespēju pievienot sadaļas. Ir template fails, ir tīrs PHP fails priekš attiecīgā templeita. Attiecīgi man ir vairāki templeiti, vairāki dažādi PHP faili.

Tabulā glabāju sadaļas nosaukumu, sadaļas aprakstu (kas vienmēr parādās noteiktā vietā templeitā), templeita nosaukumu un php faila nosaukumu. Tālāk pie sadaļas pieprasījuma caur GET, parādu attiecīgo templeitu un PHP failu. Gadījumā, piemēram, ja sadaļa satur tikai HTML tekstu/bildes utml., atstāju pamata templeita failu un pievienoju sadaļas aprakstu tabulā, ko attiecīgi tur parāda.

Ja ir nepieciešama, piemēram, video sadaļa, es atkal sataisu pienācīgu citu templeitu + PHP failu.

 

Man tāda tipa CMS pašreiz griežas manā blogā deltanotes.com, ja ir interese.

Link to comment
Share on other sites

Lapa nav ļoti apjomīga. Aptuveni 9 Sadaļas un kādas 6,7 no tām būs dinamiskas ar atšķirīgiem moduļiem.

 

Lieta tāda, ka nav bijusi saskarsme ar joomla, wordpress u.c cms, tādēļ lapas izstrāde aizņemtu mazāk laiku, ja visu rakstītu no nulles, turklāt šāds process ļautu pastiprināt savas zināšanas.

 

Brieža variants ar identifikatoriem nav slikta, varbūt kāds vēl varētu kaut ko par to pateikt? Cik pareizs ir šāds piegājiens?

 

aaxc, jau uzinstalēju joomla un mēģināju papētīt, bet kaut kā tur tās iespējas ir pārāk daudz, mēģināšu vēl paeksperimentēt.

 

Robert, interesanti, bet nezinu gan vai induviduālu templeitu variants šadā gadījumā būtu ok. Piemēram, admins izdomā vienā lapā salikt ziņas, kalendāru, video sadaļu un vēl 100 un 1 fīču, tad Tavā variantā, šāds templeits būtu induviduāli jāģenerē programmētājam.

 

Varbūt ir kāda lasāmviela šajā sakarā?

 

EDIT: codez, kodu glabāt iekš datubāzes? :) Ļoti nepatīkama sajūta, to iedomājoties. Paldies par atslēgas vārdiem, tie arī interesēja!

 

 

EDIT2: Es gan nezinu kādēļ klientam vajadzētu mainīt news, videos u.c sadaļas, domāju, ka kādas 6 vienmēr paliktu nemainīgas, atlikušo 4 sadaļu saturu vienkārši ļaut uzģenerēt iekš textarea, un ļaut mainīt visu sadaļu secību un 'redzamību'.

Edited by eregi
Link to comment
Share on other sites

@eregi, tas jau ir tikai normāli. Man ir header templeits, footer templeits, kas vienmēr ir vienādi. Tā kā man vienmēr būs teksta sadaļas, es teksta informāciju par sadaļu glabāju tabulā, ko piesaucu templeitos. Attiecīgi parastākais templeits, kas ir domāts fixed tekstam/bildēm utml.(piemēram Par Kompāniju sadaļai), man saucas standard.php, kurā atrodas viens echo $info, kur $info ir sadaļas kontents HTML veidā. Tad vienmēr, kad admins grib sataisīt teksta sadaļu, tiek pievienots jauns ieraksts tabulā ar saturu, ka tiek izmantots standard.php templeits, kā arī standard.php kontrolieris(PHP fails, kurš faktiski teksta sadaļai tāpat īsti nav nepieciešams). Respektīvi tad, lai mainītu tekstu katrā sadaļā, jāveic UPDATE tabulā pie sadaļas teksta HTML.

Ja es gribu izveidot, piemēram, bloga tipa sadaļu(jaunumiem, blogiem, arhīvam utml.), es sataisu blogs.php templeitu un blogs.php kontrolieri, kurš savukārt satur visu PHP informāciju par šo moduli. Attiecīgi admins tagad jau var pievienot vairākas jaunumu tipa sadaļas, veicot ierakstu tabulā, ka jāizmanto tieši šis templeits un tieši šis kontrolieris.

Un tā es katram modulim izveidoju savu templeitu un kontrolieri. Godīgi sakot, diezgan ērti. Admins var taisīt kaudzēm sadaļu, izmantojot gatavos templeitus un kontrolierus attiecīgajam modulim.

Ja ir plāns aktīvi apdeitot kaut kādu sāna malu ar jauniem blokiem, var tam atkal izveidot jaunu templeitu un salikt visos templeitos, lai nav jārediģē katrs templeits atsevišķi.

Link to comment
Share on other sites

Es īsti nesapratu jautājumu. Man datu bāzē nekas no templeita nestāv. Tā HTML daļa, kas tiek glabāta kā sadaļas teksts/apraksts tabulā, faktiski ir dati, kas tiek izveidoti tieši tekstam tajā sadaļā(manā gadījumā izmantoju tinymce, kas automātiski jau uzreiz to tādā veidā arī saglabā). header un footer kā tādu es glabāju tikai tāpēc, lai es, ja gribu izveidot sadaļu lapā ar kaut kādu pilnīgi citādu dizainu, varu vienkārši pamainīt tās sadaļas modulim attiecīgos header un footer failus.

Tāpat arī es šeit neizklāstīju visu sava pamata CMS - tas vienkārši aizņemtu pārāk daudz laika, tā kā nav obligāti jādara konkrēti tāpat kā es teicu, jo dotā informācija nav pilnīga. Jautājumu par to, vai tas ir stilīgi, arī nesapratu - ja ir kaut kāds noteikts stilīgums, tad tam līdzi nesekoju.

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...
×
×
  • Create New...