eregi Posted July 19, 2012 Report Share Posted July 19, 2012 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. Quote Link to comment Share on other sites More sharing options...
aaxc Posted July 19, 2012 Report Share Posted July 19, 2012 (edited) 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 July 19, 2012 by aaxc Quote Link to comment Share on other sites More sharing options...
briedis Posted July 19, 2012 Report Share Posted July 19, 2012 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..) Quote Link to comment Share on other sites More sharing options...
Roberts Zariņš Posted July 19, 2012 Report Share Posted July 19, 2012 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. Quote Link to comment Share on other sites More sharing options...
codez Posted July 19, 2012 Report Share Posted July 19, 2012 Atslēgas vārdi - MVC, routing, autoloading. P.S. Protams ir ienākusi doma, par koda satura glabāšanu db agrāk, bet reāli dzīvē tādu fetišu neesmu redzējis. Quote Link to comment Share on other sites More sharing options...
eregi Posted July 19, 2012 Author Report Share Posted July 19, 2012 (edited) 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 July 19, 2012 by eregi Quote Link to comment Share on other sites More sharing options...
Roberts Zariņš Posted July 19, 2012 Report Share Posted July 19, 2012 @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. Quote Link to comment Share on other sites More sharing options...
Kemito Posted July 19, 2012 Report Share Posted July 19, 2012 Kāda tad atšķirība glabāt failos to tavu "header" "footer" vienādo daļu vai datubāzē? Tā tagad stilīgi? Quote Link to comment Share on other sites More sharing options...
Roberts Zariņš Posted July 19, 2012 Report Share Posted July 19, 2012 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.